2010-10-11 3 views
0

Étant donné le code suivant (et seulement ce code):tête (Refresh fait la page blanche ... mais seulement sur un réseau

<?php 
if (headers_sent()) { 
    die('cannot send location header (anymore)'); 
} 
else { 
    header("Refresh: 0; url=http://www.google.com"); //This does not work 
    //header("Location: http://www.google.com"); //This does work 
    die(); 
} 
?> 

Quelqu'un at-il des pensées/suggestions pourquoi cela ne fonctionnera pas sur un réseau particulier?

les codes ci-dessus dirige vers Google sur 3 des 4 réseaux que j'ai testé (maison, mon travail, un réseau domestique d'un ami).

Cependant, lorsque je charge cette page sur le réseau de mon client, il obtient seulement une page blanche

Le code commenté ci-dessus est ma solution de contournement ... mais j'aimerais vraiment savoir pourquoi Refresh ne fonctionnerait pas sur ce réseau particulier.

+0

Puisque vous ne produisez aucun contenu réel au-delà des en-têtes, les deux ne sont-ils pas équivalents? La seconde est une technique plus standard que la première. – Matchu

+0

Quels sont les serveurs en cours d'exécution? Apache? IIS? – lonesomeday

+0

Le serveur sur lequel le code est hébergé est Apache. Je ne connais pas le réseau de mon client. – ray

Répondre

2

L'actualisation n'est pas un official HTTP header field. Bien HTML’s META element avec l'attribut http-equiv pourrait impliquer que tout ce qui fonctionne là devrait également fonctionner avec le vrai HTTP, Refresh n'a jamais été un champ d'en-tête HTTP réel (et http-equiv ne signifie pas l'équivalent HTTP). Utilisez simplement la norme Location à la place.

1

Cela dépend évidemment du navigateur - votre client l'a-t-il essayé dans plusieurs navigateurs? L'en-tête Refresh a été abandonné (pour de nombreuses raisons) par w3c en faveur de Location; le support pour cela dépend entièrement du navigateur.

+0

Étant donné que j'ai utilisé un ordinateur portable * MY * avec les mêmes deux navigateurs dans trois des quatre emplacements répertoriés ci-dessus (y compris mon client) et que j'ai rencontré ce problème chez mon client, il ne dépend PAS du navigateur. Réessayer. – ray

Questions connexes