2

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

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

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

<?php 
print_r($_SERVER);
?>

当脚本托管在 XAMPP 上时,仅缺少这个标头。我怀疑 XAMPP 有一些奇怪的默认配置,可以去除某些标头,也许是一种安全功能,但我找不到任何相关信息。

根据 Nacerridine 的建议,我使用 Tamper Data for Firefox 来重现该问题,我发现只有包含下划线的标题被删除。

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

4

2 回答 2

5

我没有找到从数组中删除标头的确切原因$_SERVER,但是您仍然可以使用访问相同的信息apache_request_headers

$requestHeaders = apache_request_headers();
if ($requestHeaders){
    echo $requestHeaders['EVE_TRUSTED'];
}
于 2012-09-12T14:38:05.130 回答
0

我有同样的问题,我正在使用 cUrl 传递自定义标头变量,但是当我打印 $_SERVER 变量时,我看不到自定义标头变量..

但是当我打印

apache_request_headers()
自定义变量可用。

如果您已重新配置服务器以完成此操作,请告诉我。我正在使用 xampp 1.8.0

于 2014-06-25T04:55:10.200 回答