2013-06-06 34 views
10

Mở máy chủ quảng cáo của chúng tôi, chúng tôi sử dụng các tập lệnh PHP đơn giản sau đây để chuyển hướng đến trang đích của quảng cáo:Redirect thất bại một cách ngẫu nhiên trong IE 8 trở lên

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

Các kịch bản có tham số lp của nó và chuyển hướng đến URL . Mục đích là để chúng tôi có thể quét nhật ký truy cập của chúng tôi để theo dõi tỷ lệ nhấp (URL cũng bao gồm thông số id, mà tập lệnh bỏ qua).

Chúng tôi có một khách hàng (mà tôi biết cho đến nay), nơi điều này không hoạt động nhất quán, nhưng chỉ trong IE 8 trở lên. URL với vấn đề này là:

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

này nên chuyển hướng đến http://travelinsingles.com/home.htm, nhưng đôi khi nó đi vào http://webutil.bridgebase.com/home.htm (mà không tồn tại). Điều này dường như luôn xảy ra khi nhấp vào quảng cáo đầu tiên; đôi khi các nhấp chuột tiếp theo thực hiện theo chuyển hướng chính xác, đôi khi chúng tiếp tục chuyển đến URL không hợp lệ.

tôi thực hiện một gói chụp trên máy chủ web của chúng tôi, có vẻ như chúng ta đang gửi các tiêu đề chính xác:

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 

tôi bắt cả trên một thất bại và chuyển hướng thành công, và các tiêu đề là giống hệt nhau ngoại trừ ngày .

Tôi đang sử dụng máy Mac, vì vậy tôi sử dụng BrowserStack để kiểm tra IE, điều này giới hạn khả năng gỡ lỗi của tôi ở cuối ứng dụng khách. Có ai biết những gì có thể gây ra điều này, và nếu có một cái gì đó chúng ta có thể làm để làm việc xung quanh nó?

tôi sao chép các vấn đề với màn hình BrowserStack của tính năng:

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

+0

là url của bất kỳ cơ hội nào được gửi trong email? –

+0

Điều này có thể không liên quan gì đến vấn đề của bạn, nhưng tôi tò mò - Chế độ hiển thị nào của bạn là IE8 đang chạy? Quirks hoặc chế độ tiêu chuẩn? Tôi đã chạy vào một số công cụ kỳ lạ trong chế độ quirks trên IE8. – Revent

+0

@Dagon Không, đó là href của một neo có HTML bên trong là hình ảnh quảng cáo. Nhưng tôi đã sao chép vấn đề tại BrowserStack chỉ đơn giản bằng cách nhập URL vào trình duyệt ở đó. – Barmar

Trả lời

0

Điều gì xảy ra nếu bạn sử dụng rawurldecode($lp)? Tôi đã thử nghiệm trong Windows 7 trong IE7-10 và nó hoạt động tốt cho tôi (cả hai cách). Lạ thật!

Kiểm tra URL bạn đang được chuyển hướng đến trong IE, thanh địa chỉ nói gì?

0

Để ngăn sự cố với chuyển hướng tiêu đề, tôi thường sử dụng ob_start(); và ob_flush();

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


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

Thêm exit hoặc die(); vào cuối PHP của bạn có tạo sự khác biệt không?

Đôi khi HTTP khách hàng không thích nó khi một tiêu đề chuyển hướng được gửi trong khi nội dung vẫn còn tồn tại trong cơ thể (ngay cả khi nó là nội dung rỗng: không gian, lợi nhuận dòng, vv)

-1

Có lẽ bạn có đầu ra đệm trên máy chủ. Đầu ra đệm có thể nhận được tiêu đề ra vì bộ đệm (như bạn đã biết, các tiêu đề cần được gửi đầu tiên).

Hy vọng nó có thể là vấn đề

+0

Không, không có bộ đệm đầu ra. – Barmar