php实现注册
PHP 注册功能实现
数据库准备
创建一个名为 users 的表,包含以下字段:
id:自增主键username:用户名email:邮箱password:密码(需加密存储)created_at:注册时间
SQL 示例:

CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
注册表单
创建一个 HTML 表单文件 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>
<input type="password" name="confirm_password" placeholder="确认密码" required>
<button type="submit">注册</button>
</form>
处理注册逻辑
创建 PHP 处理文件 register.php:

<?php
// 连接数据库
$db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
// 获取表单数据
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$confirm_password = $_POST['confirm_password'];
// 验证数据
if ($password !== $confirm_password) {
die('两次输入的密码不一致');
}
// 检查邮箱是否已存在
$stmt = $db->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
if ($stmt->fetch()) {
die('该邮箱已被注册');
}
// 密码加密
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
// 插入用户数据
$stmt = $db->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->execute([$username, $email, $hashed_password]);
echo '注册成功';
?>
安全性增强
添加输入验证和防止 SQL 注入:
// 过滤输入
$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
// 验证邮箱格式
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
die('无效的邮箱格式');
}
密码强度验证
添加密码强度检查:
if (strlen($password) < 8) {
die('密码长度至少为8个字符');
}
if (!preg_match('/[A-Z]/', $password)) {
die('密码必须包含至少一个大写字母');
}
if (!preg_match('/[0-9]/', $password)) {
die('密码必须包含至少一个数字');
}
完整流程
- 用户访问注册页面填写表单
- 提交表单数据到 PHP 处理脚本
- 验证输入数据的合法性
- 检查用户名/邮箱是否已存在
- 加密密码并存储到数据库
- 返回注册成功信息或错误提示
注意替换代码中的数据库连接信息和根据实际需求调整验证规则。





