Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penjelasan terperinci tentang cara menggunakan php untuk melaksanakan fungsi log masuk dan pendaftaran

Penjelasan terperinci tentang cara menggunakan php untuk melaksanakan fungsi log masuk dan pendaftaran

PHPz
PHPzasal
2023-04-04 14:29:143527semak imbas

Sebagai bahasa skrip sebelah pelayan, PHP digunakan secara meluas dalam pembangunan rangkaian, antaranya fungsi log masuk dan pendaftaran merupakan keperluan biasa. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi log masuk dan pendaftaran yang mudah.

1. Cipta pangkalan data

Pertama, anda perlu mencipta jadual dalam pangkalan data MySQL untuk menyimpan maklumat pengguna. Anda boleh mencipta jadual bernama "pengguna" dalam pangkalan data menggunakan pernyataan SQL berikut:

CREATE TABLE user (
  id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(30) NOT NULL,
  email VARCHAR(50) NOT NULL,
  password VARCHAR(30) NOT NULL
)

Jadual mengandungi empat medan: id, nama pengguna, e-mel dan kata laluan. Antaranya, id ialah kunci utama jenis integer yang bertambah sendiri, nama pengguna ialah nama pengguna, e-mel ialah alamat e-mel pengguna, dan kata laluan ialah kata laluan pengguna. Perlu diingatkan bahawa medan kata laluan harus disulitkan menggunakan algoritma penyulitan.

2. Cipta halaman log masuk

Seterusnya, anda perlu mencipta halaman log masuk. Halaman ini boleh dilaksanakan menggunakan HTML, CSS dan JavaScript. Berikut ialah contoh asas:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>登录</title>
</head>
<body>
  <h1>登录</h1>
  <form action="login.php" method="POST">
    <input type="text" name="username" placeholder="用户名"><br>
    <input type="password" name="password" placeholder="密码"><br>
    <button type="submit" name="submit">登录</button>
  </form>
</body>
</html>

Dalam contoh ini, kami mencipta borang yang mempunyai dua kotak input untuk nama pengguna dan kata laluan serta butang hantar. Apabila pengguna mengklik butang hantar, borang akan menghantar permintaan POST ke halaman login.php.

3. Cipta skrip PHP untuk mengesahkan log masuk

Seterusnya, anda perlu mencipta fail login.php untuk mengesahkan maklumat log masuk pengguna. Berikut ialah contoh asas:

<?php
session_start();
if (isset($_POST['username']) && isset($_POST['password']) && !empty($_POST['username']) && !empty($_POST['password'])) {
  $username = $_POST['username'];
  $password = md5($_POST['password']); // 加密密码
  $conn = mysqli_connect('localhost', 'root', '123456', 'test');
  if (!$conn) {
      die('Could not connect: ' . mysqli_connect_error());
  }
  $sql = "SELECT * from user WHERE username='$username' AND password='$password'";
  $result = mysqli_query($conn, $sql);
  if (mysqli_num_rows($result) == 1) {
      $row = mysqli_fetch_assoc($result);
      $_SESSION['username'] = $row['username'];
      header('Location: index.php'); // 登录成功后跳转到首页
  } else {
      echo '用户名或密码错误';
  }
} else {
  echo '请输入用户名和密码';
}

Dalam contoh ini, tentukan dahulu sama ada permintaan POST dihantar, dan kemudian dapatkan nama pengguna dan kata laluan yang diserahkan. Kemudian gunakan fungsi md5() untuk menyulitkan kata laluan untuk mengelakkan teks biasa daripada dicuri. Seterusnya, sambung ke pangkalan data dan gunakan pernyataan SELECT untuk menanyakan maklumat pengguna. Jika keputusan pertanyaan ialah 1, ini bermakna pengesahan nama pengguna dan kata laluan berjaya, nama pengguna disimpan dalam sesi dan dialihkan ke halaman index.php. Jika tidak, mesej ralat "Nama pengguna atau kata laluan tidak betul" akan dipaparkan.

4. Buat halaman pendaftaran

Seterusnya, anda perlu membuat halaman pendaftaran, yang serupa dengan halaman log masuk. Berikut ialah contoh asas:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>注册</title>
</head>
<body>
  <h1>注册</h1>
  <form action="register.php" method="POST">
    <input type="text" name="username" placeholder="用户名"><br>
    <input type="email" name="email" placeholder="电子邮件"><br>
    <input type="password" name="password" placeholder="密码"><br>
    <button type="submit" name="submit">注册</button>
  </form>
</body>
</html>

Dalam contoh ini, kami mencipta borang dengan tiga kotak input untuk nama pengguna, e-mel dan kata laluan serta butang hantar. Apabila pengguna mengklik butang hantar, borang akan menghantar permintaan POST ke halaman register.php.

5. Cipta skrip PHP untuk mengesahkan pendaftaran

Seterusnya, anda perlu mencipta fail register.php untuk mengesahkan maklumat pendaftaran pengguna. Berikut ialah contoh asas:

<?php
session_start();
if (isset($_POST['username']) && isset($_POST['email']) && isset($_POST['password'])
    && !empty($_POST['username']) && !empty($_POST['email']) && !empty($_POST['password'])) {
  $username = $_POST['username'];
  $email = $_POST['email'];
  $password = md5($_POST['password']); // 加密密码
  $conn = mysqli_connect('localhost', 'root', '123456', 'test');
  if (!$conn) {
      die('Could not connect: ' . mysqli_connect_error());
  }
  $sql = "SELECT * from user WHERE username='$username' OR email='$email'";
  $result = mysqli_query($conn, $sql);
  if (mysqli_num_rows($result) == 0) {
      $sql = "INSERT INTO user (username, email, password) VALUES ('$username', '$email', '$password')";
      if (mysqli_query($conn, $sql)) {
          $_SESSION['username'] = $username;
          header('Location: index.php'); // 注册成功后跳转到首页
      } else {
          echo '注册失败';
      }
  } else {
      echo '用户名或电子邮件已被注册';
  }
} else {
  echo '请输入完整的注册信息';
}

Dalam contoh ini, ia mula-mula menentukan sama ada permintaan POST telah dihantar, dan kemudian memperoleh nama pengguna, e-mel dan kata laluan yang diserahkan. Kemudian gunakan fungsi md5() untuk menyulitkan kata laluan. Seterusnya sambung ke pangkalan data dan gunakan pernyataan SELECT untuk bertanya sama ada pengguna dengan nama pengguna atau e-mel yang sama sudah wujud. Jika keputusan pertanyaan ialah 0, ini bermakna anda boleh mendaftar, memasukkan maklumat pengguna ke dalam pangkalan data, menyimpan nama pengguna dalam sesi, dan ubah hala ke halaman index.php. Jika tidak, mesej ralat "Nama pengguna atau e-mel telah didaftarkan" akan dipaparkan.

6. Kesimpulan

Setakat ini, kami telah mempelajari cara menggunakan PHP untuk melaksanakan fungsi log masuk dan pendaftaran. Perlu diingatkan bahawa artikel ini hanyalah contoh mudah Dalam aplikasi sebenar, satu siri langkah keselamatan diperlukan, seperti mencegah suntikan SQL, serangan XSS, dll. Semoga artikel ini dapat membantu anda.

Atas ialah kandungan terperinci Penjelasan terperinci tentang cara menggunakan php untuk melaksanakan fungsi log masuk dan pendaftaran. 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