Rumah >pembangunan bahagian belakang >tutorial php >Buat sistem log masuk yang kuat dengan PHP dalam lima langkah mudah

Buat sistem log masuk yang kuat dengan PHP dalam lima langkah mudah

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2025-02-08 11:19:08304semak imbas

Create a Powerful Login System with PHP in Five Easy Steps

Tutorial ini akan membimbing anda untuk membina sistem log masuk yang kuat menggunakan PHP! Kami akan membimbing anda melalui keseluruhan proses langkah demi langkah, membantu anda dengan cepat membuat sistem log masuk yang selamat dan cekap untuk laman web anda.

mata teras:

    Tutorial ini menyediakan panduan langkah demi langkah untuk mewujudkan sistem log masuk yang kuat menggunakan PHP dan MySQL, termasuk persediaan persekitaran, pangkalan data dan penciptaan jadual, pendaftaran dan pembinaan log masuk, dan pengerasan keselamatan sistem log masuk.
  • Borang pendaftaran dan log masuk dibina menggunakan HTML dan PHP, dan data borang akan diproses dan dimasukkan ke dalam jadual pengguna pangkalan data;
  • Langkah -langkah keselamatan untuk log masuk ke dalam sistem termasuk menyulitkan data menggunakan HTTPS, menggunakan token untuk membolehkan perlindungan CSRF, mengehadkan bilangan percubaan masuk yang gagal, menyimpan maklumat sensitif secara berasingan, dan mengemas kini perisian secara teratur untuk memohon patch keselamatan terkini.
  • Tutorial ini juga menjawab soalan umum mengenai peningkatan sistem log masuk PHP, termasuk mencegah serangan suntikan SQL, hashing kata laluan, melaksanakan fungsi "ingat saya", penetapan kata laluan, pengesahan input pengguna, peranan pengguna, pengesahan dua faktor, log masuk sosial,, mengunci akaun dan fungsi pendaftaran pengguna.

php dan sistem log masuk

PHP adalah bahasa skrip sisi pelayan yang popular yang membolehkan anda membuat laman web dinamik. Salah satu kegunaan PHP yang paling biasa adalah untuk membuat sistem log masuk untuk laman web.

sistem log masuk adalah penting untuk melindungi maklumat sensitif dan menyediakan pengguna dengan kandungan yang diperibadikan. Dalam tutorial ini, kami akan menggunakan PHP dan MySQL untuk mewujudkan sistem log masuk yang mudah dan berkuasa.

kami akan merangkumi langkah -langkah berikut:

    Tetapan Alam Sekitar
  • Buat pangkalan data dan jadual
  • Bina borang pendaftaran
  • Bina borang log masuk
  • mengukuhkan sistem log masuk anda

Tetapan Alam Sekitar

Sebelum memulakan, pastikan perisian berikut dipasang pada komputer anda:

    pelayan web (seperti Apache)
  • php
  • mysql
  • Anda boleh memasang semua komponen ini sekaligus menggunakan pakej seperti XAMPP atau WAMP.

Selepas pemasangan selesai, buat folder baru dalam direktori root pelayan web (seperti HTDOCS Apache) dan namakannya Login_system.

Buat pangkalan data dan jadual

Pertama, kita perlu membuat pangkalan data dan jadual untuk menyimpan maklumat pengguna.

Buka alat pengurusan MySQL anda (seperti phpmyadmin) dan buat pangkalan data baru yang dipanggil login_system.

Seterusnya, buat jadual yang dipanggil pengguna dengan struktur seperti berikut:

Jadual ini akan menyimpan ID pengguna, nama pengguna, e -mel, kata laluan, dan tarikh penciptaan akaun.
<code class="language-sql">CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `username` varchar(50) NOT NULL,
    `email` varchar(100) NOT NULL,
    `password` varchar(255) NOT NULL,
    `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `username` (`username`),
    UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>

Bina borang pendaftaran

Sekarang, mari buat borang pendaftaran yang membolehkan pengguna mendaftar untuk akaun.

Buat fail baru bernama Register.php dalam folder Login_System anda dan tambahkan kod berikut:

<code class="language-sql">CREATE TABLE `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `username` varchar(50) NOT NULL,
    `email` varchar(100) NOT NULL,
    `password` varchar(255) NOT NULL,
    `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    UNIQUE KEY `username` (`username`),
    UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>

Kod ini mencipta borang HTML yang mudah dengan medan nama pengguna, e -mel, dan kata laluan. Harta tindakan borang ditetapkan untuk mendaftar.php, yang bermaksud bahawa data borang akan dihantar ke fail yang sama untuk diproses.

Sekarang, mari tambahkan kod PHP untuk memproses data borang dan masukkan ke dalam jadual pengguna.

Pada permulaan fail daftar.php, tambahkan kod berikut sebelum perisytiharan:

<code class="language-html"><form action="register.php" method="post">
  <label for="username">用户名:</label>
  <input id="username" name="username" required type="text">
  <label for="email">邮箱:</label>
  <input id="email" name="email" required type="email">
  <label for="password">密码:</label>
  <input id="password" name="password" required type="password">
  <input name="register" type="submit" value="注册">
</form></code>

Kod ini memeriksa jika borang telah dihantar, menghubungkan ke pangkalan data dan memasukkan maklumat pengguna ke dalam jadual pengguna. Kata laluan hashed menggunakan fungsi PHP terbina dalam PHP untuk meningkatkan keselamatan.

Bina borang log masuk

Seterusnya, mari buat borang log masuk yang membolehkan pengguna log masuk ke akaun mereka. Buat fail baru bernama Login.php dalam folder Login_System anda dan tambahkan kod berikut:

<code class="language-php"><?php
if (isset($_POST['register'])) {

    // 连接数据库
    $mysqli = new mysqli("localhost", "username", "password", "login_system");

    // 检查错误
    if ($mysqli->connect_error) {
        die("连接失败: " . $mysqli->connect_error);
    }

    // 准备并绑定SQL语句
    $stmt = $mysqli->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
    $stmt->bind_param("sss", $username, $email, $password);

    // 获取表单数据
    $username = $_POST['username'];
    $email = $_POST['email'];
    $password = $_POST['password'];

    // 对密码进行哈希处理
    $password = password_hash($password, PASSWORD_DEFAULT);

    // 执行SQL语句
    if ($stmt->execute()) {
        echo "新账户创建成功!";
    } else {
        echo "错误: " . $stmt->error;
    }

    // 关闭连接
    $stmt->close();
    $mysqli->close();
}
?></code>

Kod ini mencipta borang HTML yang mudah dengan medan nama pengguna dan kata laluan. Harta tindakan borang ditetapkan kepada login.php, yang bermaksud bahawa data borang akan dihantar ke fail yang sama untuk diproses.

Sekarang, mari tambahkan kod PHP untuk memproses data borang dan sahkan pengguna. Pada permulaan fail login.php, tambahkan kod berikut sebelum perisytiharan:

<code class="language-html"><form action="login.php" method="post">
  <label for="username">用户名:</label>
  <input id="username" name="username" required type="text">
  <label for="password">密码:</label>
  <input id="password" name="password" required type="password">
  <input name="login" type="submit" value="登录">
</form></code>

Kod ini memeriksa jika borang telah diserahkan, menghubungkan ke pangkalan data dan mengambil maklumat pengguna dari jadual pengguna. Kata laluan disahkan menggunakan fungsi PHP yang terbina dalam PHP. Jika log masuk berjaya, pengguna akan diarahkan ke halaman Dashboard.php.

mengukuhkan sistem log masuk anda

untuk melindungi sistem log masuk anda selanjutnya, anda harus melaksanakan amalan terbaik berikut:

    Gunakan HTTPS untuk menyulitkan data yang dihantar antara klien dan pelayan.
  • Gunakan token untuk melaksanakan perlindungan CSRF (pemalsuan permintaan lintas tapak).
  • Hadkan bilangan percubaan masuk gagal untuk mencegah serangan kekerasan.
  • Menyimpan maklumat sensitif (seperti kelayakan pangkalan data) dalam fail konfigurasi berasingan di luar direktori root dokumen pelayan web.
  • kerap mengemas kini perisian anda, termasuk PHP, MySQL dan pelayan web anda untuk memohon patch keselamatan terkini.

Kesimpulan

Tahniah! Anda telah berjaya mencipta sistem log masuk yang kuat dan telah mengukuhkan sistem log masuk anda dengan selamat.

FAQs (FAQs)

Bagaimana untuk melindungi sistem log masuk PHP saya dari serangan suntikan SQL?

Suntikan SQL adalah kelemahan keselamatan biasa yang mengeksploitasi lapisan pangkalan data aplikasi. Untuk melindungi sistem log masuk PHP anda dari serangan suntikan SQL, anda harus menggunakan kenyataan pra -diproses dan pertanyaan parameter. Ini adalah penyataan SQL yang dihantar dan dihuraikan oleh pelayan pangkalan data, tanpa mengira mana -mana parameter. Dengan cara ini, penyerang tidak boleh menyuntik SQL berniat jahat. Kedua -dua PDO dan MySQLI menyokong pernyataan pra -proses.

bagaimana melaksanakan hashing kata laluan dalam sistem log masuk php saya?

Hashing kata laluan adalah aspek keselamatan penting dalam mana -mana sistem log masuk. PHP menyediakan fungsi terbina dalam hashing dan pengesahan kata laluan. Anda boleh menggunakan fungsi password_hash () untuk membuat hash kata laluan dan menggunakan fungsi kata laluan Sentiasa simpan kata laluan hashed dalam pangkalan data anda, bukan kata laluan teks biasa.

Bagaimana untuk melaksanakan fungsi "Ingat saya" dalam sistem log masuk PHP saya?

boleh menggunakan kuki dalam PHP untuk melaksanakan fungsi "Ingat Saya". Apabila pengguna memilih pilihan "Ingat Saya" dan log masuk, anda boleh menetapkan kuki dengan masa tamat tempoh yang lebih lama. Pada masa yang akan datang pengguna melawat laman web anda, anda boleh menyemak sama ada kuki ini wujud dan log masuk kepada mereka secara automatik. Walau bagaimanapun, ingat untuk mengendalikan kuki dengan selamat untuk mengelakkan sebarang risiko keselamatan yang berpotensi.

bagaimana melaksanakan fungsi tetapan semula kata laluan dalam sistem log masuk php saya?

Fungsi Reset Kata Laluan biasanya melibatkan menghantar pengguna e-mel dengan pautan satu kali yang unik yang menunjuk ke halaman penetapan semula kata laluan. PHPMailer adalah perpustakaan yang popular untuk menghantar e -mel dari PHP. Apabila membuat pautan semula, anda harus memasukkan token yang boleh digunakan untuk mengesahkan permintaan semula kata laluan. Tanda ini harus disimpan dengan selamat dan tamat selepas tempoh masa.

Bagaimana untuk mengesahkan input pengguna dalam sistem log masuk php saya?

Pengesahan input pengguna adalah penting untuk mencegah kesilapan format data dan serangan suntikan SQL. PHP menyediakan banyak fungsi untuk pengesahan input, seperti filter_var (). Anda boleh menggunakan pelbagai pilihan fungsi ini untuk mengesahkan dan membersihkan pelbagai jenis data. Sebagai contoh, anda boleh menggunakan filter_validate_email untuk memeriksa sama ada input pengguna adalah alamat e -mel yang sah.

Bagaimana untuk melaksanakan peranan pengguna dalam sistem log masuk PHP saya?

Peranan pengguna boleh dilaksanakan dengan menambahkan lajur "peranan" ke jadual pengguna dalam pangkalan data. Setiap peranan boleh mempunyai kebenaran yang berbeza, dan anda boleh menyemak peranan pengguna sebelum membenarkan mereka melakukan tindakan tertentu. Sebagai contoh, anda mungkin mempunyai peranan "admin" dan "pengguna" dan hanya membenarkan pengguna "admin" untuk memadam pengguna lain.

Bagaimana untuk melaksanakan pengesahan dua faktor dalam sistem log masuk PHP saya?

Pengesahan dua faktor (2FA) menambah lapisan keselamatan tambahan ke sistem log masuk anda. Terdapat beberapa cara untuk melaksanakan 2FA, seperti menghantar kod melalui SMS atau e -mel, atau menggunakan aplikasi 2FA khusus. Perpustakaan PHP (seperti phpgangsta/googleAuthenticator) boleh membantu anda melaksanakan 2FA dalam sistem log masuk anda.

Bagaimana untuk melaksanakan log masuk sosial dalam sistem log masuk PHP saya?

Log masuk sosial membolehkan pengguna log masuk menggunakan akaun media sosial mereka seperti Facebook atau Google. Ini boleh dilaksanakan menggunakan protokol OAuth. Perpustakaan PHP (seperti Hybridauth) dapat memudahkan proses melaksanakan log masuk sosial.

Bagaimana untuk melaksanakan penguncian akaun dalam sistem log masuk php saya?

Pengunci akaun boleh dicapai dengan menjejaki bilangan percubaan log masuk yang gagal. Selepas beberapa percubaan yang gagal, anda boleh mengunci akaun anda dan mencegah percubaan log masuk selanjutnya dalam tempoh masa. Ini dapat membantu mencegah serangan kekerasan.

Bagaimana untuk melaksanakan pendaftaran pengguna dalam sistem log masuk PHP saya?

Pendaftaran pengguna biasanya melibatkan membuat borang di mana pengguna boleh memasukkan butirannya, seperti nama pengguna, e -mel, dan kata laluan. Sebaik sahaja pengguna mengemukakan borang, anda boleh mengesahkan input, hash kata laluan, dan menyimpan butiran pengguna dalam pangkalan data anda. PHP menyediakan banyak fungsi yang membantu pengguna mendaftar, seperti filter_var () untuk pengesahan input dan kata laluan_hash () untuk hashing kata laluan.

Atas ialah kandungan terperinci Buat sistem log masuk yang kuat dengan PHP dalam lima langkah mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:Bermula dengan Laravel LiveWireArtikel seterusnya:Bermula dengan Laravel LiveWire