检查请求是否为PHP中的后端请求。
在PHP中检查请求是否为后台请求的问题,可能出现的原因是:
1. 不确定POST变量是否会被发送。有些浏览器可能根本不发送该变量,如果没有指定值。
2. 某些PHP版本可能在没有POST值的情况下不定义$_POST。
解决方法是使用$_SERVER['REQUEST_METHOD'] == 'POST'
来检查请求是否为后台请求,而不是检查POST变量。此方法更可靠,因为确认了请求的方式。
另外,应该使用===
来代替==
进行比较。这是PHP编程的基础知识,关于为什么要使用===
的解释可以在这个答案的评论和其他许多资源中找到。
在PHP中检查请求是否为post back的原因是为了确定当前请求是否是由页面上的提交按钮触发的。如果你知道并期望页面上有这样一个提交按钮,可以使用以下代码来检查:
if (isset($_POST['submit'])) { // 这是一个 post back 请求 }
如果你对请求变量一无所知,可以通过检查请求方法来判断:
if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') { // 这是一个 post 请求 }
但是,如果你只想检查是否为 post back 请求,而不仅仅是任何 post 请求,你需要确保引用页面与处理页面相同。可以使用以下代码来实现:
if (basename($_SERVER['HTTP_REFERER']) == $_SERVER['SCRIPT_NAME']) { // 这是一个 post back 请求 }
在这种情况下,你应该使用`===`而不是`==`来进行比较。这是因为`===`会同时比较变量的值和类型,而`==`只会比较值。这是 PHP 编程的基本知识。
总结起来,如果你想检查请求是否为 post back 请求,可以根据是否存在特定的提交按钮或者检查请求的方法和引用页面是否与处理页面相同来判断。确保使用`===`进行比较会更加准确。