如果有人通过POST或GET来告诉php页面怎么说?

时间:2008-10-30 11:31:17

标签: php http

我想在php中有一个页面,它通常根据发送给它的GET请求显示信息。但是,我希望它能够处理某些POST请求。那么,如何判断POST是否发送了任何数据,以便我可以采取行动呢?

6 个答案:

答案 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)

对于这样的问题,通常是关于环境变量,这是我如何解决它们的问题:

  • 创建一个只调用phpinfo();
  • 的foo.php
  • GET foo.php
  • POST到foo.php
  • 比较phpinfo()的输出;并使我的理论知道行为是什么
  • 在php.net
  • 验证我的理论

比在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