首页 > 解决方案 > 防止 PHP 中的直接访问表单成功页面

问题描述

我正在通过 PHP jQuery 保存注册表单数据,例如

<script>
$(document).ready(function(){
  $("#FORM_ID").submit(function() {
                var name= $("#name").val();
                var password= $("#password").val();

                $.ajax({
                    type: "POST",
                    url: "insert.php",
                    data: "name=" + name+ "&password=" + password,
                    success: function(data) {
                       alert("sucess");
                    }
                });


            });
    });
</script>

问题是如果我直接访问 insert.php 并在 url 上传递参数保存数据,并且在表单提交时我正在做一些验证,所以通过这样做任何人都可以直接保存注册数据并且可以轻松绕过验证,所以任何其他方式都可以防止这种情况发生。

标签: phpjquery

解决方案


尝试这个:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
  exit();
}

将其放在insert.php文件的顶部。这将检查发布的数据是通过 AJAX 还是通过表单。如果发布的数据来自 AJAX,它将允许进一​​步执行。否则,如果条件不满足(或为假),它将退出执行。


推荐阅读