php - 防止 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 上传递参数保存数据,并且在表单提交时我正在做一些验证,所以通过这样做任何人都可以直接保存注册数据并且可以轻松绕过验证,所以任何其他方式都可以防止这种情况发生。
解决方案
尝试这个:
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,它将允许进一步执行。否则,如果条件不满足(或为假),它将退出执行。
推荐阅读
- pycharm - python模块pywinauto故障排除
- android - Android 折叠工具栏不适用于 RecyclerView
- javascript - 错误消息后更新状态 - Firebase - React Native
- r - 在闪亮中,如何在文本输入中插入数学符号,以便我的 r 代码执行方程式?
- c++ - 从 Visual Studio 中间窗口调用方法 nlohmann::json::dump
- c# - MVVM Window 的新实例打破了绑定
- r - Runnin R 脚本的 VBA Shell
- javascript - 如何在我的命令中编写子命令?
- python - PyPI 如何决定包的最新版本是什么?
- python - 无服务器部署上的“资源类型无法更改”