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

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

WBOY
WBOYasal
2023-08-18 17:45:181212semak imbas

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

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

Dengan perkembangan Internet, semakin banyak maklumat dan perkhidmatan memerlukan pengguna log masuk untuk mengakses. Untuk memastikan keselamatan pengguna, kami boleh melaksanakan sistem log masuk dan pendaftaran yang selamat melalui pengesahan e-mel. Artikel ini akan memperkenalkan cara melaksanakan sistem sedemikian menggunakan PHP dan pengesahan e-mel.

1. Pelaksanaan fungsi pendaftaran

  1. Buat pangkalan data dan jadual

Pertama, kita perlu mencipta pangkalan data bernama "pengguna" dan mencipta jadual bernama "pengguna" di dalamnya. Struktur jadual adalah seperti berikut:

BUAT JADUAL users (
id int(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username varchar(255) NOT NULL,
email varchar(255) NOT NULL,
password varchar(255) NOT NULL,
code varchar(255) NOT NULL,
active tinyint(1) BUKAN NULL LAILA '0'
);

  1. Halaman pendaftaran

Buat halaman bernama "register.php", yang digunakan untuk memaparkan borang pendaftaran Isi untuk pengguna.

<form method="post" action="">
  <input type="text" name="username" placeholder="用户名" required><br>
  <input type="email" name="email" placeholder="邮箱" required><br>
  <input type="password" name="password" placeholder="密码" required><br>
  <input type="submit" name="register" value="注册">
</form>
  1. Logik pendaftaran

Tambah kod PHP berikut dalam halaman "register.php" untuk mengendalikan permintaan pendaftaran pengguna.

if (isset($_POST['register'])) {
  $username = $_POST['username'];
  $email = $_POST['email'];
  $password = $_POST['password'];
  $code = md5(uniqid(rand()));

  $insert_query = "INSERT INTO users (username, email, password, code) 
                   VALUES ('$username', '$email', '$password', '$code')";
  mysqli_query($connection, $insert_query);

  $to = $email;
  $subject = "验证您的邮箱";
  $message = "点击以下链接验证您的邮箱:

";
  $message .= "https://example.com/verify.php?email=$email&code=$code";
  $headers = "From: example@example.com";

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

  echo "请检查您的邮箱以完成注册。";
}

Kod di atas akan memasukkan maklumat pendaftaran yang diisi oleh pengguna ke dalam pangkalan data, menjana kod pengesahan unik, dan menghantarnya kepada pengguna melalui e-mel untuk pengesahan.

2. Pelaksanaan fungsi log masuk

  1. Halaman log masuk

Buat halaman bernama "login.php", yang digunakan untuk memaparkan borang log masuk untuk diisi oleh pengguna.

<form method="post" action="">
  <input type="email" name="email" placeholder="邮箱" required><br>
  <input type="password" name="password" placeholder="密码" required><br>
  <input type="submit" name="login" value="登录">
</form>
  1. Logik log masuk

Tambah kod PHP berikut dalam halaman "login.php" untuk mengendalikan permintaan log masuk pengguna.

if (isset($_POST['login'])) {
  $email = $_POST['email'];
  $password = $_POST['password'];

  $login_query = "SELECT * FROM users WHERE email='$email' AND password='$password' AND active='1'";
  $result = mysqli_query($connection, $login_query);

  if (mysqli_num_rows($result) == 1) {
    echo "登录成功!";
  } else {
    echo "登录失败,请检查您的邮箱和密码。";
  }
}

Kod di atas akan menanyakan pangkalan data untuk melihat sama ada terdapat pengguna yang sepadan dengan e-mel dan kata laluan yang diisi oleh pengguna, dan akaun pengguna telah disahkan melalui e-mel.

3. Pelaksanaan fungsi pengesahan e-mel

  1. Halaman pengesahan

Buat halaman bernama "verify.php", yang digunakan untuk mengesahkan e-mel pengguna.

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

$update_query = "UPDATE users SET active='1' WHERE email='$email' AND code='$code'";
mysqli_query($connection, $update_query);

echo "您的邮箱已通过验证,现在可以登录了!";
?>

Kod di atas akan mengemas kini medan "aktif" lajur pengguna yang sepadan dalam pangkalan data kepada 1, menunjukkan bahawa e-mel telah disahkan.

Melalui langkah di atas, kami telah melaksanakan sistem log masuk dan pendaftaran yang selamat dan boleh dipercayai. Pengguna perlu mengisi alamat e-mel yang betul semasa mendaftar, dan mengesahkan dengan mengklik pautan dalam e-mel untuk melengkapkan pendaftaran. Apabila log masuk, ia juga akan disemak sama ada e-mel pengguna telah disahkan. Kaedah ini berkesan boleh menghalang pendaftaran berniat jahat dan operasi log masuk serta meningkatkan keselamatan sistem.

Di atas ialah kaedah dan kod sampel yang diperkenalkan dalam artikel ini untuk melaksanakan sistem log masuk dan pendaftaran selamat menggunakan PHP dan pengesahan e-mel. Harap ini membantu!

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