PROBLÈMES COMMUNS :
(copié de : source )
\====================
1) il ne devrait pas y avoir de sortie (c'est-à-dire que echo..
ou codes HTML) avant le header(.......);
commandement.
2) supprimer tout espace blanc (ou nouvelle ligne ) avant <?php
et après ?>
tags.
3) RÈGLE D'OR ! - vérifier si ce fichier php (et aussi, si vous include
d'autres fichiers) ont UTF8 sans BOM (et pas seulement UTF-8 ). C'est un problème dans de nombreux cas (parce que UTF8 le fichier encodé a un caractère spécial au début du fichier php, que votre éditeur de texte ne montre pas) !!!!!!!!!!!
4) Après header(...);
vous devez utiliser exit;
5) utilisez toujours la référence 301 ou 302 :
header("location: http://example.com", true, 301 ); exit;
6) Activez le rapport d'erreur, et trouvez l'erreur. Votre erreur peut être causée par une fonction qui ne fonctionne pas. Lorsque vous activez le signalement des erreurs, vous devez toujours commencer par corriger l'erreur la plus grave. Par exemple, cela pourrait être "Warning : date_default_timezone_get() : It is not safe to rely on the system's timezone settings". - Puis, plus bas, vous pouvez voir l'erreur "headers not sent". Après avoir corrigé l'erreur la plus haute (1ère), rechargez votre page. Si vous avez toujours des erreurs, corrigez à nouveau l'erreur la plus élevée.
7) Si rien de ce qui précède n'aide, utilisez la redirection JAVSCRIPT (cependant, méthode fortement déconseillée), qui peut être la dernière chance dans les cas particuliers... :
echo "<script type='text/javascript'>window.top.location='http://website.com/';</script>"; exit;
0 votes
Lire : stackoverflow.com/questions/1912029/
0 votes
Assurez-vous qu'aucun texte n'est édité (
ob_start
yob_end_clean()
peut s'avérer utile ici). Vous pourriez alors définir un cookie ou une session égale àob_get_contents()
et ensuite utiliserob_end_clean()
pour vider le tampon.0 votes
Utilisez le
safeRedirect
dans ma bibliothèque PHP : github.com/heinkasner/PHP-Library/blob/master/extra.php5 votes
\
~~Votre fichier ENCODING ne doit pas êtreUTF-8
peroUTF-8 (Without BOM)
~~~