我正在尝试运行一个 PHP 应用程序,该应用程序依赖于通过 HTTP header 提供附加信息的特定浏览器。具体来说,它是 EVE Online 游戏内浏览器,但我的问题在于 XAMPP(特别是 XAMPP USB Lite 1.8.0)处理这些 header 的方式。
我观察到,当我在 Windows 上使用 XAMPP 尝试时,我需要的特定 header (HTTP_EVE_TRUSTED
) 在 $_SERVER
中不可用,但如果我在 Debian 上使用 Apache 安装。
我使用了一个简单的脚本来输出标题:
<?php
print_r($_SERVER);
?>
当脚本托管在 XAMPP 上时,仅缺少这一个 header 。我怀疑 XAMPP 有一些奇怪的默认配置,会删除某些 header ,这可能是一个安全功能,但我找不到任何相关信息。
根据 Nacerridine 的建议,我使用 Firefox 的 Tamper Data 重现了该问题,我发现只有包含下划线的 header 被删除。
什么可能导致此 header 在 XAMPP 上不可用但在其他服务器上不可用?我该如何解决这个问题?
最佳答案
我没有找到从 $_SERVER
数组中删除 header 的确切原因,但您仍然可以使用 apache_request_headers
访问相同的信息。
$requestHeaders = apache_request_headers();
if ($requestHeaders){
echo $requestHeaders['EVE_TRUSTED'];
}
关于php - XAMPP 正在删除带有下划线的 HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389423/