未定义的索引HTTP_HOST,即使它已被选中

2022-08-30 16:37:15

代码如下:

if (isset($_SERVER['HTTP_HOST']) === TRUE) {
  $host = $_SERVER['HTTP_HOST'];
}

如何在 if 语句内的行上获得“未定义的索引HTTP_HOST”?我的意思是,在使用索引设置之前对其进行检查。

为什么有时不能设置HTTP_HOST?


答案 1

您是否在使用 PHP-CLI?

HTTP_HOST仅适用于浏览器。


答案 2

一个糟糕的实现浏览器可以省略发送 que 主机标头信息,试试这个例子:

telnet myphpserver.com 80
> GET / <enter><enter>

在这种情况下,$_SERVER['HTTP_HOST']没有分配值,在这种情况下,您可以使用$_SERVER['SERVER_NAME'],但前提是$_SERVER['HTTP_HOST']为空,因为no是相同的。


推荐