2010-03-01 7 views
0

Je n'arrive pas à comprendre ce qui pourrait causer cette erreur. Mon journal Apache n'enregistre pas les erreurs dans le journal d'accès ou le journal des erreurs concernant la page, mais en quelque sorte chaque fois que je décommente la ligne header(), je reçois une erreur interne 500 Server. Il ne peut pas provenir de l'erreur fatale de PHP lorsque le contenu est sorti avant que header() ne soit appelé, cela ne causerait pas un 500?Pourquoi header() provoque une erreur interne du serveur?

header("Location: /offices/page-".ceil($cache->size()/15)); 

J'ai testé $cache->size() et il est de retour 22, il devrait donc ajouter un 2 à la fin de la chaîne et rediriger. J'ai eu ob_start() appelé avant la header() mais j'essayé d'appeler ob_end_clean() juste avant et il n'a toujours rien ...

J'ai même essayé de mettre header("Location: /offices"); au début du fichier et il me donne encore un 500.

Répondre

2

Le script continue à exécuter après l'appel en-tête(). Vous devez mettre exit; immédiatement après. Cela ne devrait pas causer une erreur de 500, cependant.

Éditer: Évidemment cela a fonctionné - ce qui signifie que votre problème est probablement dans un code lié plus bas sur la page?

+1

L'ajout de 'exit' a corrigé le problème ... – animuson

+1

Si la décompression de l'en-tête() était le seul autre changement et cela l'a corrigé * bizarre *. – jasonbar

2

Essayez d'utiliser une URL complète formé:

header("Location: http://{$_SERVER['HTTP_HOST']}/offices/page-".ceil($cache->size()/15)); 
+1

J'ai essayé de mettre en header ("Location: http://www.example.com"); 'still 500 error. – animuson

+0

@animuson Ok, c'est bizarre. :) – deceze

+0

Qui que ce soit qui a dit «sortie» immédiatement après, semble avoir travaillé. Je mets 'exit' juste après l'appel' header' et il redirige juste bien maintenant ... – animuson

0

J'ai eu la même chose. Après avoir frappé à plusieurs reprises la tête sur le moniteur, ce n'est pas l'en-tête ("Location: myPage.php"); ligne qui est cassée - c'est myPage.php qui est cassé! Essayez de rediriger vers une autre page. J'espère avoir sauvé quelqu'un d'autre

Questions connexes