Jusqu'à récemment, mon LAMP fonctionnait comme je l'avais prévu et en utilisant l'en-tête de PHP() pour rediriger se comportait selon la documentation. De nulle part, cela a changé. Le problème peut être vu ici:L'en-tête PHP() est envoyé après ouput
<html>
<head>
<title> BLAH </title>
</head>
<body>
<p> TEXT </p>
<?php
echo "BLAH BLAH BLAH";
sleep(10);
header("Location: http://example.com");
?>
</body>
</html>
Pour autant que je sache, la redirection ne devrait pas se produire - mais il le fait. J'ai essayé de faire écho, en ajoutant du HTML, en attendant d'éviter les conditions de course possibles, mais en vain. Quand j'accède à cette page, aucune sortie n'est montrée, et après 10 secondes je suis redirigé.
Je n'ai pas eu beaucoup de chance de faire des recherches sur le Web car la plupart des gens ont exactement le problème inverse, et je n'ai rien trouvé d'utile dans les journaux du serveur. Je n'ai fait aucun changement de configuration ou mise à jour de paquet. Les gens que j'ai demandé étaient également perplexes. Je cours PHP 5 et Apache 2 sur une machine virtuelle CentOS.
P.S .: Ma première question ici, mais la lecture de ce site m'a aidé plusieurs fois et je l'adore :).
ressemble à la mise en mémoire tampon de sortie est activée. check your php.ini –
Oui, ce que Raoul a dit –
Essayez un 'flush()' au lieu de 'sleep (10)'. Notez qu'Internet Explorer démarre le rendu après avoir reçu 1024 octets. – bouke