Php 如何验证$\u GET以仅允许特定密钥
假设我当前的URL是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
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中添加的其他内容?