if(isset($ _ GET ['w'])&& $ _ GET ['w']> = 0&& $ _ GET ['w']< = 65)不能正常工作

时间:2012-02-03 02:10:14

标签: php

   if(isset($_GET['w'])&&$_GET['w']>=0&&$_GET['w']<=65)

$_GET['w']的值为(例如)ccc时,条件变为true,而它应该只接受来自0的数字,包括65

3 个答案:

答案 0 :(得分:2)

“ccc”== 0是真的。

在以这种方式比较$ _GET [...]参数之前,您还应检查它是否为数字。

isnumeric()如果我是对的。

您可以使用其他测试来检查它是否为十进制数。例如,您可以运行preg_match('/^[0-9]+$/', $_GET['w']) == 1

答案 1 :(得分:0)

如果将字符串与数字进行比较,PHP会将字符串视为等于零,因此它将等于零且小于65.您可能还想使用is_integer()来确保它是一个整数

答案 2 :(得分:-1)

$ _ GET作为文本“提交”。如果“text”不为空,则为== 1.因此您的条件匹配。为避免这种情况,请首先确保将“w”格式化为整数值/变量。