我正在创建一个依赖$ _GET正常运行的网站。
它的工作原理如下:http://www.example.com/show?q=14&i=48 q
和i
是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
答案 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])){
}