20) { $error = "用户名长度必须在3-20个字符之间"; } elseif (empty($email)) { $error = "邮箱不能为空"; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $error = "请输入有效的邮箱地址"; } elseif (empty($password)) { $error = "密码不能为空"; } elseif (strlen($password) < 6) { $error = "密码长度不能少于6个字符"; } elseif ($password !== $confirm_password) { $error = "两次输入的密码不一致"; } else { // 连接数据库 $conn = new mysqli($servername, $dbusername, $dbpassword, $dbname); // 检查数据库连接 if ($conn->connect_error) { $error = "数据库连接失败: " . $conn->connect_error . "
使用的连接信息:
" . "服务器: " . htmlspecialchars($servername) . "
" . "用户名: " . htmlspecialchars($dbusername) . "
" . "数据库名: " . htmlspecialchars($dbname); } else { // 检查用户名或邮箱是否已存在 $sql = "SELECT id FROM users WHERE username = ? OR email = ?"; $stmt = $conn->prepare($sql); if (!$stmt) { $error = "准备查询语句失败: " . $conn->error; } else { $stmt->bind_param("ss", $username, $email); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows > 0) { $error = "用户名或邮箱已被注册"; $stmt->close(); } else { $stmt->close(); // 密码加密 $hashed_password = password_hash($password, PASSWORD_DEFAULT); // 插入新用户 $sql = "INSERT INTO users (username, email, password_hash, nickname, created_at) VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)"; $stmt = $conn->prepare($sql); if (!$stmt) { $error = "准备插入语句失败: " . $conn->error; } else { $stmt->bind_param("ssss", $username, $email, $hashed_password, $nickname); if ($stmt->execute()) { $success = true; // 注册成功后自动登录(可选) $_SESSION['user_logged_in'] = true; $_SESSION['user_id'] = $conn->insert_id; $_SESSION['user_info'] = [ 'username' => $username, 'email' => $email, 'nickname' => $nickname ]; // 延迟跳转,让用户看到成功信息 if ($_POST['auto_login'] ?? true) { header('Refresh: 2; URL=index.php'); } } else { $error = "注册失败: " . $stmt->error; } $stmt->close(); } } } $conn->close(); } } } ?> 用户注册 - 音乐分享网站

用户注册

注册成功!感谢您的加入
2秒后将自动跳转到首页...
">
3-20个字符,可包含字母、数字和下划线
显示给其他用户的名称,不填则默认与用户名相同
用于登录和密码找回
至少6个字符,建议包含字母和数字