PHP实现登录功能

在Web开发中,登录功能是最基本的需求之一,它允许用户通过输入用户名和密码来访问受保护的资源,在本教程中,我们将学习如何使用PHP实现一个简单的登录功能,我们将使用MySQL数据库存储用户信息,并使用PHP处理表单提交和验证用户凭据。

1、创建数据库和表

我们需要创建一个MySQL数据库和一个用户表来存储用户的用户名和密码,以下是创建数据库和表的SQL语句:

CREATE DATABASE login_db;
USE login_db;
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL
);

2、连接数据库

接下来,我们需要使用PHP连接到我们刚刚创建的数据库,在PHP中,我们可以使用mysqli或PDO扩展来连接数据库,以下是使用mysqli扩展连接数据库的示例代码:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "login_db";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
?>

3、创建登录表单

php实现登录 php实现登录界面

现在,我们需要创建一个HTML表单,让用户输入他们的用户名和密码,以下是一个简单的登录表单示例:

<!DOCTYPE html>
<html>
<head>
    <title>登录</title>
</head>
<body>
    <h2>登录</h2>
    <form action="login.php" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username" required>
        <br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required>
        <br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

4、处理登录请求

接下来,我们需要创建一个PHP脚本(login.php)来处理用户提交的登录请求,在这个脚本中,我们将验证用户输入的用户名和密码是否与数据库中的记录匹配,以下是处理登录请求的PHP代码:

<?php
// 获取用户输入的用户名和密码
$username = $_POST['username'];
$password = $_POST['password'];
// 查询数据库以验证用户凭据
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$result = $conn->query($sql);
// 检查查询结果是否为空
if ($result->num_rows > 0) {
    // 用户名和密码匹配,设置会话变量并重定向到受保护的资源页面(dashboard.php)
    session_start();
    $_SESSION['username'] = $username;
    header("Location: dashboard.php");
} else {
    // 用户名或密码错误,显示错误消息并返回登录页面
    echo "用户名或密码错误!";
}
?>

5、创建受保护的资源页面(dashboard.php)

我们需要创建一个受保护的资源页面(dashboard.php),只有登录的用户才能访问,在这个页面上,我们可以显示一些个性化的内容,欢迎,[用户名]!”,以下是一个简单的受保护资源页面示例:

<<?php if (!isset($_SESSION['username'])) { ?>--> <!DOCTYPE html> <html> <head> <title>登录</title> </head> <body> <h2>登录</h2> <form action="login.php" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username" required> <br> <label for="password">密码:</label> <input type="password" id="password" name="password" required> <br> <input type="submit" value="登录"> </form> </body> </html><?php } else { ?>--> <!DOCTYPE html> <html> <head> <title>仪表盘</title> </head> <body> <h2>欢迎,<?php echo htmlspecialchars($_SESSION['username']); ?>!</h2> </body> </html><?php } ?>