假设我当前的网址是
http://domain.com/category/cars/?page=2
如何在此页面上验证仅允许$_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
让我知道..
答案 0 :(得分:4)
好吧,你可以使用:
if( count($_GET) > 1 || !isset($_GET['page'])) { /*error*/ }
答案 1 :(得分:0)
您应该只关心应用程序中使用的GET / POST变量。相应地验证并转义它们,检查它们是否已设置。其余部分应该被忽略 - 您不需要关心它们并显示错误。
答案 2 :(得分:0)
$allowedKeys = array('page');
$_GET = array_intersect_key($_GET, array_flip($allowedKeys));
您不必担心不需要的参数和值,因为它们不会通过$_GET
方法接受。使用上面的代码,唯一允许的$_GET
参数是“page”
答案 3 :(得分:0)
我可能会这样做:
<?php
if ($_GET)
{
foreach($_GET as $key=>$value)
{
if($key!='page')
{
$error=true;
}
}
}
?>