
本文档旨在提供一个详细的教程,指导开发者如何使用 JavaScript 实现表单验证,并防止未经验证的错误数据被插入到数据库中。我们将深入探讨如何拦截表单提交事件,执行客户端验证,并在所有输入都有效后才允许表单提交,从而确保数据的完整性和准确性。
在Web开发中,前端表单验证是至关重要的一环。它可以在数据提交到服务器之前,在客户端对用户输入的数据进行检查,从而:
我们将通过一个注册表单的例子,演示如何使用 JavaScript 实现表单验证,并阻止未通过验证的数据插入数据库。
首先,我们需要修改 HTML 结构,移除 form 标签中的 action 属性和 onsubmit 中的 return false;。我们将使用 JavaScript 来控制表单的提交。
立即学习“Java免费学习笔记(深入)”;
<form name="myForm" onsubmit="return validateFormRec(event)">
<div class="container">
<label>
<b>Name:</b>
<input type="text" placeholder="Enter Name" name="Name" />
</label>
<label>
<b>Mobile Number:</b>
<input type="text" placeholder="ex: 966563929302" name="Number" />
</label>
<label>
<b>Password:</b>
<input type="password" placeholder="Enter Password" name="Password" />
</label>
<input type='submit' value='Sign up' />
</div>
</form>接下来,我们编写 JavaScript 验证函数 validateFormRec(event)。这个函数将拦截表单的提交事件,执行验证逻辑,并根据验证结果决定是否允许表单提交。
function validateFormRec(e){
e.preventDefault(); // 阻止表单的默认提交行为
const form=document.forms.myForm; // 获取表单对象
const col=[...form.elements]; // 将表单元素转换为数组
const pttn=/^\d{12}$/; // 电话号码的正则表达式
let bValid=true; // 设置一个标志位,用于记录验证结果
// 遍历所有表单元素,检查是否为空
col.some(n=>{
if( n.nodeType==1 && n.value=='' && n.type!='submit' ){
alert( '"' + n.name + '" cannot be empty!');
bValid=false; // 如果有空字段,设置标志位为 false
return true; // 停止遍历
}
});
// 电话号码格式验证
if( !pttn.test(form.Number.value) ){
alert("The number must contain 12 digits");
bValid=false;
}
// 电话号码前缀验证
if( !form.Number.value.startsWith("966") ){
alert("The Number must start with 966");
bValid=false;
}
// 密码长度验证
if( form.Password.value.length < 5 ){
alert('That Password is too short!');
bValid=false;
}
// 只有当所有验证都通过时,才允许表单提交
if(bValid){
form.method='POST'; // 设置表单提交方式为 POST
form.submit(); // 提交表单
}
return bValid; // 返回验证结果
}代码解释:
在 PHP 后端,你仍然需要进行服务器端验证,以确保数据的安全性。以下是一个简单的示例:
<?php
if($_SERVER['REQUEST_METHOD'] == "POST") {
$RecipientName = $_POST['Name'];
$Number = $_POST['Number'];
$password = $_POST['Password'];
if(!empty($RecipientName) && !empty($Number) && !empty($password) && is_numeric($RecipientName) === false) {
// 数据验证通过,执行数据库插入操作
$Recipient_id = random_int(0, 500);
$query = "insert into recipient (id,name,password,mobile) values ('$Recipient_id','$RecipientName','$password','$Number')";
mysqli_query($con, $query);
header("location:RecpPH.php");
die();
} else {
echo "Please enter some valid information!";
}
}
?>注意事项:
通过以上步骤,我们成功地实现了 JavaScript 表单验证,并阻止了未通过验证的数据插入数据库。这种方法可以有效地提高用户体验,减少服务器压力,并增强应用程序的安全性。记住,客户端验证和服务器端验证是相辅相成的,都需要认真对待。
以上就是JavaScript 表单验证:防止未验证数据插入数据库的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号