Header(location: .....) dsl toujours pas compris - PHP - Programmation
Marsh Posté le 03-12-2002 à 19:31:23
On ne peut pas faire de header si du texte a déjà été envoyé au navigateur.
Ca veut dire rien avant le premier "<?" du fichier principal, rien entre les ">?" et le "<?" suivant quand ils sont situer avant le header rien avant le premier "<?" de chaque fichier inclus, rien après le dernier "?>" des fichiers inclus, rien entre les ">?" et le "<?" suivant dans les fichiers inclus et aucun echo, print et autres instructions envoyant du texte au navigateur d'exécuté avant ton header.
Relis ton code et dis moi ce que tu lis au début.
EDIT : Rajout des conditions manquantes.
Marsh Posté le 03-12-2002 à 19:35:53
ben body
ca veut dire que je doit le foutre apres le </body>
genre a la fin je rajoute <? header("....." )?>
?
Marsh Posté le 03-12-2002 à 19:37:01
C est pour envoyer une entete HTTP tu ne doit envoyer rien comme code html avant (pas de body, head, meta, que dal)...
Marsh Posté le 03-12-2002 à 19:40:14
chacal_one333 a écrit a écrit : ben body ca veut dire que je doit le foutre apres le </body> genre a la fin je rajoute <? header("....." )?> ? |
Bon, on réexplique calmement :
tout ce qui précède le premier "<?" est envoyé de suite au navigateur donc là, t'as du texte qu'est envoyé au navigateur. Ensuite tu essayes de faire un header. Comment veux tu que camarche alors qu'il faut qu'il n'y ai rien d'envoyer au navigateur avant de faire le header?
Là, il faut juste que tu remplaces
<body bgcolor="#E8E8E8"><?php
par les lignes
<?php
echo "<body bgcolor=\"#E8E8E8\">";
Marsh Posté le 03-12-2002 à 19:44:38
si j'ai bien compris ( )
<?php |
right or wrong?
Marsh Posté le 03-12-2002 à 19:53:28
j'ai relu et donc [quote]pas de echo ou print avant
donc logiquement ( ma logique )
<?php |
Marsh Posté le 03-12-2002 à 20:01:03
chacal_one333 a écrit a écrit : j'ai relu et donc [quote]pas de echo ou print avant donc logiquement ( ma logique )
|
et ca marche???
Marsh Posté le 03-12-2002 à 20:38:49
Bin déjà, ça c'est bien TOUT le code de ta page ? J'veux dire, y a pas de <html> ou <head> avant ? Passke ton code PHP avec le header() DOIT être écrit avant tout ça.
Sinon, c'est quoi le message d'erreur maintenant ? Si c'est toujours le même, c'est que tu fais des print ou des echo avant de faire ton header().
Marsh Posté le 03-12-2002 à 20:40:11
vala tout el fichier
<?php |
rien avant rien apres
Marsh Posté le 03-12-2002 à 20:41:28
erreur:
Warning: Cannot add header information - headers already sent by (output started at /var/www/free.fr/13/f/a/w/t/fawteam/php test/connect.php:11) in add.php on line 21 |
et quand je le met au debut le pbm est le meme seule la ligne change
Marsh Posté le 03-12-2002 à 20:45:16
http://www.php.net/manual/fr/function.header.php
Je cite :
Citation : |
Marsh Posté le 03-12-2002 à 20:47:03
ben j'ai retirer l'espace du require mais ca marche pas qd meme
<?php |
meme erreur :'(
Marsh Posté le 03-12-2002 à 20:49:03
RAH !@#
Ce que DIT le manuel c'est de NE PAS utiliser include() ou require(). C'est bon, tu t'en sors ?
Marsh Posté le 03-12-2002 à 20:49:31
C'est dans connect.php qu'il doit y avoir des lignes vides ou des espaces.
Marsh Posté le 03-12-2002 à 20:50:33
Taiche a écrit a écrit : RAH !@# Ce que DIT le manuel c'est de NE PAS utiliser include() ou require(). C'est bon, tu t'en sors ? |
Heu si, il peut l'utiliser, il faut juste qu'ils produisent rien en sortie.
Marsh Posté le 03-12-2002 à 20:55:07
ben vala mon connect.php
<?php |
ya pas d'espace au define
Marsh Posté le 03-12-2002 à 20:57:12
Les caractères qui ont été envoyés sont à la ligne 11 de connect.php. Or vu ce que tu postes il ne fait pas 11 lignes. Tu dois donc avoir des lignes vides après le ?> de connect.php.
Marsh Posté le 03-12-2002 à 20:58:26
Humpf. Fous un exit() ou un die() après l'echo du premier if.
Pis euh, l'echo "</body>" de la fin il est tout seul sans echo "<body>" ?
Marsh Posté le 03-12-2002 à 20:58:56
je les ai retiré j'avais en effet du <html> <body> ....
plus maintenant
Marsh Posté le 03-12-2002 à 21:53:35
chacal_one333 a écrit a écrit : ca marche now !!!! j'avais un espace avant le <?php |
c pour ca que j'adore programmer
Marsh Posté le 03-12-2002 à 19:27:15
j'ai bien utiliser la recherhce mais je ne comprend toujours pas le probleme (ca parle d'espace... alors que je n'en ai pas apres le <? )
bref voici mon code :
<body bgcolor="#E8E8E8"><?php
require ("connect.php" );
$connect=mysql_connect(SERVEUR, NOM, PASSE);
mysql_select_db(BASE, $connect);
$obj="SELECT nom FROM User WHERE nom='$nom'";
$req=mysql_query($obj);
$row=mysql_numrows($req);
if ($row!=0)
{
echo "ce pseudo est deja pris";
}
if (empty($nom) OR empty($password) OR empty($email))
{
echo "les champs <br>NOM, PASSWORD et EMAIL</br> ne doivent pas etre vides";
}
else
{
$obj="INSERT INTO User VALUES ('$email', '$nom', '$prenom', '$password', '$AnneeNaiss', '$pays')";
$req=mysql_query($obj) or die ('error sql'.sql.'<br>'.mysql_error());
header("Location:formulaire%20inscription.html" );
}
mysql_close($connect);
?></body>
et l'erreur
Warning: Cannot add header information - headers already sent by (output started at /var/www/free.fr/13/f/a/w/t/fawteam/php test/add.php:10) in add.php on line 11
c'est grave doc?