Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk menggunakan PHP untuk menulis log masuk dan sistem pendaftaran yang selamat dengan fungsi pengesahan e-mel?

Bagaimana untuk menggunakan PHP untuk menulis log masuk dan sistem pendaftaran yang selamat dengan fungsi pengesahan e-mel?

WBOY
WBOYasal
2023-08-18 11:57:091502semak imbas

Bagaimana untuk menggunakan PHP untuk menulis log masuk dan sistem pendaftaran yang selamat dengan fungsi pengesahan e-mel?

Bagaimana untuk menggunakan PHP untuk menulis log masuk dan sistem pendaftaran yang selamat dengan fungsi pengesahan e-mel?

Dalam era Internet, keselamatan adalah aspek yang paling dibimbangkan oleh pengguna apabila ia berkaitan dengan laman web dan aplikasi dalam talian. Untuk melindungi keselamatan akaun dan maklumat pengguna, kami perlu menambah beberapa ciri keselamatan pada sistem log masuk dan pendaftaran, seperti pengesahan e-mel. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menulis log masuk dan sistem pendaftaran selamat dengan fungsi pengesahan e-mel.

  1. Buat pangkalan data

Pertama, kita perlu mencipta pangkalan data untuk menyimpan maklumat pengguna. Menggunakan pangkalan data MySQL, buat jadual data bernama "pengguna" yang mengandungi medan berikut: id, nama pengguna, e-mel, kata laluan dan disahkan.

CREATE TABLE users (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
verified INT(1) NOT NULL DEFAULT 0
);
  1. Fungsi pendaftaran

Tulis kod PHP untuk fungsi pendaftaran. Selepas pengguna mengisi borang pendaftaran dan menyerahkannya, kami perlu mengesahkan input pengguna dan menyimpan maklumat pengguna ke pangkalan data.

<?php
// 获取表单输入数据
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];

// 验证用户输入

// 检查用户名是否已被注册

// 检查邮箱格式是否正确

// 生成一个随机验证码字符串
$verificationCode = bin2hex(random_bytes(16));

// 将用户信息保存到数据库
$query = "INSERT INTO users (username, email, password, verification_code) VALUES ('$username', '$email', '$password', '$verificationCode')";
mysqli_query($connection, $query);

// 发送验证邮件
$to = $email;
$subject = '账号激活邮件';
$message = '请点击以下链接激活您的账号:https://example.com/verify.php?code=' . $verificationCode;
$headers = 'From: noreply@example.com' . "
" .
'Reply-To: noreply@example.com' . "
" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

// 提示用户验证邮件已发送
echo '注册成功!请检查您的邮箱并点击验证链接进行账号激活。';
?>
  1. Fungsi pengesahan

Tulis kod PHP untuk fungsi pengesahan. Apabila pengguna mengklik pautan pengesahan, kami perlu menyemak sama ada kod pengesahan dalam pautan itu sah dan mengemas kini medan "disahkan" pengguna dalam pangkalan data kepada 1, menunjukkan bahawa akaun telah disahkan.

<?php
$verificationCode = $_GET['code'];

// 在数据库中查找匹配的验证代码
$query = "SELECT * FROM users WHERE verification_code = '$verificationCode' LIMIT 1";
$result = mysqli_query($connection, $query);

// 如果找到匹配的验证代码,更新用户的“verified”字段
if (mysqli_num_rows($result) > 0) {
    $user = mysqli_fetch_assoc($result);
    $userId = $user['id'];

    $updateQuery = "UPDATE users SET verified = 1 WHERE id = '$userId'";
    mysqli_query($connection, $updateQuery);

    echo '邮箱验证成功!您可以登录了。';
} else {
    echo '无效的验证链接。';
}
?>
  1. Fungsi log masuk

Tulis kod PHP untuk fungsi log masuk. Selepas pengguna mengisi borang log masuk dan menyerahkannya, kami perlu mengesahkan sama ada e-mel dan kata laluan yang dimasukkan oleh pengguna sepadan dengan rekod dalam pangkalan data.

<?php
$email = $_POST['email'];
$password = $_POST['password'];

// 在数据库中查找匹配的邮箱和密码
$query = "SELECT * FROM users WHERE email = '$email' AND password = '$password' LIMIT 1";
$result = mysqli_query($connection, $query);

// 如果找到匹配的记录,表示登录成功
if (mysqli_num_rows($result) > 0) {
    $user = mysqli_fetch_assoc($result);
    $verified = $user['verified'];

    if ($verified) {
        echo '登录成功!';
    } else {
        echo '账号尚未激活,请检查您的邮箱并点击验证链接进行账号激活。';
    }
} else {
    echo '邮箱或密码输入错误。';
}
?>

Melalui langkah di atas, kami berjaya menggunakan PHP untuk menulis sistem pendaftaran log masuk yang selamat dengan fungsi pengesahan e-mel. Pengguna perlu memberikan alamat e-mel yang sah semasa mendaftar dan mengaktifkan akaun mereka dengan mengklik pautan dalam e-mel pengesahan. Sistem jenis ini boleh memastikan keselamatan akaun dan maklumat pengguna dengan berkesan. Apabila pengguna log masuk, kami juga menyemak sama ada akaun tersebut telah disahkan untuk memberikan pengalaman pengguna yang lebih baik.

Sudah tentu, dalam aplikasi praktikal, kami masih perlu menambah baik sistem, seperti menambah penyulitan kata laluan, keluar selamat dan fungsi lain, untuk memastikan maklumat pengguna lebih selamat dan boleh dipercayai. Tetapi sistem pendaftaran log masuk asas ini sudah menyediakan kami dengan titik permulaan yang baik.

Saya harap artikel ini dapat membantu anda memahami cara menggunakan PHP untuk menulis log masuk dan sistem pendaftaran yang selamat dengan fungsi pengesahan e-mel. Memperkukuh keselamatan tapak web dan aplikasi adalah penting untuk melindungi pengguna dan data, dan saya harap anda boleh menggunakan pengetahuan ini dengan berkesan dalam aplikasi praktikal.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan PHP untuk menulis log masuk dan sistem pendaftaran yang selamat dengan fungsi pengesahan e-mel?. 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