我使用 php GET 检查 URL 中的 ID,然后从与该 ID 匹配的数据库中检索 tekst。这是执行此操作的代码片段:
function getLyric() {
$id = (int)$_GET['id'];
$query = mysql_query("SELECT * FROM lyrics WHERE id = ".$id."") or die(mysql_error());
if ($row = mysql_fetch_assoc($query)) { ?>
<h1><?= $row['title']; ?> lyrics</h1>
<h2><?= $row['author']; ?></h2>
<pre><?= $row['lyrics']; ?></pre>
<?php }
else { header("HTTP/1.1 404 Not Found"); header("Status 404 Not Found"); }
}
这就是我调用此函数的页面的外观:
<?php include 'includes/header.php' ?>
<?php getLyric(); ?>
<?php include 'includes/footer.php' ?>
不幸的是,函数中的 404 部分不起作用。我收到以下警告。Warning: Cannot modify header information - headers already sent by [redacted] functions.php on line 61
. 第61行是404部分;“其他{标题}〜”。
我从 Stackoverflow 了解到这是因为该<html><head>
部分已经在页面上输出,所以我不能再更改它了。这是对的?
以前当我没有 else~ 部分时,我只是得到一个空白页。在这种情况下如何正确发送 404?如果我不能,最接近的选择是什么?