检查查询字符串(PHP)

检查查询字符串(PHP),php,query-string,Php,Query String,我使用一个查询字符串,例如test.php?var=1 我如何检查用户是否在这之后键入任何内容,如另一个字符串 如果在我的var查询字符串之后有任何其他字符串(查询字符串),我会尝试重定向到index.php 可以检查一下吗 例如: test.php?var=12134 (This is a good link..) test.php?a=23&var=123 (this is a bad link, redirect to index..) test.php?var=123132&a

我使用一个查询字符串,例如
test.php?var=1

我如何检查用户是否在这之后键入任何内容,如另一个字符串

如果在我的
var
查询字符串之后有任何其他字符串(查询字符串),我会尝试重定向到index.php

可以检查一下吗

例如:

test.php?var=12134 (This is a good link..) test.php?a=23&var=123 (this is a bad link, redirect to index..) test.php?var=123132&a=23 (this is a bad link, redirect to index..) test.php?var=12134(这是一个很好的链接) test.php?a=23&var=123(这是一个错误的链接,重定向到索引..) test.php?var=123132&a=23(这是一个错误的链接,重定向到索引..)
查看
$\u服务器['QUERY\u STRING']

我不确定我是否完全理解您想要什么,但是如果您对参数的定位不感兴趣,这应该可以:

if ( isset($_GET['var']) && count($_GET) > 1 ) {
    //do something if var and another parameter is given
}
test.php?a=23?var=123(这是一个错误的链接,重定向到索引..)

在这种情况下,只发送了一个名为“
a
”的变量,该变量包含值“
a?var=123
”,因此对您来说应该不会有问题

test.php?var=123132&a=23(这是一个错误的链接,重定向到索引..)

在这种情况下,您将发送两个变量,(“
a
”和“
var
”)


通常,您可以检查
$\u-GET
数组,查看发送了多少变量,并相应地执行操作,通过使用
计数($\u-GET)

类似于Tom Haigh的答案,您还可以得到预期参数和实际得到参数的差异:

$argKeys = array_keys($_GET);
$additionalArgKeys = array_diff($argKeys, array('var'));
var_dump($additionalArgKeys);

我认为您正在尝试删除不需要的参数。这通常是出于安全原因


但是,如果您预先初始化您使用的每个变量,并且只使用带有$\u GET['var']、$\u POST['var']或$\u REQUEST['var']的变量,就不会有问题。

我只有一个查询参数,所以这个解决方案对我很好。。非常感谢。我编辑了我的问题,但您的解决方案与Tom相同。非常感谢。