php实现登录注册
PHP 登录注册实现
数据库准备
创建数据库表 users,包含字段 id, username, password, email 等。密码建议使用 password_hash() 函数加密存储。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
注册功能实现
创建注册表单 register.php,包含用户名、密码和邮箱输入字段。表单提交后验证输入并插入数据库。
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = trim($_POST['username']);
$password = trim($_POST['password']);
$email = trim($_POST['email']);
if (empty($username) || empty($password) || empty($email)) {
$error = "所有字段必须填写";
} else {
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
// 数据库连接
$db = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
// 检查用户名是否已存在
$stmt = $db->prepare("SELECT id FROM users WHERE username = ?");
$stmt->execute([$username]);
if ($stmt->rowCount() > 0) {
$error = "用户名已存在";
} else {
// 插入新用户
$stmt = $db->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
if ($stmt->execute([$username, $hashed_password, $email])) {
header("Location: login.php");
exit;
} else {
$error = "注册失败";
}
}
}
}
?>
登录功能实现

创建登录表单 login.php,验证用户输入并与数据库中的加密密码比对。
<?php
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = trim($_POST['username']);
$password = trim($_POST['password']);
if (empty($username) || empty($password)) {
$error = "用户名和密码必须填写";
} else {
// 数据库连接
$db = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
// 查询用户
$stmt = $db->prepare("SELECT id, username, password FROM users WHERE username = ?");
$stmt->execute([$username]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
header("Location: dashboard.php");
exit;
} else {
$error = "用户名或密码错误";
}
}
}
?>
会话管理
创建 dashboard.php 检查用户是否已登录,未登录则重定向到登录页面。

<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Dashboard</title>
</head>
<body>
<h1>Welcome, <?php echo htmlspecialchars($_SESSION['username']); ?></h1>
<a href="logout.php">Logout</a>
</body>
</html>
注销功能
创建 logout.php 清除会话数据并重定向到登录页面。
<?php
session_start();
session_unset();
session_destroy();
header("Location: login.php");
exit;
?>
安全注意事项
- 使用
htmlspecialchars()防止 XSS 攻击 - 使用预处理语句防止 SQL 注入
- 密码必须使用
password_hash()加密 - 敏感操作需验证 CSRF 令牌
- 生产环境应使用 HTTPS
扩展功能建议
- 添加记住我功能
- 实现密码重置
- 添加验证码防止暴力破解
- 实现账户锁定机制
- 记录登录日志






