php url参数检查

时间:2010-09-23 14:45:51

标签: php validation url

我正在创建一个依赖$ _GET正常运行的网站。 它的工作原理如下:http://www.example.com/show?q=14&i=48 qi是MySQL服务器上必须使用mysql_query()等获取的ID。参数总是整数。

如果有人输入没有任何参数的url,PHP和MySQL都会出错。 PHP用于未定义的变量,MySQL用于错误的语法。

到目前为止我尝试过的东西不起作用我总是得到“错误”;

if (is_int($_GET['q']) AND is_int($_GET['i']))
{
 echo "All good.";
}
else
{
 echo "Error.";
}

我在这里做错了什么。

谢谢, ATNO

3 个答案:

答案 0 :(得分:2)

您应该使用 is_numeric 而不是is_int is_int为数字字符串返回false

下行是is_numeric函数对"1.5"之类的数字也返回true。 如果您不想这样,可以查看函数here

答案 1 :(得分:2)

那是因为您正在检查变量的类型而不是其内容。通过$_GET来自查询字符串的任何内容都被视为字符串,因此您应该使用ctype_digit()来代替is_int(),并检查这些值是否与empty()一致。< / p>

答案 2 :(得分:0)

您应该尝试使用isset($ _ GET [q])

if(isset($_GET[q]) && isset($_GET[i])){

}