我传递一个数据库生成的id值链接到另一个页面。在我拨打$_GET
的接收页面中,我想防止人们在网址(例如www.mysite.com?id=43)中的?
之后插入虚假值。如何检查查询字符串中的ID是否有效?
我想检查传入的值并确保它是数据库中的有效标识符,或者有没有办法检查NULL或空值?这是我已经试过:
来源页面:
echo "<a href=\"get-post-pg2.php?id=" .urlencode($row['id']) ."\">Second Page</a>";
目标页面:
$id = $_GET['id'];
if(isset($_GET)) {
echo $id;
} else
echo 'foo';
}
isset()是检查值的好方法! – powtac 2012-03-08 20:10:53
要确保只有整数值,可以使用'echo(int)$ id;' – powtac 2012-03-08 20:11:23
'empty()'检查isset,null和空字符串。但是,如果必须保护该值,则应该使用'$ _SESSION'来持久保存,而不是'$ _GET'将其传递到您自己站点上的另一个页面。 – 2012-03-08 20:11:56