我有一个表单,可以将First Name
用户的存储发送到数据库中。我正在检查用户使用regex
php发送的信息。为了使我的项目更具交互性,我决定先验证信息,jQuery
然后再将其发送到PHP。
我的项目如下所示:
<script type="text/javascript" src="jquery-2.2.3.min.js"></script>
<script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js" type="text/javascript"></script>
<body>
<form >
<div>
<label>First Name</label>
<input name="firstname" type="text">
</div>
<div>
<input type="submit">
</div>
</form>
</body>
</html>
<script>
$(document).ready(function() {
$("form").submit(function (e) {
var firstname = $(this).find('input[name="firstname"]').val();
var regex = /^[A-Za-z0-9 \-']+$/;//Only numbers, Letters, dashes, apostrophes and spaces are accepted
if(regex.test(firstname)){
alert('Valid Name.');
}else{
alert('Invalid Name.');
e.PreventDefault();
}
});
});
</script>
现在我有两个问题:
First Name
在将数据存储到数据库之前,是否真的需要再次检查PHP?(以提高安全性)alert('Valid Name.');
?感谢您的帮助。
首先要记住,用户输入的验证仅在应用程序的服务器端实现!!!您无法使用JS在客户端验证输入数据,因为它可以非常容易地传递(通过禁用javascript或使用诸如Curl之类的工具)。
但是,您可以增加用户体验,例如在提交表单之前验证输入,或通知用户忘记填写输入。
为了告知用户在输入一个不填你可以使用新的HTML 5的属性required
像上面
Username: <input type="text" name="usrname" required>
required
除非他已经填写了相关的输入,否则该属性将不允许用户提交表单。
您也可以使用该maxlength
属性来解决用例,例如“密码必须包含X个最大字母。
Password: <input type="password" name="pass" maxlength="8" size="8"><br>
如何在服务器端验证输入
有很多技术可以在Stackoverflow上找到所有这些技术。我将引用投票最多的帖子。如何防止PHP中的SQL注入?可以准确回答您的问题。
只有两个项目符号可以压缩上述内容,我建议您以其他方式阅读
总是逃避您的数据
使用mysqli代替mysql
我该如何在警报(“有效名称”)之后立即提交表单??
这很简单,只需使用此代码
<form action="action_page.php" method="post">
<div>
<label>First Name</label>
<input name="firstname" type="text">
</div>
<div>
<input type="submit">
</div>
</form>
上面的代码将使用POST
方法将用户的输入“发送”到action_page.php的过程中,您可以在其中使用$_POST
诸如此类的supergloba表进行读取$firstname = $_POST['fistsname']
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句