Formulaire PHP

Fermé
zoubsy - 9 mai 2008 à 21:39
Estyaah Messages postés 255 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 8 avril 2009 - 10 mai 2008 à 10:54
Bonjour,
je débute (vraiment) en php, et voilà ce que j'aimerais faire : un formulaire dans lequel le visiteur pourrait m'envoyer du texte par email. Je ne connais presque rien en php, mais j'ai déjà mon code xhtml. Voici mon code html :

<form method="post" action="envoi.php">
 
   <fieldset>
       <legend><strong>Coordonnées</strong></legend> >
 
       <label for="nom">Quel est votre nom ?</label><br />
       <input type="text" name="nom" id="nom" /><br />
 
       <label for="email">Quel est votre e-mail ?</label><br />
       <input type="text" name="email" id="email" /><br />
   </fieldset>
 
   <fieldset>
       <p>
           <label for="avis">Quel est votre avis à propos du site ?</label><br />
           <textarea name="precisions" id="precisions" cols="40" rows="4" tabindex="80"></textarea>
       </p>
   </fieldset>

   <p>
       <input type="submit" /> <input type="reset" />
   </p>


Merci d'avance !

29 réponses

Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 189
9 mai 2008 à 21:42
bonsoir,
générateur de formulaire PHP
Bonne soirée
0
je suis en galère
9 mai 2008 à 21:55
Voici le code php:
nom de la page: envoi.php

<?php

$to=$_POST[email];
$subject='message envoyé';
$message=$_POST[precisions];
$headers="MIME-Version:1.0\r\n";
$headers="Content-type:text/html;charset=iso-8859-1\r\n";

mail($to,$subject,$message,$headers);

echo"
<script language='javascript'>

alert('Votre message nous a été envoyé merci.');

</script>
";

header('location:retourAuFormulaire.html');
?>
0
Merci pour les réponses, mais je vois pas où se situe mon adresse dans ton code, je suis en galère (sympa le pseudo, d'ailleurs...), c'est-à-dire où est envoyé le message ?
0
je suis en galère
9 mai 2008 à 22:03
est-ce que t'as les bases en php?
0
Estyaah Messages postés 255 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 8 avril 2009 34
9 mai 2008 à 22:07
Salut !

Dans le message posté, ton adresse mail est contenue dans la variable : $_POST[email], qui aura été remplie dans ton formulaire par ton champ <input type="text" name="email" id="email" />.
0
je suis en galère
9 mai 2008 à 22:10
non, ce n'est pas son adresse e-mail qui est dans $_POST[email], mais c'est celui de l'expéditeur, càd celui qui a rempli le formulaire
0
Estyaah Messages postés 255 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 8 avril 2009 34 > je suis en galère
9 mai 2008 à 22:14
t'as raison, je n'avais pas lu à quoi correspondait le champ. Cependant, le $to correspond bien à l'adresse destinataire. Pour plus d'info : https://www.php.net/manual/fr/function.mail.php
0

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

Posez votre question
je suis en galère
9 mai 2008 à 22:08
car avec php, on ne peut pas mettre l'adresse e-mail du destinaire dans le script, met on doit le mettre dans le fichier php.ini.
0
Estyaah Messages postés 255 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 8 avril 2009 34
9 mai 2008 à 22:10
Non, ce n'est pas vrai, tu peux inscrire le nom du destinataire dans le script. Tu peux aussi mettre le nom de l'envoyeur dans le script.
0
Je ne pense pas, vu que j'ai l'air d'avoir dit une énorme bêtise :)
0
Je fais comment alors ? En tout cas merci de vos réponses rapides !
0
Estyaah Messages postés 255 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 8 avril 2009 34
9 mai 2008 à 22:22
relis tout, et tu auras la solution ;-)
0
je suis en galère
9 mai 2008 à 22:33
En fait mon code est éronné car je me suis trompé à $to (grace à la remarque à Estyaah),
en effet à $to tu dois mettre l'adresse e-mail du destinataire, càd le tiens.

Par contre tu dois mettre dans $message l'adresse e-mail de l'expéditeur (pour savoir au moins qui t'as envoyé le message), donc le code est le suivant:


<?php

$to=tonAdresse@email;
$subject='message envoyé';
$message="Message envoyé par $_POST[email]<br>Voici son message:$_POST[precisions]";
$headers="MIME-Version:1.0\r\n";
$headers="Content-type:text/html;charset=iso-8859-1\r\n";

mail($to,$subject,$message,$headers);

echo"
<script language='javascript'>

alert('Votre message nous a été envoyé merci.');

</script>
";

header('location:retourAuFormulaire.html');
?>

Excuse moi pour mon erreur et merci pour ta remarque Estyaah.
0
J'ai beau cherché, je trouve pas. Je suppose qu'il faut mettre un "$to=monadresse@xxxxxxxxx;" quelque part, mais je ne vois pas trop comment. De plus, je ne comprend pas l'avant dernière ligne "header('location:retourAuformulaire.html');".
Merci pour tout en tout cas. :)
0
je suis en galère
9 mai 2008 à 22:37
Si tu ne connais pas php, moi j'ai appris php avec le livre PHP et mysql pour les nuls car j'étais en galère, et franchement ça m'a servi, donc si tu veux y jeté un coup d'oeil...
0
je suis en galère
9 mai 2008 à 22:41
"header('location:retourAuformulaire.html');"

C'est juste une redirection automatique (version php) vers la page de ton formulaire (j'ai mais 'retourAuFormulaire.html' car je ne sais pas comment s'appelle le nom de la page de ton formulaire), c'est l'équivalent de window.location en version javascript.
0
Merci du conseil et du script !
Cependant 2 erreurs persistent lorsque je teste mon formulaire :
-Parse error: syntax error, unexpected '@' in /home/jonathan/www/Site/envoi.php on line 3
---->J'ai essayé de mettre des guillemets autour, et je me retrouve avec cette 2nd erreur :
-Warning: Cannot modify header information - headers already sent by (output started at /home/jonathan/www/Site/envoi.php:17) in /home/jonathan/www/Site/envoi.php on line 19

Et je ne recois le mail dans aucun des cas....
Mais merci de m'aider, je dois vraiment etre lourd !
0
je suis en galère
9 mai 2008 à 22:48
essaye ça alors il faut mettre les guillemets autour de ton adresseEmail:


<?php

$to="tonAdresse@email";
$subject='message envoyé';
$message="Message envoyé par $_POST[email]<br>Voici son message:$_POST[precisions]";
$headers="MIME-Version:1.0\r\n";
$headers="Content-type:text/html;charset=iso-8859-1\r\n";

mail($to,$subject,$message,$headers);

echo"
<script language='javascript'>

alert('Votre message nous a été envoyé merci.');
window.location='retourPageFormulaire.html';
</script>
";

?>

Et est-ce que tu as configuré la section [mail] de php.ini ? car c'est grace à cette configuration que tu peux recevoir les messages de ton formulire
0
je suis en galère
9 mai 2008 à 22:49
alors ça marche ?
0
Ah non, j'ai pas fait ca.... Comment on fait ? (pardonnez mon ignorance :) )
0
je suis en galère
9 mai 2008 à 22:51
tu utilise quoi comme logiciel pour utiliser php?
0
Lampp sous linux
0
je suis en galère
9 mai 2008 à 22:52
j'ai que 10 minutes pour t'aider car je ne suis pas chez moi
0
je suis en galère
9 mai 2008 à 22:54
ok, cherche le fichier php.ini qui se trouve dans un des sous dossier de php dans c:/
0
Oui, je l'ai (mais dans ~/opt/lamp/etc/php.ini car sous linux)
0