编写一个POST表单页面,让用户输入用户名和密码。 提交后,先检测user表中是否已经存在相同用户名,如果存在则提示用户已注册;如果不存在,则在表中创建新用户,并提示注册成功。 要求在检测(select)和创建用户(insert)过程中使用mysqli的预处理功能。
时间: 2024-05-25 17:16:14 浏览: 62
<!DOCTYPE html>
<html>
<head>
<title>用户注册</title>
<meta charset="utf-8">
</head>
<body>
<h2>用户注册</h2>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<label for="username">用户名:</label>
<input type="text" name="username" id="username" required><br><br>
<label for="password">密码:</label>
<input type="password" name="password" id="password" required><br><br>
<input type="submit" name="submit" value="注册">
</form>
<br><br>
<?php
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
// 连接数据库
$conn = new mysqli('localhost', 'root', 'password', 'test');
if($conn->connect_error){
die('连接失败:'.$conn->connect_error);
}
// 设置字符集
$conn->set_charset('utf8');
// 检测用户名是否已经存在
$stmt = $conn->prepare('SELECT * FROM user WHERE username = ?');
$stmt->bind_param('s', $username);
$stmt->execute();
$result = $stmt->get_result();
if($result->num_rows > 0){
echo "<p>该用户名已经被注册,请重新输入!</p>";
}else{
// 创建新用户
$stmt = $conn->prepare('INSERT INTO user (username, password) VALUES (?, ?)');
$stmt->bind_param('ss', $username, $password);
if($stmt->execute()){
echo "<p>注册成功!</p>";
}else{
echo "<p>注册失败,请稍后再试!</p>";
}
}
// 关闭连接
$stmt->close();
$conn->close();
}
?>
</body>
</html>
阅读全文