php登陆注册功能实现
数据库准备
创建用户表(以MySQL为例):
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`email` varchar(100) NOT NULL,
`password` varchar(255) NOT NULL,
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
注册功能实现
-
注册表单(register.html):
<form action="register.php" method="post"> <input type="text" name="username" placeholder="用户名" required> <input type="email" name="email" placeholder="邮箱" required> <input type="password" name="password" placeholder="密码" required> <button type="submit">注册</button> </form> -
注册处理逻辑(register.php):
<?php $db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$username = $_POST['username']; $email = $_POST['email']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $db->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)"); $stmt->execute([$username, $email, $password]);
header("Location: login.html"); exit(); ?>
### 登录功能实现
1. 登录表单(login.html):
```html
<form action="login.php" method="post">
<input type="email" name="email" placeholder="邮箱" required>
<input type="password" name="password" placeholder="密码" required>
<button type="submit">登录</button>
</form>
- 登录处理逻辑(login.php):
<?php session_start(); $db = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$email = $_POST['email']; $password = $_POST['password'];
$stmt = $db->prepare("SELECT * FROM users WHERE email = ?"); $stmt->execute([$email]); $user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) { $_SESSION['user_id'] = $user['id']; header("Location: dashboard.php"); } else { echo "邮箱或密码错误"; } ?>

### 会话管理与安全
1. 密码哈希
使用`password_hash()`和`password_verify()`确保密码安全存储与验证。
2. 会话保护
在受保护页面(如dashboard.php)检查会话:
```php
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
header("Location: login.html");
exit();
}
echo "欢迎访问仪表盘";
?>
- 防SQL注入
始终使用预处理语句(如PDO的prepare()和execute())处理用户输入。
扩展功能建议
- 添加验证码防止机器人注册
- 实现“记住我”功能(使用安全Cookie)
- 密码重置流程
- 邮箱验证功能






