Php header pourquoi ça marche pas ?

Résolu/Fermé
Edouard73
Messages postés
139
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
2 avril 2013
- 2 mai 2008 à 21:50
than24
Messages postés
63
Date d'inscription
dimanche 27 septembre 2009
Statut
Membre
Dernière intervention
30 septembre 2012
- 17 sept. 2012 à 09:54
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

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.
3
En esperant que ca aidera quelqu'un.

Oui moi merci bien :)
0
than24
Messages postés
63
Date d'inscription
dimanche 27 septembre 2009
Statut
Membre
Dernière intervention
30 septembre 2012
8
17 sept. 2012 à 09:54
merci pour votre explication ça ma bps aider et ça marche!!!! merci encore
0
Edouard73
Messages postés
139
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
2 avril 2013
11
3 mai 2008 à 12:49
Bon bha j'ai trouvé une alternative en utilisant du JS :

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

je sais c'est pas bo mais ça donne le même résultat.
1
Cela vient surement de l'espace qui manque après Location.

Voilà la bonne syntaxe :
<?php
header("Location: tapage.php");
?>
1
Estyaah
Messages postés
255
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
8 avril 2009
34
3 mai 2008 à 03:37
Salut !

Le message est assez explicite : le header a déjà été envoyé. Vérifie que à la ligne 35, tu n'aies pas d'erreur. Regarde du côté des parenthèses ou un truc comme ça. Mais sinon, poste ta page...

Bon courage !
0
Edouard73
Messages postés
139
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
2 avril 2013
11
3 mai 2008 à 11:21
Coucou.

merci pour la réponse.

D'apres ce que j'ai vue ça viens d'un problème de version php sur le serv de mon hébergeur qui fait que le header ne fonctionne pas.

Parce que la même page sur le serveur d'un friend et ça passe super
0
Edouard73
Messages postés
139
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
2 avril 2013
11
3 mai 2008 à 11:22
voila le code

<?php

$host="localhost"; // Host name
$username="root"; // Mysql username
$password="non"; // Mysql password
$db_name="CC8AA43K1"; // Database name
$tbl_name="connection"; // Table name

// Connect to server and select databse.
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form1
$myusername = $_POST['myusername'];
$mypassword = $_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count == 1)
{
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:administration.php");
}
else
{
echo "Wrong Username or Password";
}
?>

c'est lui qui fait que j'ai ce message d'erreur : header("location:administration.php"); mais pas moyen de faire fonctionner la redirection.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Estyaah
Messages postés
255
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
8 avril 2009
34
3 mai 2008 à 11:35
Salut !

Es-ce que ce fichier est inséré dans un fichier HTML ? Ou est il appelé apprès un <head></head> ?

Si oui, met ton code PHP avant ton code HTML, Je me souviens avoir eu des problèmes de ce type, mais je ne me rappelle plus vraiment comment j'ai rélglé ça... Tente ça déjà.

Pour ton hébergeur, de qui s'agit-il ?
0
Edouard73
Messages postés
139
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
2 avril 2013
11
3 mai 2008 à 12:29
coucou.

alors le fichier est un .php

oui il est apres <head></head> sur cette page mais même en l'intégerant dedans ça ne fonctionne pas j'ai le même message d'erreur

l'hébergeur c'est wanadoo. mais j'ai test aussi chez ovh j'ai le même soucie. par contre, sur le serveur d'un friend chez okpc.fr je n'ai aucuns soucie.
0
Edouard73
Messages postés
139
Date d'inscription
mercredi 12 septembre 2007
Statut
Membre
Dernière intervention
2 avril 2013
11
3 mai 2008 à 12:34
j'ai test avec un autre code :

<!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>
<?php header("Location:http://www.okpc.fr/croisesimperiaux/v3/index.php")?>
</body>
</html>

et ça ne fonctionne pas sur wanadoo ainsi que ovh mais trés bien sur okpc ??? ou est le probleme...
0