【问题标题】:How prevent user to change form input value from browser debug tools?如何防止用户从浏览器调试工具更改表单输入值?
【发布时间】: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


【解决方案1】:

服务器端验证将处理此问题。如果输入值为空或其他任何内容,则将页面返回到表单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 2015-03-26
    • 1970-01-01
    相关资源
    最近更新 更多