if(isset($_GET['w'])&&$_GET['w']>=0&&$_GET['w']<=65)
当$_GET['w']
的值为(例如)ccc
时,条件变为true,而它应该只接受来自0
的数字,包括65
答案 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”格式化为整数值/变量。