在Web开发中,用户登录和注销是最基本也是最重要的功能之一。本文将通过一个简单的示例,详细介绍如何使用PHP函数实现完整的用户登录和退出流程。
首先,需要建立一个数据库来保存用户的用户名和密码。以下是创建数据库及数据表的示例SQL代码:
CREATE DATABASE user_info; USE user_info; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL );
接着,需要一个登录表单页面,用于采集用户输入的账号与密码。
<!DOCTYPE html> <html> <head> <title>Login</title> </head> <body> <h1>Login</h1> <form action="login.php" method="POST"> <label for="username">Username:</label> <input type="text" name="username" id="username" required><br> <label for="password">Password:</label> <input type="password" name="password" id="password" required><br> <input type="submit" value="Login"> </form> </body> </html>
用户提交表单后,将跳转到登录处理页。这个页面会校验账号密码,并开启Session。
<?php session_start(); // 获取表单数据 $username = $_POST['username']; $password = $_POST['password']; // 连接数据库 $mysqli = new mysqli('localhost', 'username', 'password', 'user_info'); // 查询用户信息 $query = "SELECT * FROM users WHERE username='$username' AND password='$password'"; $result = $mysqli->query($query); // 判断登录状态 if ($result->num_rows == 1) { $_SESSION['username'] = $username; header('Location: welcome.php'); } else { echo 'Invalid username or password.'; } ?>
登录成功后跳转至欢迎页,如果未登录则自动重定向回登录页面。
<?php session_start(); if (isset($_SESSION['username'])) { $username = $_SESSION['username']; echo "Welcome, $username! "; echo '<a href="logout.php">Logout</a>'; } else { header('Location: login.php'); } ?>
用户点击注销后,应清除Session并跳转回登录页。
<?php session_start(); session_unset(); session_destroy(); header('Location: login.php'); ?>
通过PHP结合MySQL数据库,可以快速实现一个简单的用户登录与注销功能。建议在实际项目中对密码进行加密存储(如使用 password_hash())、增加验证码功能,并使用预处理语句(Prepared Statements)防止SQL注入,以增强系统安全性。