如何使用 $_GET 或 $_POST 变量来区分每种类型的请求? [复制]

Posted

技术标签:

【中文标题】如何使用 $_GET 或 $_POST 变量来区分每种类型的请求? [复制]【英文标题】:How to use $_GET or $_POST variable to distinguish each type of request? [duplicate] 【发布时间】:2012-08-01 04:01:13 【问题描述】:

可能重复:php detecting request type (GET, POST, PUT or DELETE)

我想在人们多次提交表单时显示警告,并且当他使用GET 请求页面时,count 变量重置为 0;

我正在使用这种技术:

<input type="hidden" name="submissioncount" value="<?php echo $subCount; ?>" /> 

但在我看来 $_GET 和 $_POST 总是存在的:

<?php
if(isset($_GET))
  $warning = "GET exist";
else
  $warning = 'GET not exist';

if(isset($_POST))
  $warning2 = "POST exsit";
else
  $warning2 = 'POST not exist ';



?>
<!DOCTYPE html>
<html>
<head></head>
<body>
<?php
  echo $warning;
  echo $warning2; 
?>
<form acion='<?php echo $_SERVER['PHP_SELF']?>' method='POST' >
<input type='submit' />
</form>
</body>
</html>

原来它还存在?我在哪里做错或任何其他工作?

【问题讨论】:

见***.com/questions/359047/… @Musa 很棒的资源! $_SERVER['REQUEST_METHOD'] 施展魔法 【参考方案1】:

$_GET$_POST superglobals exist 无论是否通过,因此检查它们将返回 true。检查其中的条目以确定它们是否存在。

if(isset($_POST['submissioncount'])if(isset($_GET[some_GET_variable])


或者,

$meth = $_SERVER['REQUEST_METHOD'];
if($meth == 'GET')
//do something
else if($meth == 'POST')
//do something else

【讨论】:

对于if(isset($_GET[some_variable_set])部分,如何定义variable_set?,你回答的其余部分很棒! 没有没有。我的意思是,如果您在 URL 中将一些 $_GET 参数作为 urlquery?param1=key1&amp;param2=key2 传递,您可以将 param1 查询为 if(isset($_GET['param1']) 知道了!是否有任何现有的 urlquery 作为变量我可以使用而不附加 param1=key 最后来实现这一点?否则 $_SERVER['REQUEST_METHOD'] 工作正常 是的。那是正确的。 :)

以上是关于如何使用 $_GET 或 $_POST 变量来区分每种类型的请求? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

_POST,_GET,_REQUEST区分

PHP $_GET与$_POST 变量

PHP 如何以正确的方式过滤所有 $_POST 变量

存储$ _GET并在POST请求中再次使用它

PHP $_GET与$_POST

$_POST、$_GET 和 $_REQUEST 之间有啥区别?