Header pourquoi ça ne fonctionne pas ??? help !

Nouveau WRInaute
Bonjour,

j"utilise les header suivants :

if($count == 1)
{
header("Location: http://www.premiumwanadoo.com/ao1teamdo ... ration.php");
}
else
{
header("Location: http://www.premiumwanadoo.com/ao1teamdod/lhm/login.php");
}

Mais pourquoi il ne se redirige pas et me laisse le massage d'erreur suivant :

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 37
 
WRInaute passionné
hello,

bah tout est marqué :
Code:
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 37
 
Nouveau WRInaute
Bool a dit:
hello,

bah tout est marqué :
Code:
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 37

mdr super la réponse
 
WRInaute discret
Ben tu as tout simplement un espace avant ton <?php header ...?>
Ou un echo ... ou toute autre chose qui envoie des données au navigateur. Regarde du cotés de ob_start() qui peut solutionné ton problème (en mettant ob_start() au tout debut de ton script)
 
Nouveau WRInaute
petitchevalroux a dit:
Ben tu as tout simplement un espace avant ton <?php header ...?>
Ou un echo ... ou toute autre chose qui envoie des données au navigateur. Regarde du cotés de ob_start() qui peut solutionné ton problème (en mettant ob_start() au tout debut de ton script)

coucou

non, mais en réalité j'ai depuis regardé à droite et a gauche mais il semble que ce soit mon hébergeur qui bug. parce que j'ai test la page sur le serveur d'un poto et ça passe nikel.

Il ce peut que le php de ceux qui héberge mon site ne soit pas assez ressent

ps bool : arretes de troll tu passera moins pour un @#"{¤$]
 
WRInaute impliqué
Bah il ne passe pas pour un troll, Bool.
T'as un truc qui envoie des caractères à la ligne 37 du fichier checkpoint.php, c'est écrit dans ton message d'erreur.

Après tu ne sais peut-être pas comment fonctionnent les headers et tu n'as peut-être pas lu la doc de PHP, alors je t'en cite le passage qui te concerne :
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
http://fr.php.net/header
 
WRInaute accro
Edouard73 a dit:
petitchevalroux a dit:
Ben tu as tout simplement un espace avant ton <?php header ...?>
Ou un echo ... ou toute autre chose qui envoie des données au navigateur. Regarde du cotés de ob_start() qui peut solutionné ton problème (en mettant ob_start() au tout debut de ton script)

coucou

non, mais en réalité j'ai depuis regardé à droite et a gauche mais il semble que ce soit mon hébergeur qui bug. parce que j'ai test la page sur le serveur d'un poto et ça passe nikel.

Il ce peut que le php de ceux qui héberge mon site ne soit pas assez ressent

ps bool : arretes de troll tu passera moins pour un @#"{¤$]

Il se peut surtout que le serveur de ton pote soit configuré de manière à ne pas afficher les warning php (ce qui est une horreur lorsqu'on veut débugger).
 
Nouveau WRInaute
colonies a dit:
Bah il ne passe pas pour un troll, Bool.
T'as un truc qui envoie des caractères à la ligne 37 du fichier checkpoint.php, c'est écrit dans ton message d'erreur.

Après tu ne sais peut-être pas comment fonctionnent les headers et tu n'as peut-être pas lu la doc de PHP, alors je t'en cite le passage qui te concerne :
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
http://fr.php.net/header

enfin, j'ai eu gain de cause. ça vient bien de mon hébergeur qui ne proposent pas l'option. mais merci pour le petit cour ça n'est que la 10 eme fois que je le voie :)

enfin, j'ai trouvé une petite solution pour contourner le probleme

<?php
echo "<script language='Javascript'>document.location='http://www.okpc.fr/croisesimperiaux/v3/index.p­hp'</script>";
?>

ce qui remplace le header
 
WRInaute accro
Edouard73 a dit:
colonies a dit:
Bah il ne passe pas pour un troll, Bool.
T'as un truc qui envoie des caractères à la ligne 37 du fichier checkpoint.php, c'est écrit dans ton message d'erreur.

Après tu ne sais peut-être pas comment fonctionnent les headers et tu n'as peut-être pas lu la doc de PHP, alors je t'en cite le passage qui te concerne :
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
http://fr.php.net/header

enfin, j'ai eu gain de cause. ça vient bien de mon hébergeur qui ne proposent pas l'option. mais merci pour le petit cour ça n'est que la 10 eme fois que je le voie :)

enfin, j'ai trouvé une petite solution pour contourner le probleme

<?php
echo "<script language='Javascript'>document.location='http://www.okpc.fr/croisesimperiaux/v3/index.p­hp'</script>";
?>

ce qui remplace le header

Sauf que si tu faisais cette redirection à des fins de référencement, c'est raté.

Les moteurs ne suivent pas les redirections javascript.
 
WRInaute accro
stop à la désinformation. le message d'erreur est clair, tu affiche du code HTML avant de faire la redirection serveur, donc cela bloque. cela marche chez ton pote car son hébergeur est trop laxiste, il permet de faire n'importe quoi. remplacer la redirection serveur apr une redirection navigateur en js est une très mauvaise solution, en plus de pas être apprécié des moteurs, elle ne fonctionnera pas si les internautes n'ont pas le js d'activé. tu dois débugguer ton code pour voir pourquoi tu envoi du html avant d'exécuter ton header("location: "), seule manière de garder ton code propre et fonctionnel dans 100% des cas
 
Nouveau WRInaute
e-kiwi a dit:
stop à la désinformation. le message d'erreur est clair, tu affiche du code HTML avant de faire la redirection serveur, donc cela bloque. cela marche chez ton pote car son hébergeur est trop laxiste, il permet de faire n'importe quoi. remplacer la redirection serveur apr une redirection navigateur en js est une très mauvaise solution, en plus de pas être apprécié des moteurs, elle ne fonctionnera pas si les internautes n'ont pas le js d'activé. tu dois débugguer ton code pour voir pourquoi tu envoi du html avant d'exécuter ton header("location: "), seule manière de garder ton code propre et fonctionnel dans 100% des cas

sauf que j'ai fais le test suivant :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
<?php header("fonction: http://www.okpc.fr/croisesimperiaux/v3/index.p­hp") ?>
</body>
</html>

Et sur mon hébergeur ça ne passe pas. j'ai le même message d'erreur alors que sur le serv de mon ami ça passe tranqu'il alors qu'il n'y a pas de chose qui pourrait gener ce déclenchement
 
Nouveau WRInaute
Edouard73 a dit:
UsagiYojimbo a dit:
Edouard73 a dit:
colonies a dit:
Bah il ne passe pas pour un troll, Bool.
T'as un truc qui envoie des caractères à la ligne 37 du fichier checkpoint.php, c'est écrit dans ton message d'erreur.

Après tu ne sais peut-être pas comment fonctionnent les headers et tu n'as peut-être pas lu la doc de PHP, alors je t'en cite le passage qui te concerne :
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
http://fr.php.net/header

enfin, j'ai eu gain de cause. ça vient bien de mon hébergeur qui ne proposent pas l'option. mais merci pour le petit cour ça n'est que la 10 eme fois que je le voie :)

enfin, j'ai trouvé une petite solution pour contourner le probleme

<?php
echo "<script language='Javascript'>document.location='http://www.okpc.fr/croisesimperiaux/v3/index.p­hp'</script>";
?>

ce qui remplace le header

Sauf que si tu faisais cette redirection à des fins de référencement, c'est raté.

Les moteurs ne suivent pas les redirections javascript.

non non pas du tout c'est un exemple en faite.

parce que l'origine de mon probleme est la redirection d'une page suite à l'activation d'un login et mp en php/mysql. mais comme le header ne fonctionne pas pour faire cette redirection, j'ai utilisé du js pour faire cette redirection. qui marche parfaitement d'ailleur
 
WRInaute accro
>> alors qu'il n'y a pas de chose qui pourrait gener ce déclenchement

tu as mal compris ce qu'on te dis, ton code est faux, ton <?php header("fonction: http://www.okpc.fr/croisesimperiaux/v3/index.p­hp") ?> doit etre placé avant ton doctype, html, head, meta, ... c'est ce qu'on te dis depuis tout à l heure, tu ne peux pas faire de header() APRES tout code html
 
WRInaute accro
e-kiwi a dit:
>> alors qu'il n'y a pas de chose qui pourrait gener ce déclenchement

tu as mal compris ce qu'on te dis, ton code est faux, ton <?php header("fonction: http://www.okpc.fr/croisesimperiaux/v3/index.p­hp") ?> doit etre placé avant ton doctype, html, head, meta, ... c'est ce qu'on te dis depuis tout à l heure, tu ne peux pas faire de header() APRES tout code html

e-kiwi a raison.

Essaie plutôt ça :

Code:
<?php header("fonction: http://www.okpc.fr/croisesimperiaux/v3/index.p­hp") ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
</body>
</html>
 
Nouveau WRInaute
UsagiYojimbo a dit:
e-kiwi a dit:
>> alors qu'il n'y a pas de chose qui pourrait gener ce déclenchement

tu as mal compris ce qu'on te dis, ton code est faux, ton <?php header("fonction: http://www.okpc.fr/croisesimperiaux/v3/index.p­hp") ?> doit etre placé avant ton doctype, html, head, meta, ... c'est ce qu'on te dis depuis tout à l heure, tu ne peux pas faire de header() APRES tout code html

e-kiwi a raison.

Essaie plutôt ça :

Code:
<?php header("fonction: http://www.okpc.fr/croisesimperiaux/v3/index.p­hp") ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
</body>
</html>

ok je comprends mieu.

mais bon je n'ai plus de message d'erreur mais maintenant la redirection ne se fait pas et je me retrouve avec une page blanche :(
 
Discussions similaires
Haut