php mysql实现注册
PHP MySQL 注册功能实现
数据库准备
创建一个名为 users 的表,包含必要字段如 id, username, email, password。密码建议使用哈希存储。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
password VARCHAR(255) NOT NULL
);
注册表单 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>
PHP 处理脚本 (register.php) 处理表单提交,验证数据并插入到数据库。
<?php
// 数据库连接
$conn = new mysqli('localhost', 'username', 'password', 'database');
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 获取表单数据
$username = $_POST['username'];
$email = $_POST['email'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT); // 哈希密码
// 准备并执行SQL
$stmt = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $username, $email, $password);
if ($stmt->execute()) {
echo "注册成功";
} else {
echo "错误: " . $stmt->error;
}
$stmt->close();
$conn->close();
?>
安全注意事项
- 使用预处理语句防止SQL注入
- 密码必须哈希存储,推荐使用
password_hash() - 验证用户输入,确保邮箱格式正确
- 考虑添加CSRF保护
- 对用户名和邮箱进行唯一性检查
输入验证示例 在插入数据库前添加验证逻辑:
// 检查用户名是否已存在
$check = $conn->prepare("SELECT id FROM users WHERE username = ?");
$check->bind_param("s", $username);
$check->execute();
$check->store_result();
if ($check->num_rows > 0) {
die("用户名已存在");
}
完整流程优化

- 创建数据库和表结构
- 设计用户友好的注册表单
- 编写安全的PHP处理脚本
- 添加适当的验证和错误处理
- 测试所有可能的用户输入场景






