2012-09-12 43 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