我想在php中有一个页面,它通常根据发送给它的GET请求显示信息。但是,我希望它能够处理某些POST请求。那么,如何判断POST是否发送了任何数据,以便我可以采取行动呢?
答案 0 :(得分:31)
使用$_SERVER['REQUEST_METHOD']
确定您的网页是否是通过GET或POST请求访问的。
如果是通过帖子访问的,请检查$_POST
中要处理的任何变量。
答案 1 :(得分:7)
如果你想通过POST和GET传递相同的变量,那么你总是可以使用包含POST和GET参数的REQUEST。但是,这通常被视为一个安全漏洞,因为它意味着变量可以更容易被欺骗。
如果您想测试请求是发送POST还是GET,那么您可以:
if($_SERVER['REQUEST_METHOD'] === 'post')
{
// Do one thing
}
elseif($_SERVER['REQUEST_METHOD'] === 'get')
{
// Do another thing
}
或者:
if(!empty($_POST))
{
// Process POST
}
elseif(!empty($_GET))
{
// Process GET
}
答案 2 :(得分:4)
检查$_SERVER['REQUEST_METHOD']
。文档为here。
答案 3 :(得分:2)
对于这样的问题,通常是关于环境变量,这是我如何解决它们的问题:
比在php.net的doc沼泽中找到答案容易得多。
答案 4 :(得分:0)
如果有页面和
,我使用$ _REQUEST变量它还需要能够处理 某些POST请求
http://is.php.net/manual/en/reserved.variables.request.php
从手册:
一个关联数组,默认包含$ _GET,$ _POST和$ _COOKIE的内容。
答案 5 :(得分:-1)
!empty($_POST)
我很确定你可以通过GET和POST访问一个页面,所以这将是最安全的方式IMO