在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注入,以增强系统安全性。