Php header pourquoi ça marche pas ?
Résolu/Fermé
Edouard73
than24
- Messages postés
- 139
- Date d'inscription
- mercredi 12 septembre 2007
- Statut
- Membre
- Dernière intervention
- 2 avril 2013
than24
- Messages postés
- 63
- Date d'inscription
- dimanche 27 septembre 2009
- Statut
- Membre
- Dernière intervention
- 30 septembre 2012
A voir également:
- Header location php ne fonctionne pas
- Header location php - Conseils pratiques - PHP
- Php header pourquoi ça marche pas ? ✓ - Forum - PHP
- Mon header(location:index.php) ne marche pas ! ✓ - Forum - PHP
- Probleme de redirection header location php ✓ - Forum - PHP
- Header location php target _blank ✓ - Forum - Webmaster
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.
Edouard73
3 mai 2008 à 12:49
- Messages postés
- 139
- Date d'inscription
- mercredi 12 septembre 2007
- Statut
- Membre
- Dernière intervention
- 2 avril 2013
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.
<?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.
Cela vient surement de l'espace qui manque après Location.
Voilà la bonne syntaxe :
<?php
header("Location: tapage.php");
?>
Voilà la bonne syntaxe :
<?php
header("Location: tapage.php");
?>
Estyaah
3 mai 2008 à 03:37
- Messages postés
- 255
- Date d'inscription
- mardi 20 novembre 2007
- Statut
- Membre
- Dernière intervention
- 8 avril 2009
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 !
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 !
Edouard73
3 mai 2008 à 11:21
- Messages postés
- 139
- Date d'inscription
- mercredi 12 septembre 2007
- Statut
- Membre
- Dernière intervention
- 2 avril 2013
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
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
Edouard73
3 mai 2008 à 11:22
- Messages postés
- 139
- Date d'inscription
- mercredi 12 septembre 2007
- Statut
- Membre
- Dernière intervention
- 2 avril 2013
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.
<?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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Estyaah
3 mai 2008 à 11:35
- Messages postés
- 255
- Date d'inscription
- mardi 20 novembre 2007
- Statut
- Membre
- Dernière intervention
- 8 avril 2009
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 ?
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 ?
Edouard73
3 mai 2008 à 12:29
- Messages postés
- 139
- Date d'inscription
- mercredi 12 septembre 2007
- Statut
- Membre
- Dernière intervention
- 2 avril 2013
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.
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.
Edouard73
3 mai 2008 à 12:34
- Messages postés
- 139
- Date d'inscription
- mercredi 12 septembre 2007
- Statut
- Membre
- Dernière intervention
- 2 avril 2013
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...
<!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...
Modifié par Damarus le 12/07/2011 à 18:00
Oui moi merci bien :)
17 sept. 2012 à 09:54