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

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

Edouard73
Nouveau WRInaute
 
Messages: 34
Inscription: Lun Avr 28, 2008 13:06

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

Message le Ven Mai 02, 2008 21:43

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


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Ven Mai 02, 2008 21:54

hello,

bah tout est marqué :
Code: Tout sélectionner
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

Edouard73
Nouveau WRInaute
 
Messages: 34
Inscription: Lun Avr 28, 2008 13:06

Message le Ven Mai 02, 2008 22:18

Bool a écrit:hello,

bah tout est marqué :
Code: Tout sélectionner
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


Bool
WRInaute accro
WRInaute accro
 
Messages: 1290
Inscription: Jeu Fév 26, 2004 15:59

Message le Ven Mai 02, 2008 22:21

Oui, ça arrive souvent quand la réponse est dans la question.


petitchevalroux
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 104
Inscription: Mer Mai 31, 2006 11:13

Message le Ven Mai 02, 2008 22:31

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)

Edouard73
Nouveau WRInaute
 
Messages: 34
Inscription: Lun Avr 28, 2008 13:06

Message le Ven Mai 02, 2008 22:40

petitchevalroux a écrit: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 @#"{¤$]

colonies
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 182
Inscription: Dim Sep 10, 2006 21:54

Message le Sam Mai 03, 2008 0:30

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


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 5110
Inscription: Mer Nov 23, 2005 10:38

Message le Sam Mai 03, 2008 10:13

Edouard73 a écrit:
petitchevalroux a écrit: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).

Edouard73
Nouveau WRInaute
 
Messages: 34
Inscription: Lun Avr 28, 2008 13:06

Message le Lun Mai 05, 2008 9:16

colonies a écrit: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


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 5110
Inscription: Mer Nov 23, 2005 10:38

Message le Lun Mai 05, 2008 9:20

Edouard73 a écrit:
colonies a écrit: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.


e-kiwi
Modérateur
Modérateur
 
Messages: 13818
Inscription: Mar Déc 23, 2003 9:04

Message le Lun Mai 05, 2008 9:40

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

Edouard73
Nouveau WRInaute
 
Messages: 34
Inscription: Lun Avr 28, 2008 13:06

Message le Lun Mai 05, 2008 9:50

...
Dernière édition par Edouard73 le Lun Mai 05, 2008 9:56, édité 1 fois.

Edouard73
Nouveau WRInaute
 
Messages: 34
Inscription: Lun Avr 28, 2008 13:06

Message le Lun Mai 05, 2008 9:55

e-kiwi a écrit: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

Edouard73
Nouveau WRInaute
 
Messages: 34
Inscription: Lun Avr 28, 2008 13:06

Message le Lun Mai 05, 2008 9:56

Edouard73 a écrit:
UsagiYojimbo a écrit:
Edouard73 a écrit:
colonies a écrit: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


e-kiwi
Modérateur
Modérateur
 
Messages: 13818
Inscription: Mar Déc 23, 2003 9:04

Message le Lun Mai 05, 2008 10:09

>> 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

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

Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités