为什么$ _SERVER ['HTTP_HOST']有时会返回大写?

时间:2011-12-05 12:26:27

标签: php

我使用$_SERVER['HTTP_HOST']检查我在正确域上运行的脚本,并在非法域上运行时发送电子邮件。问题是,有时我收到错误的警报,脚本在不正确的域上运行。这是一个虚假警报,$_SERVER['HTTP_HOST']为大写。

首先,为什么会这样? 第二,检查$_SERVER['HTTP_HOST']是否安全,或者有更好的原因吗?

注意:我没有在代码中将值转换为小写。

1 个答案:

答案 0 :(得分:1)

$ _ SERVER ['HTTP_HOST']是访问脚本的主机名。所以,如果有人去http://WWW.EXAMPLE.COM/,它将是大写的。

检查是安全的,首先使用strtolower()将其转换为小写。

编辑:我说检查是安全的,但有一点需要注意:使用HTTP / 1.0的用户代理不会提供Host:标头,因此将取消设置$ _SERVER ['HTTP_HOST']。这种情况不太可能发生,但如果你想要防范它,请确保你为这种可能性编码。