我已经从 HTML 编码转向 PHP 编码,因此当我想为我的新闻页面创建链接时,我使用 HREF 将行的 id 作为链接,并使该片段的标题成为可查看/可点击的链接:
echo "<a href=news.php?id=".$row{'id'};
echo ">";
echo ucwords(strtolower($row{'newstitle'}));
echo "</a>";
因此,当有人单击标题时,它会重定向到文章,并且地址栏变为(显然这是一个示例): http://site.com/news.php?id=1
如何验证 后的信息?是 id=int (它始终是一个数字)而不是某些可能损坏网站的用户代码或其他输入?我已经研究了清理/验证代码的方法,但我发现的所有示例都与将信息输入到随后在地址中使用的表单有关,而不是简单地确保地址有效,因此转向此处寻求帮助。 谢谢
最佳答案
您应该使用filter module :
$id = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if ($id === false) {
// not an integer
}
或者您可以使用ctype_digit()
检查变量是否仅由十进制数字组成:
if (ctype_digit($_GET['id'])) {
// it's an integer
} else {
// not an integer
}
或更短:
ctype_digit($_GET['id']) or die("oops that's not an integer!");
但是 die
或 exit
会使您的代码难以测试。
is_numeric
也可以,但对于数字的任何字符串表示形式都会返回 true,而不仅仅是整数。
关于php - 确保信息之后?是一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220899/