js+php实现若账号没有重复,则点击“注册”按钮时,对验证码进行正确性判断,若是错误,则将账号和手机号信息回填到注册界面中,在验证码文本框中显示红色提示信息的代码怎么写
时间: 2024-03-28 13:40:04 浏览: 165
php+mysql图书管理系统.zip
好的,我来给你提供一份示例代码,希望能对你有所帮助。
HTML代码:
```
<form id="register-form" action="register.php" method="post">
<input type="text" name="username" placeholder="请输入账号">
<input type="text" name="phone" placeholder="请输入手机号">
<input type="text" name="captcha" placeholder="请输入验证码">
<img id="captcha-img" src="captcha.php" onclick="this.src='captcha.php?'+Math.random();" alt="验证码">
<input type="submit" name="submit" value="注册">
</form>
<div id="error-msg"></div>
```
JavaScript代码:
```
<script>
$(function() {
// 监听表单提交事件
$("#register-form").submit(function(event) {
event.preventDefault(); // 阻止表单默认提交行为
// 获取用户输入的账号、手机号和验证码
var username = $("input[name='username']").val();
var phone = $("input[name='phone']").val();
var captcha = $("input[name='captcha']").val();
// 发送 Ajax 请求到后端校验
$.ajax({
type: "POST",
url: "register.php",
data: {
username: username,
phone: phone,
captcha: captcha
},
dataType: "json",
success: function(response) {
if (response.status === "success") {
// 注册成功,跳转到登录页面
window.location.href = "login.php";
} else {
// 注册失败,显示错误信息
$("#error-msg").text(response.message);
// 如果是验证码错误,则将验证码文本框显示为红色
if (response.type === "captcha") {
$("input[name='captcha']").css("border-color", "red");
}
}
}
});
});
});
</script>
```
PHP代码:
```
<?php
// 数据库连接信息
$host = "localhost";
$username = "root";
$password = "password";
$dbname = "test";
// 获取用户输入的账号、手机号和验证码
$username = $_POST["username"];
$phone = $_POST["phone"];
$captcha = $_POST["captcha"];
// 连接数据库
$conn = mysqli_connect($host, $username, $password, $dbname);
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
// 检查账号是否已经被注册
$sql = "SELECT * FROM users WHERE username='$username'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
$response = array("status" => "error", "type" => "username", "message" => "该账号已经被注册过了!");
echo json_encode($response);
exit();
}
// 校验验证码
session_start();
if ($captcha !== $_SESSION["captcha"]) {
$response = array("status" => "error", "type" => "captcha", "message" => "验证码错误,请重新输入!");
echo json_encode($response);
exit();
}
// 将用户信息插入到数据库中
$sql = "INSERT INTO users (username, phone) VALUES ('$username', '$phone')";
if (mysqli_query($conn, $sql)) {
$response = array("status" => "success", "message" => "注册成功!");
echo json_encode($response);
} else {
$response = array("status" => "error", "message" => "注册失败,请稍后重试!");
echo json_encode($response);
}
// 关闭数据库连接
mysqli_close($conn);
?>
```
这份代码实现了以下功能:
- 用户输入账号、手机号和验证码,点击“注册”按钮提交表单;
- 前端使用 JavaScript 发送 Ajax 请求到后端 PHP 代码进行校验;
- 后端 PHP 代码中,先检查账号是否已经被注册过,如果已经被注册,则返回错误信息;
- 如果账号没有被注册过,就校验用户输入的验证码,如果验证码错误,则返回错误信息;
- 如果验证码正确,则将用户信息插入到数据库中,返回注册成功信息。
如果有需要的话,你可以根据自己的业务需求进行修改。
阅读全文