Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何验证$\u GET以仅允许特定密钥_Php_Get - Fatal编程技术网

Php 如何验证$\u GET以仅允许特定密钥

Php 如何验证$\u GET以仅允许特定密钥,php,get,Php,Get,假设我当前的URL是 http://domain.com/category/cars/?page=2 如何在此页面上验证以仅允许$\u GET['page'] 若用户在URL上键入以下内容,将转到错误页面 http://domain.com/category/cars/?page=2&bar=foo http://domain.com/category/cars/?foo=bar&page=2 http://domain.com/category/cars/?foo=bar&a

假设我当前的URL是

http://domain.com/category/cars/?page=2
如何在此页面上验证以仅允许$\u GET['page']

若用户在URL上键入以下内容,将转到错误页面

http://domain.com/category/cars/?page=2&bar=foo
http://domain.com/category/cars/?foo=bar&page=2
http://domain.com/category/cars/?foo=bar&bar=foo
让我知道..

好吧,你可以使用:

if( count($_GET) > 1 || !isset($_GET['page'])) { /*error*/ }
嗯,你可以使用:

if( count($_GET) > 1 || !isset($_GET['page'])) { /*error*/ }

您应该只关心应用程序中使用的GET/POST变量。相应地验证和转义它们,检查它们是否已设置。其余的应该忽略-您不需要关心它们和显示错误

您应该只关心应用程序中使用的GET/POST变量。相应地验证和转义它们,检查它们是否已设置。其余的应该忽略-您不需要关心它们和显示错误

    $allowedKeys = array('page');


    $_GET = array_intersect_key($_GET, array_flip($allowedKeys));
您不必担心不需要的参数和值,因为它们不会通过$\u GET方法被接受。在上面的代码中,唯一允许的$\u GET参数是“page”

您不必担心不需要的参数和值,因为它们不会通过$\u GET方法被接受。在上面的代码中,唯一允许的$\u GET参数是“page”

我可以这样做:

<?php
if ($_GET)
  {
    foreach($_GET as $key=>$value)
      {
        if($key!='page')
          {
            $error=true;
          }
      }
  }
?>
我可以这样做:

<?php
if ($_GET)
  {
    foreach($_GET as $key=>$value)
      {
        if($key!='page')
          {
            $error=true;
          }
      }
  }
?>

你为什么关心他们在URL中添加的其他内容?你为什么关心他们在URL中添加的其他内容?