[resolu] Petit souci sur le php de mon formulaire

Petit souci sur le php de mon formulaire [resolu] - PHP - Programmation

Marsh Posté le 11-10-2005 à 10:00:07    

Bonjour a tous,
 
Sur mon formulaire,  mon code php est celui là...
 

Code :
  1. <?php
  2. Header("Location: http://www.apoilleux.com/sommaire.php" );
  3. $TO = "xxxxxxxxx@free.fr";
  4. $h = "From: " . $TO;
  5. $message = "";
  6. while (list($key, $val) = each($HTTP_POST_VARS)) {
  7. $message .= "$key : $val\n";
  8. }
  9. mail($TO, $subject, $message, $h);
  10. ?>


 
Je recois bien le message mais en revanche, j'ai ce messag d'erreur qui appaait après l'envoi:
 

Code :
  1. Warning: Cannot modify header information
  2. - headers already sent by (output started at /home.2/apoilleu/www/new/formulaire.php:3) in /home.2/apoilleu/www/new/formulaire.php on line 4


 
Vous avez une idée ??
 
Merci

Message cité 1 fois
Message édité par Lekouti le 13-10-2005 à 22:05:26
Reply

Marsh Posté le 11-10-2005 à 10:00:07   

Reply

Marsh Posté le 11-10-2005 à 10:01:56    

http://fr3.php.net/manual/fr/function.header.php
 

Citation :

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.


 
[:orly2]


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 11-10-2005 à 10:17:09    

pourtant mon header est sutu en haut de mon code ?! Non ?


Message édité par Lekouti le 11-10-2005 à 10:17:22
Reply

Marsh Posté le 11-10-2005 à 10:20:00    

Bah non, gaffe au espaces avant le <?


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 11-10-2005 à 10:43:44    

il faut que je l'ecrive comme ça ??
 
<?php  
Header("Location: http://www.apoilleux.com/sommaire.php" );  
$TO = "xxxxxxxxx@free.fr";  
$h = "From: " . $TO;  
$message = "";  
while (list($key, $val) = each($HTTP_POST_VARS)) {  
$message .= "$key : $valn";  
}  
mail($TO, $subject, $message, $h);  
?>

 
Merci

Reply

Marsh Posté le 11-10-2005 à 10:45:38    

AVANT


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 11-10-2005 à 10:55:04    

mdr..... :pt1cable:  
 
Header("Location: http://www.apoilleux.com/sommaire.php" );  
<?php  
$TO = "xxxxxxxxx@free.fr";  
$h = "From: " . $TO;  
$message = "";  
while (list($key, $val) = each($HTTP_POST_VARS)) {  
$message .= "$key : $valn";  
}  
mail($TO, $subject, $message, $h);  
?>

 
 
....peut etre ???  :??:

Reply

Marsh Posté le 11-10-2005 à 10:57:52    

...

Reply

Marsh Posté le 11-10-2005 à 11:00:16    

Bon alors au cas ou vous ne l'auriez pas encore compri, je ne connais rien en PHP...alors j'ai vraiment besoin que vous m'aidiez.
Si vous pouviez bien me placer mon header cela me serai d'un grand secour... Merci

Reply

Marsh Posté le 11-10-2005 à 11:01:02    

http://rulzofpunk.free.fr/images/omgwtf.gif


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 11-10-2005 à 11:01:02   

Reply

Marsh Posté le 11-10-2005 à 11:01:49    

Ben je sais pas, essaie de lire ce qu'on te dit.
 
i.e. vire cette ligne vide avant ton <php :x

Reply

Marsh Posté le 11-10-2005 à 13:49:53    

Ok bon si je comprend bien... ?
 
   
<?php Header("Location: http://www.apoilleux.com/sommaire.php" );    
$TO = "xxxxxxxxx@free.fr";    
$h = "From: " . $TO;    
$message = "";    
while (list($key, $val) = each($HTTP_POST_VARS)) {    
$message .= "$key : $valn";    
}    
mail($TO, $subject, $message, $h);    
?>

Reply

Marsh Posté le 11-10-2005 à 13:55:37    

aaaaaaaaaaaaaaaa [:boulax]
 
on te dit de virer les ESPACES et les LIGNES éventuellement PRESENTES
 
/!\ AVANT /!\
 
le début de ton code php :fou:, c'est à dire avant "<?"
 
ex:
 
"<?" = http://forum-images.hardware.fr/icones/message/icon14.gif
" <?"= http://forum-images.hardware.fr/icones/message/icon13.gif


Message édité par boulax le 11-10-2005 à 13:56:29

---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 11-10-2005 à 13:58:47    

Question con, qu'est ce que vous en savez qu'il reste encore des caractéres avant son "<?php" ?
Et puis Lekouti, c'est directement cette page là qu'est apellé par le navigateur ou c'est un autre script qui l'utilise grace à un include ou un require? (je paris pour ce dernier cas)

Reply

Marsh Posté le 11-10-2005 à 14:00:09    

omega2 a écrit :

Question con, qu'est ce que vous en savez qu'il reste encore des caractéres avant son "<?php" ?


Bah rien, c'est pour ça qu'on lui demande de vérifier [:spamafote]


---------------
Posté depuis des chiottes, sales. Me gusta.
Reply

Marsh Posté le 11-10-2005 à 14:16:26    

Je n'ai pas acces a ma page je suis au taf...
Enrevanche je mettrai dès soir mon code dasn la page.
 
Donc SANS espace devant.
 
Puis je faireun copier coller de mon dernier code et le caller un haut au gauche de ma page PHP ??

Reply

Marsh Posté le 11-10-2005 à 14:16:50    

De là à insister 5 fois avant de demander si c'est pas un fichier php inclus par un autre (je suis certain à 90% que c'est ça au vu du script) il faut en vouloir. ;)

Reply

Marsh Posté le 11-10-2005 à 14:17:49    

mon code php est sur une autre page que mon formulaire.

Reply

Marsh Posté le 11-10-2005 à 14:21:30    

Est ce que c'est le script que t'as copier sur le forum est appellé directement par le navigateur ou est ce que le navigateur en apelle un autre qui lui même appelle celui ci?
Que ton fichier n'affiche pas le formulaire, ca se voit dessuite. ;)


Message édité par omega2 le 11-10-2005 à 14:22:01
Reply

Marsh Posté le 11-10-2005 à 15:35:31    

Lekouti a écrit :

Bonjour a tous,
 
Sur mon formulaire,  mon code php est celui là...
 

Code :
  1. <?php
  2. Header("Location: http://www.apoilleux.com/sommaire.php" );
  3. $TO = "xxxxxxxxx@free.fr";



Nan mais refléchis 2 secondes... Mais alors juste 2 secondes... Si tu rediriges vers une page, comment veut-tu que le reste s'exécute ?  [:johneh]  [:johneh]

Reply

Marsh Posté le 11-10-2005 à 15:41:31    

FlorentG > Réfléchis une seconde, mais jsute une seconde : depuis quand l'instruction header empéche le reste du script de s'éxécuter?
C'est pas par ce qu'il ne véra aucun résultat ou alerte dans le navigateur que son script ne fera plus rien du tout passé cette ligne.
 
Par contre, s'il avait mis un exit derriére le header, là oui, plus rien ne s'éxécuterait. Mais j'en vois strictement aucun dans son script.

Reply

Marsh Posté le 11-10-2005 à 15:43:12    

Euuuh alors pour tt vous expliquer, j'ai pris ce script sur le net.
Il etait dis que le header aler, apres avoir envoyer mon mail sur ma boite, rediriger l'internaute sur la dite page (Location: http://www.apoilleux.com/sommaire.php).
 
Mais en tout cas je recois quandf meme les mail !!


Message édité par Lekouti le 11-10-2005 à 15:43:47
Reply

Marsh Posté le 11-10-2005 à 15:46:58    

omega2 a écrit :

FlorentG > Réfléchis une seconde, mais jsute une seconde : depuis quand l'instruction header empéche le reste du script de s'éxécuter?


Depuis toujours :o Parfois y'a des trucs qui s'exécutent, parfois pas. C'est pas prévisible... Bref, vaut mieux rien metter après un header location, ou alors un exit pour être certain que la redirection se fasse sans problèmes.

Reply

Marsh Posté le 11-10-2005 à 15:52:03    

Bizare, j'ai jamais eu de probléme avec ça.

Reply

Marsh Posté le 11-10-2005 à 15:54:05    

Jamais observé un tel comportement :|
Certes je n'utilise pas de "Location" mais ... le serveur n'a pas un comportement different lorsque l'on envoie un en tete de redirection quand meme ?

Reply

Marsh Posté le 11-10-2005 à 16:06:08    

Pas meme de mention de ce comportement dans la doc ...
[:athlonxp2100+] ? :gratgrat:

Reply

Marsh Posté le 11-10-2005 à 17:33:53    

Pouvez vous me corriger mon script svp ?
 
Car pour tout vous dire, je ne comprend rien au php et je peine à mis mettre.
 
CSS et XHTML etant déjà pas mal pour moi  :pt1cable:  
 
Merci

Reply

Marsh Posté le 11-10-2005 à 17:34:55    

Concretement, j'aimerai que le script m'envoi un mail et surtouut redirige l'internaute vers la page de mon choix.

Reply

Marsh Posté le 11-10-2005 à 19:02:54    

Lekouti a écrit :

je ne comprend rien au php


On avait compris rassure toi :)

Reply

Marsh Posté le 11-10-2005 à 19:26:09    

Bonnnnn.......pour mon plus grand bonheur (et je vais finir pas croire, pour le votre aussi  :pt1cable: ) ça marche. Le code compacté comme ça c'est parfait.
 
En revanche....je reviens et je profite d'avoir des pros pret de moi :D  pour vous assenez 2 nouvelles petites questions :ange: :  
 
1 - est t'il possible de mettre dans le "fameux" code une ligne pour que j'ai un objet quand je le recois sur Outlook ??
2 - je fait une page dedié à la confirmation de l'envoi du mail et j'aurai voulu (dans un luxe ultime  :wahoo: ) faire apres une redirection automatique sous 3 seconde. Possible sous PHP ? si oui comment faire ? ou c'est un autre language ?
 
Merci encore  ;)


Message édité par Lekouti le 11-10-2005 à 19:27:17
Reply

Marsh Posté le 11-10-2005 à 19:34:11    

1 - http://il2.php.net/mail =>(cherches le mot Subject )
2 - http://il2.php.net/header =>(cherches le mot Refresh: )


Message édité par betsamee le 11-10-2005 à 19:37:38
Reply

Marsh Posté le 11-10-2005 à 19:38:53    

omega2 a écrit :

Question con, qu'est ce que vous en savez qu'il reste encore des caractéres avant son "<?php" ?


 
Son erreur portait sur la ligne 4, et le header est sur la troisième ligne de ce qu'il balance. Donc à tous les coups, il y avait une ligne vide avant.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 11-10-2005 à 19:40:33    

afbilou a écrit :

Jamais observé un tel comportement :|
Certes je n'utilise pas de "Location" mais ... le serveur n'a pas un comportement different lorsque l'on envoie un en tete de redirection quand meme ?


 
Ben perso j'ai jamais trouvé logique de dire à un script de rediriger instantanément PUIS de faire quelque chose. Je sais pas, une redirection instantanée ça me paraît évident que ça se fout en dernier.
 
La doc officielle le mentionne même avec un exit derrière pour s'assurer que le code qui suit sera pas exécuté. [:spamafote]
 
(édité parce que je suis fatigué)

Message cité 1 fois
Message édité par sielfried le 11-10-2005 à 19:47:35

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 11-10-2005 à 20:37:12    

sielfried a écrit :

Ben perso j'ai jamais trouvé logique de dire à un script de rediriger instantanément PUIS de faire quelque chose. Je sais pas, une redirection instantanée ça me paraît évident que ça se fout en dernier.
 
La doc officielle le mentionne même avec un exit derrière pour s'assurer que le code qui suit sera pas exécuté. [:spamafote]
 
(édité parce que je suis fatigué)


Header ne fait qu'envoyer au client un en-tete. Le script PHP envoie donc son en-tete au client, il ne se soucie pas du comportement du navigateur face a cet en-tete et il continue son execution : peu importe que le client ait interpreté l'en-tete et se soit barré ailleurs.

Reply

Marsh Posté le 11-10-2005 à 20:43:42    

ouais mais c'est débile, on spécifie un header:location, seulement après tout le traitement des données. Je suis désolé !!!!!!


---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le 11-10-2005 à 22:27:28    

bon la j'ai de nouveau un pb...
 
Sur les test que je fait je ne recois que ça quand je recoit un mail:
 
email : name : comments : x : y :
 
Vous avez une idées ?
 
ma page php:
 

Code :
  1. <?php
  2. Header("Location: http://www.apoilleux.com/sommaire.php" );   
  3. $TO = "info@apoilleux.com";   
  4. $h = "From: " . $TO;
  5. $subject = "Subject here"; 
  6. $message = "";   
  7. while (list($key, $val) = each($HTTP_POST_VARS)) {   
  8. $message .= "$key : $valn";   
  9. }   
  10. mail($TO, $subject, $message, $h);   
  11. ?>


 

Reply

Marsh Posté le 11-10-2005 à 22:35:33    

Code :
  1. while (list($key, $val) = each($HTTP_POST_VARS)) {   
  2. $message .= "$key : $valn";   
  3. }


 
Se relire, c'est bien, mangez-en...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 11-10-2005 à 22:55:03    

a chacun c'est qualité et ses connaissance...moi elle sont pas dans le php.
 
Alors le "while" ça me parle pas du tout.
 
Aidez moi svp

Reply

Marsh Posté le 11-10-2005 à 23:00:25    

Lekouti a écrit :

a chacun c'est qualité et ses connaissance...moi elle sont pas dans le php.
 
Alors le "while" ça me parle pas du tout.
 
Aidez moi svp


il te reste plus qu'a apprendre
tu as raison a chacun ses qualites et ses connaissances , moi perso le pigeonnage c'est pas mon truc
c'est pas un SAV a scripts de merde trouves sur le net ici
en y mettant un minimum du tien du devrais y arriver


Message édité par betsamee le 11-10-2005 à 23:01:09
Reply

Marsh Posté le 11-10-2005 à 23:09:35    

ben au moins il cherche a faire son site lui même et non pas faire un site pour quelqu'un sans rien connaitre.


---------------
Les CSS c'est bon mangez-en
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed