【发布时间】:2012-01-22 19:25:28
【问题描述】:
我有一个页面 (index.php),它从 URL 中获取 GET 变量并出于安全目的对其进行检查。这个GET 变量只能是一个整数。我正在使用以下代码来检查这一点,但在所有情况下,无论是否为整数,我都会得到 index.php 页面。标题永远不会出现。在此代码之后,页面的其余部分以 html 标记开头。
PHP:
<?php ob_start(); session_start();
$q=trim($_GET['q']);
if (!is_numeric($q)){
header("HTTP/1.0 404 Not Found");
}
?>
【问题讨论】:
-
我不知道你是否已经知道,但你应该在
header(..)之后添加一个exit();。否则脚本会继续打印页面内容。 -
阅读the documentation 会告诉你,
is_int()检查变量的类型,所以带有“123”的字符串到is_int()不会返回true,因为这是字符串.还有你为什么用http-status-code-404标记你的帖子? -
@Tadeck 标记已删除。谢谢你的文件。我现在正在使用 is_numeric,但它仍然无法正常工作
-
@amir75 你是对的。有效!如果我改用
die();可以吗?