Rumah pembangunan bahagian belakang masalah PHP PHP melaksanakan pangkalan data log masuk

PHP melaksanakan pangkalan data log masuk

May 07, 2023 am 09:28 AM

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:

  1. Pengguna melawat halaman log masuk dan memasukkan nama pengguna dan kata laluan
  2. Pelayan menerima nama pengguna dan kata laluan yang dimasukkan oleh pengguna dan mencari pangkalan data untuk melihat sama ada pengguna itu wujud
  3. Jika pengguna wujud, sahkan sama ada kata laluan itu betul
  4. 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);
Salin selepas log masuk

}
?>

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.

<label>用户名:</label>
<input type="text" name="username"/><br/><br/>
<label>密码:</label>
<input type="password" name="password"/><br/><br/>

<input type="submit" value="登陆"/>
Salin selepas log masuk

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 '用户名不存在';
}
Salin selepas log masuk

}
?>

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. OWASP Top 10 PHP: Huraikan dan mengurangkan kelemahan umum. Mar 26, 2025 pm 04:13 PM

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.

PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. Mar 25, 2025 am 10:37 AM

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.

PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. PHP Secure File Muat naik: Mencegah kelemahan berkaitan fail. Mar 26, 2025 pm 04:18 PM

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.

Penyulitan PHP: Penyulitan simetri vs asimetrik. Penyulitan PHP: Penyulitan simetri vs asimetrik. Mar 25, 2025 pm 03:12 PM

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.

Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Pengesahan PHP & amp; Kebenaran: Pelaksanaan selamat. Mar 25, 2025 pm 03:06 PM

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.

PHP API Kadar Mengehadkan: Strategi Pelaksanaan. PHP API Kadar Mengehadkan: Strategi Pelaksanaan. Mar 26, 2025 pm 04:16 PM

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

Pengesahan Input PHP: Amalan Terbaik. Pengesahan Input PHP: Amalan Terbaik. Mar 26, 2025 pm 04:17 PM

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.

PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. PHP CSRF Perlindungan: Bagaimana untuk mencegah serangan CSRF. Mar 25, 2025 pm 03:05 PM

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

See all articles