本指南提供了使用 php 实现用户注册的步骤,包括创建注册表单、处理注册请求、验证数据、检查用户名和邮箱是否存在、哈希密码、插入用户数据和重定向到登录页面。
使用 PHP 实现用户注册
1. 创建注册表单
2. 处理注册请求
在 register.php 文件中,接收表单提交的数据并处理注册逻辑:
<?php // 接收表单数据
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
// 验证数据合法性
if (empty($username) || empty($email) || empty($password)) {
echo '请填写所有字段。';
exit;
}
// 验证邮箱格式
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo '邮箱地址无效。';
exit;
}
// 连接数据库
$conn = new mysqli('localhost', 'root', '', 'database');
// 检查用户名是否已存在
$stmt = $conn->prepare('SELECT COUNT(*) FROM users WHERE username = ?');
$stmt->bind_param('s', $username);
$stmt->execute();
$result = $stmt->get_result();
$count = $result->fetch_row()[0];
$stmt->close();
// 如果用户名已存在,返回错误信息
if ($count > 0) {
echo '用户名已存在。';
exit;
}
// 检查邮箱是否已存在
$stmt = $conn->prepare('SELECT COUNT(*) FROM users WHERE email = ?');
$stmt->bind_param('s', $email);
$stmt->execute();
$result = $stmt->get_result();
$count = $result->fetch_row()[0];
$stmt->close();
// 如果邮箱已存在,返回错误信息
if ($count > 0) {
echo '邮箱地址已存在。';
exit;
}
// 哈希密码
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
// 插入新用户到数据库
$stmt = $conn->prepare('INSERT INTO users (username, email, password) VALUES (?, ?, ?)');
$stmt->bind_param('sss', $username, $email, $hashedPassword);
$stmt->execute();
$stmt->close();
// 注册成功,重定向到登录页面
header('Location: login.php');
?>