W3C 验证器:“元素头缺少 child 元素标题的必需实例”

W3C validator: “Element head is missing a required instance of child element title”

对于 http://www.filmiclub.com/,我在 W3C 验证器中收到此错误:

Element head is missing a required instance of child element title

但是当我复制 HTML 并使用 "Validate by direct input" 进行验证时,HTML 是 100% 无错误并且没有验证错误。

您知道为什么 PHP 生成 HTML 并出现此错误吗?

选择 "Show source" 选项并单击 Revalidate,您将看到原因。您的 PHP 脚本在收到来自验证器的请求时崩溃,因此 PHP 会发出自己的错误消息响应而不是您的网站。

<h4>A PHP Error was encountered</h4>
<p>Severity: Notice</p>
<p>Message: Undefined index: HTTP_ACCEPT</p>
<p>Filename: helpers/common_helper.php</p>
<p>Line Number: 7328</p>

显然 W3C 的验证器发送了一个 HTTP 请求,该请求 没有 具有 Accept: header,但是您的 PHP 代码需要 HTTP_ACCEPT header 存在但由于不存在而失败。

更改您的 PHP 代码以检测是否存在 Accept header,如下所示:

if( isset( $_SERVER['HTTP_ACCEPT'] ) ) {
    // code here
}