PHP melaksanakan pangkalan data log masuk
PHP melaksanakan pangkalan data log masuk
Dalam aplikasi web moden, pengesahan pengguna adalah amat penting. Kaedah pengesahan yang biasa adalah untuk pengguna memasukkan nama pengguna dan kata laluan Selepas menerima permintaan, pelayan akan mengesahkan sama ada maklumat yang dimasukkan oleh pengguna adalah betul Hanya selepas pengesahan berjaya, maklumat yang berkaitan boleh diakses dengan jayanya. Semasa proses ini, kedua-dua pihak perlu bekerjasama untuk mencapai pengesahan pengguna biasa. Antaranya, menggunakan pangkalan data untuk menyimpan maklumat pengguna di bahagian pelayan pada masa ini merupakan salah satu kaedah pelaksanaan yang paling biasa.
Jadi bagaimana untuk menggunakan PHP untuk melaksanakan log masuk pengguna pangkalan data? Artikel ini akan menerangkan proses ini untuk anda.
Pertama sekali, kami perlu menjelaskan dengan jelas bahawa proses pengesahan pengguna biasanya termasuk langkah berikut:
- Pengguna melawat halaman log masuk dan memasukkan nama pengguna dan kata laluan
- Pelayan menerima nama pengguna dan kata laluan yang dimasukkan oleh pengguna dan mencari pangkalan data untuk melihat sama ada pengguna itu wujud
- Jika pengguna wujud, sahkan sama ada kata laluan itu betul
- Jika kata laluan adalah betul, kembalikan maklumat kejayaan kepada pengguna, jika tidak mesej kegagalan dikembalikan.
Di bawah ini kami akan memperkenalkan langkah demi langkah bagaimana untuk log masuk ke pangkalan data.
Langkah 1: Cipta pangkalan data
Sebelum kita mula melaksanakan fungsi log masuk, kita perlu mencipta pangkalan data terlebih dahulu. Dalam artikel ini, kami menggunakan pangkalan data MySQL sebagai contoh. Mula-mula kita perlu memasang MySQL, kemudian log masuk ke MySQL dan buat pangkalan data bernama "ujian".
CIPTA ujian PANGKALAN DATA;
Selepas penciptaan selesai, kita perlu mencipta jadual pengguna. Dalam jadual pengguna ini, kita perlu menyimpan nama pengguna dan kata laluan pengguna.
BUAT pengguna JADUAL (
id INT(6) KUNCI UTAMA AUTO_INCREMENT TIDAK BERTANDA,
nama pengguna VARCHAR(30) BUKAN NULL,
kata laluan VARCHAR(30) BUKAN NULL
);
Langkah 2: Sambungkan ke pangkalan data
Sebelum menyambung ke pangkalan data, kami perlu mengkonfigurasi maklumat sambungan yang berkaitan terlebih dahulu. Maklumat ini termasuk nama pengguna, kata laluan, nama hos, port, dsb. pangkalan data. Kami boleh menyimpan maklumat konfigurasi ini dalam fail berasingan dan kemudian memasukkan fail ini jika diperlukan.
Fail konfigurasi, seperti config.php:
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "test";
?>
Seterusnya kita perlu menyambung ke pangkalan data dan memilih pangkalan data yang perlu kita gunakan. Proses ini biasanya memerlukan penggunaan objek mysqli dalam PHP.
include('config.php');
// Cipta sambungan
$conn = new mysqli($servername, $username, $password, $dbname) ;
//Kesan sambungan
jika ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
Langkah3: Laksanakan log masuk pengguna
Seterusnya kita perlu melaksanakan fungsi log masuk pengguna. Dalam contoh ini, kita perlu mendapatkan nama pengguna dan kata laluan daripada borang yang dimasukkan oleh pengguna. Kemudian hantar nama pengguna ke pangkalan data dan tanya sama ada pengguna itu wujud. Jika pengguna wujud, sahkan bahawa kata laluan adalah betul. Jika kata laluan adalah betul, maklumat kejayaan dikembalikan kepada pengguna, jika tidak maklumat kegagalan dikembalikan.
Pertama, kita perlu mencipta borang HTML yang mudah untuk mendapatkan nama pengguna dan kata laluan yang dimasukkan oleh pengguna.
Borang di atas menggabungkan nama pengguna dan kata laluan dihantar ke halaman login.php.
Seterusnya, kita perlu menggunakan kod PHP untuk mendapatkan nama pengguna dan kata laluan yang dimasukkan oleh pengguna daripada borang dan menghantar nama pengguna ke pangkalan data. Jika pengguna ditemui, sahkan sama ada kata laluan itu betul. Jika kata laluan adalah betul, maklumat pengguna disimpan dalam sesi dan maklumat kejayaan dikembalikan, jika tidak maklumat kegagalan dikembalikan.
include('config.php');
// Semak sama ada borang diserahkan
if($_SERVER["REQUEST_METHOD"] == "POST" ) {
// 主动设置编码,防止中文出现乱码 header('Content-type:text/html;charset=utf-8'); $input_username = mysqli_real_escape_string($conn,$_POST['username']); $input_password = mysqli_real_escape_string($conn,$_POST['password']); // SQL语句 $sql = "SELECT * FROM users WHERE username = '$input_username'"; $result = mysqli_query($conn,$sql); $row = mysqli_fetch_array($result,MYSQLI_ASSOC); $count = mysqli_num_rows($result); // 如果查询到了该用户,检查密码是否正确 if($count == 1) { if(password_verify($input_password, $row['password'])) { // 密码正确,将用户信息存入session中 session_start(); $_SESSION["username"] = $row['username']; $_SESSION["login_time"] = time(); echo '登陆成功'; } else { // 密码错误,返回错误信息 echo '密码错误'; } } else { // 没有查询到该用户,返回错误信息 echo '用户名不存在'; }
}
?>
Dalam kod di atas, fungsi mysqli_real_escape_string digunakan untuk melepaskan rentetan untuk mengelakkan kelemahan suntikan SQL. Pada masa yang sama, kami menggunakan fungsi password_verify untuk mengesahkan sama ada kata laluan yang dimasukkan oleh pengguna adalah betul Fungsi ini akan membandingkan sama ada kata laluan yang dimasukkan dan kata laluan yang disulitkan adalah sama.
Langkah 4: Pertimbangan Keselamatan
Selepas melengkapkan langkah di atas, kami boleh melaksanakan log masuk pengguna. Tetapi dalam aplikasi praktikal, kita juga perlu mempertimbangkan beberapa isu keselamatan, seperti: bagaimana untuk memastikan keselamatan kata laluan pengguna dalam pangkalan data, cara mencegah suntikan SQL, dsb.
Untuk memastikan keselamatan kata laluan pengguna dalam pangkalan data, kami perlu menyulitkannya. PHP menyediakan banyak kaedah penyulitan, seperti MD5, SHA1, Bcrypt, dll. Dalam artikel ini, kami menggunakan fungsi password_hash dan password_verify yang disertakan dengan PHP, yang membolehkan kami menyulitkan dan menyahsulit kata laluan dengan lebih mudah sambil memastikan keselamatannya.
Pada masa yang sama, kita juga perlu mempertimbangkan cara untuk mencegah kelemahan suntikan SQL. Dalam kod di atas, kami menggunakan fungsi mysqli_real_escape_string untuk mengelakkan kelemahan suntikan SQL. Pada masa yang sama, kami juga boleh menggunakan PHP PDO untuk melaksanakan operasi pangkalan data PDO menyediakan cara yang lebih selamat dan boleh dipercayai untuk mencegah serangan suntikan SQL dengan berkesan.
Dalam artikel ini, kami memperkenalkan cara menggunakan PHP untuk melaksanakan log masuk pengguna pangkalan data, yang merangkumi proses menyambung ke pangkalan data, mendapatkan input pengguna dan menanyakan pangkalan data. Melalui pengenalan artikel ini, saya percaya semua orang dapat memahami dengan lebih jelas cara melaksanakan fungsi log masuk pengguna dalam PHP, dan pada masa yang sama dapat melihat isu keselamatan yang terlibat.
Atas ialah kandungan terperinci PHP melaksanakan pangkalan data log masuk. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Artikel ini membincangkan kelemahan OWASP 10 dalam strategi PHP dan mitigasi. Isu -isu utama termasuk suntikan, pengesahan yang rosak, dan XSS, dengan alat yang disyorkan untuk memantau dan mendapatkan aplikasi PHP.

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

Artikel ini membincangkan mendapatkan muat naik fail PHP untuk mengelakkan kelemahan seperti suntikan kod. Ia memberi tumpuan kepada pengesahan jenis fail, penyimpanan selamat, dan pengendalian ralat untuk meningkatkan keselamatan aplikasi.

Artikel ini membincangkan penyulitan simetri dan asimetrik dalam PHP, membandingkan kesesuaian, prestasi, dan perbezaan keselamatan mereka. Penyulitan simetri lebih cepat dan sesuai untuk data pukal, manakala asimetrik digunakan untuk pertukaran utama yang selamat.

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran yang mantap dalam PHP untuk mencegah akses yang tidak dibenarkan, memperincikan amalan terbaik dan mengesyorkan alat peningkatan keselamatan.

Artikel ini membincangkan strategi untuk melaksanakan kadar API yang mengehadkan PHP, termasuk algoritma seperti baldi token dan baldi bocor, dan menggunakan perpustakaan seperti simfoni/kadar-limiter. Ia juga meliputi pemantauan, had kadar penyesuaian secara dinamik, dan tangan

Artikel membincangkan amalan terbaik untuk pengesahan input PHP untuk meningkatkan keselamatan, memberi tumpuan kepada teknik seperti menggunakan fungsi terbina dalam, pendekatan putih, dan pengesahan sisi pelayan.

Artikel ini membincangkan strategi untuk mencegah serangan CSRF di PHP, termasuk menggunakan token CSRF, kuki tapak yang sama, dan pengurusan sesi yang betul.
