2012-09-12 44 views
2

我试图让PHP应用程序运行,它依赖于通过HTTP标头提供附加信息的特定浏览器。具体来说,它是EVE Online游戏中的浏览器,但我的问题在于XAMPP(特别是XAMPP USB Lite 1.8.0)处理这些头文件的方式。XAMPP正在删除带有下划线的HTTP标头

我观察到当我在Windows上使用XAMPP进行尝试时,我需要的特定头文件(HTTP_EVE_TRUSTED)在$_SERVER中不可用,但如果我在Debian上使用Apache安装,它就在那里。

我用一个简单的脚本来输出标题:

<?php 
print_r($_SERVER); 
?> 

只有这一个头部丢失时,脚本在XAMPP托管。我怀疑XAMPP有一些奇怪的默认配置,可以去除某些头文件,也许是一个安全功能,但我找不到任何有关这方面的信息。

关于Nacerridine的建议,我使用了Tamper Data for Firefox来重现此问题,并且我发现只有包含下划线的标头才被删除。

什么可能导致此标头在XAMPP上不可用,但在其他服务器上不可用?我该如何解决这个问题?

+0

您是否尝试过使用其他工具发送此相同的头文件(如[Tamper Data](https://addons.mozilla.org/en-US/firefox/addon/tamper-data/ )在Firefox)?我试图重现这个问题(使用篡改数据),头文件仍然存在(XAMPP v1.7.7)。 – Nasreddine

+0

@Nacereddine我刚刚下载了Tamper Data并重现了这个问题,当我向XAMPP的请求中添加头部时,它并没有出现,当我在Debian上执行相同的请求时,头部出现在Debian上。 –

+0

您使用的是什么版本的XAMPP? – Nasreddine

回答

5

我没有找到原因正在从$_SERVER数组中删除页眉的确切原因,但你仍然可以访问使用apache_request_headers

$requestHeaders = apache_request_headers(); 
if ($requestHeaders){ 
    echo $requestHeaders['EVE_TRUSTED']; 
} 
0

我有同样的问题相同的信息,我传递自定义标题变量使用cUrl但当我打印$ _SERVER变量时,我看不到自定义标题变量。

但是当我打印

apache_request_headers()
自定义变量可用时。

让我知道你是否已经重新配置你的服务器来完成这件事。我正在使用xampp 1.8.0