PHP if语句与isset不起作用

时间:2011-02-26 01:04:13

标签: php http-status-code-404

我认为这是简单的代码,但这并不按预期工作:

$id = $_GET['id'];
if (!isset($id)){
    header("HTTP/1.1 404 not found");
    include("404.php");
}
else {
    include('includes/functions.php'); 
}

所以我从URL获取了get参数但我没有收到404错误?

有什么想法吗?

3 个答案:

答案 0 :(得分:11)

您必须直接在$_GET['id']进行测试:

if(!isset($_GET['id']) { ... }

即使未设置$_GET['id'],由于您尝试将其分配给$id$id开始存在,因此测试返回true,因此您没有404错误。

答案 1 :(得分:1)

您正在检查是否设置了$ id。它是:

$id = $_GET['id'];

所以你必须检查是否设置了get变量:

isset($_GET['id'])

答案 2 :(得分:0)

你在第一行创建了$ id变量。你应该检查一下$_GET['id']。您也可以将此变量检查为空。