📜  php登录系统 - PHP(1)

📅  最后修改于: 2023-12-03 15:03:45.632000             🧑  作者: Mango

PHP登录系统

PHP登录系统是一个常见的Web应用程序功能之一。本文将介绍如何用PHP构建一个简单的登录系统。

前提条件

在开始之前,您需要确保已经安装了PHP和MySQL。您还需要有一些基本的Web开发知识。

数据库设置

首先,我们需要设置一个MySQL数据库,用于存储用户的用户名和密码。您可以使用以下命令在MySQL中创建一个名为"users"的表:

CREATE TABLE users (
  id INT(11) NOT NULL AUTO_INCREMENT,
  username VARCHAR(50) NOT NULL,
  password VARCHAR(255) NOT NULL,
  PRIMARY KEY (id)
);

该表包含三个列:id,username和password。id列是一个自动递增的列,用于唯一标识每个用户。username列存储用户名,password列存储经过哈希处理的密码。

登录表单

下一步是创建登录表单。创建一个名为"login.php"的文件,并添加以下代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Login</title>
</head>
<body>
  <h2>Login</h2>
  <form method="post" action="login.php">
    <label>Username</label>
    <input type="text" name="username"><br>
    <label>Password</label>
    <input type="password" name="password"><br>
    <input type="submit" name="submit" value="Login">
  </form>
</body>
</html>

该表单有两个输入框,分别用于输入用户名和密码。提交表单时,将POST数据发送到"login.php"页面。

验证用户

在"login.php"文件中添加以下PHP代码,用于验证用户输入的用户名和密码:

<?php
session_start();

if (isset($_POST['submit'])) {
  $username = $_POST['username'];
  $password = $_POST['password'];

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

  // 检查数据库连接是否成功
  if ($mysqli === false) {
    die("Error: Could not connect to database. " . $mysqli->connect_error);
  }

  // 查询用户
  $query = "SELECT * FROM users WHERE username='$username'";
  $result = $mysqli->query($query);

  if ($result->num_rows == 1) {
    $row = $result->fetch_assoc();
    if (password_verify($password, $row['password'])) {
      // 验证成功,将用户ID保存到会话中
      $_SESSION['user_id'] = $row['id'];
      header("Location: dashboard.php");
      exit;
    } else {
      // 密码错误
      $error = "Invalid username or password.";
    }
  } else {
    // 用户名错误
    $error = "Invalid username or password.";
  }

  $mysqli->close();
}
?>

这段代码首先检查是否点击了提交按钮。然后,它从POST数据中获取用户名和密码。接下来,它连接到MySQL数据库,并查询是否存在具有给定用户名的用户。如果存在,它将获取该用户的哈希密码,并将其与用户输入的密码进行比较。

如果密码匹配,代码将在会话中保存用户ID,并将用户重定向到仪表板页面。如果密码不匹配,代码将显示一个错误消息。

仪表板页面

当用户成功登录后,我们需要显示一个仪表板页面。创建一个名为"dashboard.php"的文件,并添加以下代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Dashboard</title>
</head>
<body>
  <h2>Welcome, <?php echo $_SESSION['user_id']; ?></h2>
  <a href="logout.php">Logout</a>
</body>
</html>

该页面仅仅是一个欢迎消息和一个注销链接。在欢迎消息中,我们使用会话中保存的用户ID。

注销

最后一步是添加注销功能。创建一个名为"logout.php"的文件,并添加以下代码:

<?php
session_start();
session_unset();
session_destroy();
header("Location: login.php");
exit;
?>

这将清除所有会话数据,并将用户重定向到登录页面。

总结

现在您已经了解了如何使用PHP和MySQL构建一个简单的登录系统。当然,这只是一个入门级别的示例,您可以根据需要进行扩展和修改。