Php header pourquoi ça marche pas ?
Résolu
Edouard73
Messages postés
139
Date d'inscription
Statut
Membre
Dernière intervention
-
than24 Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
than24 Messages postés 63 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Pour quelle raison les header suivants ne fonctionnent pas ?
<?php
if($count == 1)
{ header("Location:https://actualite-premium.fr/");
}
else
{ header("Location:https://actualite-premium.fr/");
}
?>
Warning: Cannot modify header information - headers already sent by (output started at /var/www/data/woo/C/C/8/A/CC8AA43K/lhm/checkpoint.php:9) in /var/www/data/woo/C/C/8/A/CC8AA43K/lhm/checkpoint.php on line 35
Pour quelle raison les header suivants ne fonctionnent pas ?
<?php
if($count == 1)
{ header("Location:https://actualite-premium.fr/");
}
else
{ header("Location:https://actualite-premium.fr/");
}
?>
Warning: Cannot modify header information - headers already sent by (output started at /var/www/data/woo/C/C/8/A/CC8AA43K/lhm/checkpoint.php:9) in /var/www/data/woo/C/C/8/A/CC8AA43K/lhm/checkpoint.php on line 35
5 réponses
J'remonte le post pour ceux qui tomberaient eventuellement dessus vu qu'il tombe en premier resultat sur google pour ce probleme de header.
La reponse est tres simple. Tu peux pas utiliser la fonction header apres avoir afficher quelque chose. Or dans ton code, tu affiches du HTML avant d'appeler header.
Si vous voulez faire une redirection, vous devez l'effectuer AVANT d'afficher quoi que ce soit sur votre page. Pour l'exemple d'Edouard :
<?php header("Location: http://www.okpc.fr/croisesimperiaux/v3/index.php");die;?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>
Ca aurait ete ca la solution, meme si le code HTML apres la redirection sert a rien, et qu'en plus il aurait mieux fait de rediriger directement vers l'adresse au lieu d'utiliser un header.
Autre note importante en PHP :
Utiliser un die apres l'appel d'un header est souvent requis car l'appel d'un header n'arrete pas la lecture du script, donc si vous avez du code PHP apres, il sera tout de meme execute meme si vous pensiez que le script aurait du s'arreter.
En esperant que ca aidera quelqu'un.
La reponse est tres simple. Tu peux pas utiliser la fonction header apres avoir afficher quelque chose. Or dans ton code, tu affiches du HTML avant d'appeler header.
Si vous voulez faire une redirection, vous devez l'effectuer AVANT d'afficher quoi que ce soit sur votre page. Pour l'exemple d'Edouard :
<?php header("Location: http://www.okpc.fr/croisesimperiaux/v3/index.php");die;?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
</body>
</html>
Ca aurait ete ca la solution, meme si le code HTML apres la redirection sert a rien, et qu'en plus il aurait mieux fait de rediriger directement vers l'adresse au lieu d'utiliser un header.
Autre note importante en PHP :
Utiliser un die apres l'appel d'un header est souvent requis car l'appel d'un header n'arrete pas la lecture du script, donc si vous avez du code PHP apres, il sera tout de meme execute meme si vous pensiez que le script aurait du s'arreter.
En esperant que ca aidera quelqu'un.
Oui moi merci bien :)