php实现注册登陆
PHP 注册与登录实现
数据库准备
创建用户表,包含必要字段如 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
);
注册功能实现 处理用户提交的表单数据,验证后存入数据库。
// 注册处理逻辑
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['register'])) {
$username = trim($_POST['username']);
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
// 插入数据库
$stmt = $pdo->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
$stmt->execute([$username, $password, $email]);
header("Location: login.php");
exit;
}
登录功能实现 验证用户凭据并创建会话。
// 登录处理逻辑
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$stmt = $pdo->prepare("SELECT * 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 = "Invalid credentials";
}
}
会话管理 确保用户登录状态持久化。
// 开始会话
session_start();
// 检查登录状态
function isLoggedIn() {
return isset($_SESSION['user_id']);
}
// 登出功能
if (isset($_GET['logout'])) {
session_destroy();
header("Location: login.php");
exit;
}
安全注意事项
- 使用预处理语句防止SQL注入
- 密码必须哈希存储
- 对用户输入进行过滤和验证
- 使用HTTPS保护传输数据
- 设置CSRF防护
完整实现建议
- 创建注册表单 (register.php)
- 创建登录表单 (login.php)
- 实现用户仪表盘 (dashboard.php)
- 添加密码重置功能
- 实现记住我功能(可选)
示例表单HTML:

<!-- 登录表单示例 -->
<form method="post" action="login.php">
<input type="text" name="username" required placeholder="Username">
<input type="password" name="password" required placeholder="Password">
<button type="submit" name="login">Login</button>
</form>






