【发布时间】:2018-04-30 20:53:07
【问题描述】:
我想创建一个HTML表单,用户可以输入自己的姓名并提交,但用户没有填写姓名输入,系统不会提交并在警告框中显示错误消息。
这是我关于 form.php 的代码
<form name="myForm" action="b.php" method="post">
Name: <input type="text" name="fname">
<input type="submit" value="Submit" onclick="return validateForm()">
</form>
<script>
function validateForm() {
var x = document.forms["myForm"]["fname"].value;
if (x == "") {
alert("Name must be filled out");
return false;
}
}
</script>
并提交成功,信息会到这个页面b.php b.php
<?php
echo $_POST[fname];
?>
但是当用户使用浏览器调试工具(如chrome)时,他们可以改变表单输入“name”“id”“class”.etc的值,在这种情况下,当用户改变表单名称值时,表单可以不填姓名提交。
解决这个问题的任何想法.....或使用javascript进行验证不是一个好的选择??????谢谢
在此处输入图片说明
【问题讨论】:
-
你听说过服务器端验证吗?
-
您实际上可以循环所有表单。不要在验证中指定表单的名称。只需检查文件上的所有表格。我不会亲自这样做,我只会做后端验证。
-
您永远无法阻止人们修改表单。任何人都可以保存 HTML,修改它,然后通过 cURL 发布它,任何 JS 验证等都将无用。 JS 验证只是为用户提供方便(不需要将数据发布到服务器以获取有关无效字段的提示等)。您也将总是需要在服务器上对其进行验证。基本上,从不相信来自客户的任何东西。
标签: javascript php html forms