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、创建登录表单
现在,我们需要创建一个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 } ?>
发表评论