2013-06-06 15 views
10

Auf unseren Adserver, verwenden wir den folgenden einfachen PHP-Skript auf die Zielseite der Anzeige zu umleiten:Redirect Fehler zufällig in IE 8 und älteren

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

Das Skript nimmt seine lp Parameter und leitet zu dieser URL . Der Zweck ist, dass wir unser Zugriffsprotokoll scannen können, um die Klickrate zu verfolgen (die URL enthält auch einen ID-Parameter, den das Skript ignoriert).

Wir haben einen Kunden (den ich bisher kenne), wo dies nicht durchgängig funktioniert, sondern nur in IE 8 und älter. Die URL mit dem Problem ist:

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

Dies zu http://travelinsingles.com/home.htm umleiten soll, aber manchmal geht es zu http://webutil.bridgebase.com/home.htm (was nicht existiert). Es scheint immer beim ersten Klick auf die Anzeige zu passieren; manchmal folgen nachfolgende Klicks der Umleitung korrekt, manchmal gehen sie weiter zu der schlechten URL.

ich eine Paketerfassung auf dem Webserver ausgeführt wird, sieht es aus wie wir den richtigen Header sind zu senden:

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 

ich gefangen beide auf einem Versagen und erfolgreiche Umleitung, und die Header waren identisch mit Ausnahme des Datums .

Ich benutze einen Mac, also verwende ich BrowserStack, um IE zu testen, was meine Debugging-Fähigkeit beim Client beschränkt. Weiß jemand, was das verursachen könnte, und wenn wir etwas tun können, um es zu umgehen?

reproduziert ich das Problem mit BrowserStack die Screenshots verfügen:

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

+0

wird die URL zufällig in einer E-Mail gesendet? –

+0

Das hat vielleicht nichts mit Ihrem Problem zu tun, aber ich bin neugierig - In welchem ​​Rendering-Modus läuft Ihr IE8? Quirks oder Standardmodus? Ich bin im IE8 auf seltsame Sachen im Quirks-Modus gestoßen. – Revent

+0

@Dagon Nein, es ist die href eines Ankers, dessen inneres HTML das Anzeigebild ist. Aber ich habe das Problem bei BrowserStack einfach reproduziert, indem ich die URL dort in den Browser eingegeben habe. – Barmar

Antwort

0

Was passiert, wenn Sie rawurldecode($lp) verwenden? Ich habe in Windows 7 in IE7-10 getestet und es funktioniert gut für mich (beide Wege). Seltsam!

Überprüfen Sie die URL, zu der Sie in IE weitergeleitet werden, wie lautet die Adressleiste?

0

Um Probleme mit Header-Redirects zu vermeiden, verwende ich normalerweise ob_start(); und ob_flush();

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


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

Wirkt sich das Hinzufügen exit oder die(); bis zum Ende Ihrer PHP einen Unterschied machen?

Manchmal HTTP-Clients mag es nicht, wenn ein Redirect-Header noch während Gehalt im Körper vorhanden gesendet wird (auch wenn es leer Inhalt ist: Leerzeichen, Zeilenzurückkehrt, etc.)

-1

Vielleicht auf Sie Ausgabepufferung haben der Server. Die Pufferung von Ausgaben kann den Header aufgrund des Puffers (wie Sie wissen, die Header sollten zuerst gesendet werden) ableiten.

Hoffe es könnte das Problem sein

+0

Nein, keine Pufferung der Ausgabe. – Barmar