2013-06-06 7 views
10

在我們的廣告服務器,我們使用以下簡單的PHP腳本重定向到廣告的着陸頁:重定向在IE 8中隨機失效及以上

<?php 
$lp=array_key_exists('lp',$_REQUEST)?trim($_REQUEST['lp']):""; 
$location = sprintf('Location: %s', $lp) ; 
header($location) ; 
?> 

的腳本採用其lp參數和重定向到URL 。目的是讓我們可以掃描我們的訪問日誌以跟蹤點擊率(URL還包含腳本忽略的id參數)。

我們有一個客戶(我知道迄今爲止),這不是一致的工作,但只有在IE 8和以上。有問題的網址是:

http://webutil.bridgebase.com/v2/ad_lp.php?id=340&lp=http%3A%2F%2Ftravelinsingles.com%2Fhome.htm

這應該重定向到http://travelinsingles.com/home.htm,但有時它去http://webutil.bridgebase.com/home.htm(不存在)。它總是在廣告的第一次點擊時發生;有時後續的點擊會正確跟蹤重定向,有時會繼續轉到錯誤的網址。

我執行我們的網絡服務器上的數據包捕獲,它看起來像我們發送正確的標題:

HTTP/1.1 302 Moved Temporarily 
Server: nginx/1.2.1 
Date: Thu, 06 Jun 2013 01:39:12 GMT 
Content-Type: text/html 
Transfer-Encoding: chunked 
Connection: close 
X-Powered-By: PHP/5.4.15-1 
Location: http://travelinsingles.com/home.htm 

我拍攝無論在一個失敗和成功的重定向,並且頭部是除了日期相同。

我使用的是Mac,所以我使用BrowserStack來測試IE,這限制了我在客戶端的調試能力。有誰知道可能會導致這種情況,如果有什麼我們可以做的解決它?

我轉載與BrowserStack的截屏問題的特點:

http://www.browserstack.com/screenshots/3659c3b992a1738594d2fd370caef2852fecb3fa

+0

是通過電子郵件發送的任何機會的網址? – 2013-06-06 02:51:35

+0

這可能與您的問題沒有任何關係,但我很好奇 - 您的IE8運行在什麼渲染模式下?怪癖或標準模式?我在IE8上以怪癖模式遇到了一些奇怪的東西。 – Revent

+0

@Dagon不,它是內部HTML是廣告圖片的錨點的href。但是我只是通過在瀏覽器中輸入URL來重現問題。 – Barmar

回答

0

會發生什麼事,如果你使用rawurldecode($lp)?我已經在Windows 7中測試了IE7-10,並且對我來說工作正常(兩種方式)。奇怪!

檢查您在IE中重定向到的URL,地址欄說的是什麼?

0

爲了防止頭重定向問題,我通常使用ob_start();和ob_flush();

<?php 
ob_start(); //at the top of the page// 


header($location) ; 
ob_flush(); 
?> 
1

是否加入exitdie();到PHP結束有所作爲?

-1

也許你有輸出緩衝:

有時HTTP客戶端不同時內容在體內(空格,換行符等即使它是空的內容)仍然存在喜歡當發送重定向頭服務器。輸出緩衝可以由於緩衝區而將標題取出(正如你所知,標題應該先發送)。

希望這可能是問題

+0

不,沒有輸出緩衝。 – Barmar