$a = $_REQUEST['label'];
现在我如何识别存储在变量中的值$a
是来自$_GET
还是来自$_POST
?如果它是从收集的,我想重定向用户$_GET
。有什么方法可以检查吗?PHP 有点难。就像这样:
$var = recognize($_REQUEST['label']);
if($var == 'GET') { } else { }
$a = $_REQUEST['label'];
现在我如何识别存储在变量中的值$a
是来自$_GET
还是来自$_POST
?如果它是从收集的,我想重定向用户$_GET
。有什么方法可以检查吗?PHP 有点难。就像这样:
$var = recognize($_REQUEST['label']);
if($var == 'GET') { } else { }
分配变量后,您将无法分辨它(通常)来自哪里。
考虑做这样的事情,因为如果你使用$_REQUEST
它甚至可能来自$_COOKIE
!
if (isset($_GET['label'])) {
// do redirect
} elseif (isset($_POST['label'])) {
// do something else
}
或者,如果您将该变量深入传递到您无法分辨它最初来自何处的位置:
class RequestParameter
{
private $name;
private $value;
private $source;
public function __construct($name)
{
$this->name = $name;
if (isset($_POST[$name])) {
$this->value = $_POST[$name];
$this->source = INPUT_POST;
} elseif (isset($_GET[$name])) {
$this->value = $_GET[$name];
$this->source = INPUT_GET;
}
}
public function isFromGet()
{
return $this->source === INPUT_GET;
}
public function getValue()
{
return $this->value;
}
}
$a = new RequestParameter('label');
if ($a->isFromGet()) {
// do redircet
}
但我建议以一种不必要的方式构建您的代码。一种方法是检查是否进行了 POST:
$_SERVER['REQUEST_METHOD'] === 'POST'
检查if($_GET['label']) { then redirect using header location; }
试试这个
if(isset($_REQUEST['label'])){
//redirect
}