实现登录php
实现 PHP 登录功能
创建数据库表
在 MySQL 中创建用户表,包含 id、username、password 等字段。密码需使用 password_hash() 函数加密存储。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
注册功能
注册页面 (register.php) 包含表单提交用户名和密码,密码需加密后存入数据库。
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$conn = new mysqli('localhost', 'username', 'password', 'database');
$stmt = $conn->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
echo "注册成功";
}
?>
登录功能
登录页面 (login.php) 验证用户输入的用户名和密码是否匹配数据库记录。
<?php
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST['username'];
$password = $_POST['password'];
$conn = new mysqli('localhost', 'username', 'password', 'database');
$stmt = $conn->prepare("SELECT id, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows == 1) {
$user = $result->fetch_assoc();
if (password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
header("Location: dashboard.php");
exit();
}
}
echo "用户名或密码错误";
}
?>
会话管理
在需要登录的页面 (dashboard.php) 验证会话是否存在。
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit();
}
echo "欢迎访问仪表盘";
?>
注销功能
销毁会话并重定向到登录页面。

<?php
session_start();
session_destroy();
header("Location: login.php");
exit();
?>
安全注意事项
- 使用
password_hash()和password_verify()处理密码 - 防止 SQL 注入,使用预处理语句
- 启用 HTTPS 保护数据传输
- 设置会话过期时间
通过以上步骤可实现基本的 PHP 登录系统,实际项目中需根据需求扩展验证码、记住登录等功能。






