Executer Formulaire de contact

Executer Formulaire de contact - PHP - Programmation

Marsh Posté le 13-10-2006 à 14:04:22    

Bonjour,  
 
J'ai créé mon site récemment et j'aimerai y insérer un formulaire.  
 
Voici ce que j'ai créé comme code html pour mon formulaire :  

Code :
  1. <h1>ME CONTACTER</h1>
  2. <p>Veuillez remplir le formulaire suivant :</p><br />
  3. <br />
  4. <form method="post" action="action.php">
  5. <p><label>Nom : <input name="nom" type="text" size="40" tabindex="01" /></label>
  6. </p>
  7. <p><label>Prénom : <input name="prenom" type="text" size="40" tabindex="02" /></label>
  8. </p>
  9. <p><label>E-mail : <input name="mail" type="text" size="40" tabindex="03" /></label>
  10. </p>
  11. <p><label>Tel : <input name="tel" type="text" size="10" maxlength="10" tabindex="04" /></label>
  12. </p>
  13. <p>Vous êtes : <br /><br />
  14. <label><input type="radio" name="sexe" value="homme" tabindex="05" />Un homme</label><br />
  15. <label><input type="radio" name="sexe" value="femme" tabindex="06" />Une femme</label><br />
  16. </p>
  17. <p>Les logiciels pack office que vous utilisez :<br /><br />
  18.  <label><input type="checkbox" name="case" tabindex="07" />Word</label><br />
  19.  <label><input type="checkbox" name="case" />Excel</label><br />
  20.  <label><input type="checkbox" name="case" />Access</label><br />
  21.  <label><input type="checkbox" name="case" />PowerPoint</label><br />
  22.  <label><input type="checkbox" name="case" />Publisher</label><br />
  23.  <label><input type="checkbox" name="case" />Autre ou aucun</label>
  24.  <p>
  25.  <label>
  26.   Objet :<br />
  27.   <select class="rempl" name="objet" tabindex="08">
  28.   <option value="Renseignements">Renseignements</option>
  29.   <option value="Autre">Autre</option>
  30.   </select>
  31.  </label>
  32. </p>
  33. <p"><label>Votre message :<br />
  34. <textarea name="message"  cols="65" rows="10" tabindex="09" ></textarea></label></p>
  35. <p><input name="Envoi" type="submit" value="Envoyer" tabindex="10" /></p>
  36. </form>
  37. </BODY>
  38. </HTML>


Est-ce que quelqu'un pourrait m'expliquer un peu comment faire pour exécuter ce formulaire ? Car j'ai cherché beaucoup par google, dans les différents tutos, mais je n'arrive pas à comprendre comment écrire mon code qui exécutera ce formulaire...  
 
Si quelqu'un peut m'aider à débuter, ce serait très gentil !  
 
Merci beaucoup par avance !

Reply

Marsh Posté le 13-10-2006 à 14:04:22   

Reply

Marsh Posté le 13-10-2006 à 14:33:15    

et je suppose que tu n'as pas créé de fichier qui s'appelerait "action.php" c'est bien ça?

Reply

Marsh Posté le 14-10-2006 à 11:41:50    

Le formulaire tu l'as ;)
Quand la page sera appelée, il sera affiché, tu le rempliras et en cliquant sur le bouton envoyer les données seront envoyées en POST à action.php :)
 
Suffit pour récupérer les valeurs d'utiliser la superglobale $_POST qui est un tableau des champs input.

Reply

Marsh Posté le 14-10-2006 à 19:41:23    

leflos5 a écrit :

Le formulaire tu l'as ;)
Quand la page sera appelée, il sera affiché, tu le rempliras et en cliquant sur le bouton envoyer les données seront envoyées en POST à action.php :)
 
Suffit pour récupérer les valeurs d'utiliser la superglobale $_POST qui est un tableau des champs input.


 
Bonjour
J'ai aussi créé un formulaire en html et un fichier .asp  Dans le document html j'ai indiqué <form method="post" action="accusedereception.asp">. L'accusé de réception s'affiche mais comment je peux retrouver les personnes qui m'ont contactée et les documents qu'ils me commandent en cochant les cases. Dois-je créer une base de données et comment ? Sur internet, je trouve des explications sur les deux pages html et php ou asp mais la suite pour lire les résultats et comment je ne trouve pas. Quand je mets une adresse mail dans action:mailto et que je fais des essais, j'ai aol qui se lance pour faire un envoi par mail. Cela fait une semaine que je planche.
Dans la réponse ci-dessus, je ne comprends pas "Suffit pour récupérer les valeurs d'utiliser la superglobale $_POST qui est un tableau des champs input.[/quotemsg]." Pouvez-vous m'expliquer ?
Merci beaucoup

Reply

Marsh Posté le 15-10-2006 à 00:41:08    

Qu'on se mette d'accord: le formulaire est un moyen du langage html pour proposer des zones de saisies dont les valeurs sont accessibles par le script désigné par la propriété "action".
 
Donc si dans le script visé par "action" vous faites rien, il y aura rien de magique ou subliminal :heink:  
 
Pour superglobal $_POST je parle de php puisqu'on est dans la section php  :ange: Je connais pas asp et son moyen de récupérer les données post ou get du protocole http :wahoo:  
 
Pour le mailto c'est normal, ça demande au client de messagerie par défaut sur la machine de s'ouvrir en prenant en paramètres les données du formulaire :)
 
Si on veut garder une trace de ces formulaires il faut enregistrer ça quelque part, sans forcément que ça soit dans une BDD (même si ça reste le plus pratique et manipulable facilement), mais faut que ça soit enregistrer. Rien ne se fait tout seul  :whistle:  
 
Donc  en gros pour du php (je connais toujours pas plus asp et je veux pas  :kaola: ) suffit pour récupérer la valeur d'un champ de type

Code :
  1. <input type="text" name="toto" value="texte par défaut">


de faire

Code :
  1. $mavaleurdetoto=$_POST['toto'];


Après si on veut sauvegarder $mavaleurdetoto, faut le faire  ;)

Reply

Marsh Posté le 15-10-2006 à 10:05:05    

Bonjour
mon formulaire (modèle) appelé formulaire3.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
"http://www.w3.org/TR/REC-html40/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
<title>Mon formulaire.</title>  
</head>  
<body>  
<form name='formulaire' action='traitement3.php' method='post'>  
<table>  
<th>Formulaire de contact</th>  
<tr><td height="24">Votre nom : </td><td height="24"><input name='nom' type='text' size='50'></td></tr>  
<tr><td>Votre prénom : </td><td><input name='prenom' type='text' size='50'></td></tr>  
<tr><td>Votre email</td><td><input name='email' type='text' size='50'></td></tr>  
<tr><td>Le motif de votre message</td><td><input name='sujet' type='radio' value='renseignement'>Renseignement<br>  
<input name='sujet' type='radio' value='probleme technique'> Probleme technique<br>  
 <input type="radio" name="sujet" value="V1">Partenariat</td></tr>  
<tr><td>Votre message</td><td><textarea name='texte' cols='50' rows='20'></textarea></td></tr>  
<tr><td><input name='annuler' type='reset' value='Annuler'></td><td>  
<input name='soumettre' type='submit' value='Envoyer'></td></tr>  
</table>  
</form>  
</body>  
</html>
 
 
l'accusé de réception intitulé traitement3.php
<html>  
<head>  
<title>Message envoyé !</title>  
<meta http-equiv="Refresh" content="5;URL=/">  
</head>  
<body>  
<h1>message envoyé !</h1>  
<p>vous serez redirigé automatiquement vers mapage.php dans 5 secondes...</p>  
<p>si ce n'est pas le cas, merci de cliquer sur ce lien : <a href="mapage.php">retour</a></p>  
</body>  
</html>  
<?  
$adresse="creiloise@aol.com";  
$from="From: $prenom $nom<$email>\r\n";  
$from.="Reply-To: $prenom $nom <$email>\n";  
$from.="X-priority:3\n";  
$texte=utf8_decode($_POST['texte']);  
$from.="MIME-Version: 1.0\r\n";  
$from.="Content-Type: text/html";  
if (mail($adresse,$sujet,$texte,$from))  
echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br></center>" );  
else  
echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$alex\">classiquement</a>" );  
?>
 
 
ces renseignements <input type="text" name="toto" value="texte par défaut">  je les mets ou dans le htm
 
et ceux-ci dans le htm ou php ? $mavaleurdetoto=$_POST['toto'];  
 
Merci beaucoup c'est pour mon boulot car sur mon site perso le php, asp ... ne sont pas acceptés alors je ne peux pas faire d'essais chez moi

Reply

Marsh Posté le 15-10-2006 à 10:53:47    

Bonjour,
 
(HTML)
tiens si tu veux faire des formulaires corrects, voici un excellent tuto en français: Des formulaires plus simples (Fred Cavazza) (faut regarder le code source des pages où il y a un formulaire pour voir comment il fait)
 
(traitement PHP)
- Il manque un Doctype à ta page.
- le code HTML est horrible et déprécié (utilisation de <font color>, de <br> pour aller à la ligne au lieu d'utiliser les CSS avec color: et margin/padding, etc)
- Modifie ton mail @aol.com parce que les robots à spam vont vite le voir ...
- $mavaleurdetoto=$_POST['toto']; --> voui c'est ça, tu le mets dans la partie traitement. C'est bien une instruction PHP qui récupère la valeur d'un champ entrée par l'utilisateur une fois qu'il a pressé sur 'Valdier/OK', nan? :??: A quoi ça rimerait de mettre ça dans la partie "affichage du formulaire vide en HTML" alors que le champ est encore vide et que y a pas de PHP? :??:  :whistle:


Message édité par phosphoreloaded le 15-10-2006 à 10:55:58
Reply

Marsh Posté le 15-10-2006 à 13:26:53    

annemarie2 a écrit :

Bonjour
mon formulaire (modèle) appelé formulaire3.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
"http://www.w3.org/TR/REC-html40/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
<title>Mon formulaire.</title>  
</head>  
<body>  
<form name='formulaire' action='traitement3.php' method='post'>  
<table>  
<th>Formulaire de contact</th>  
<tr><td height="24">Votre nom : </td><td height="24"><input name='nom' type='text' size='50'></td></tr>  
<tr><td>Votre prénom : </td><td><input name='prenom' type='text' size='50'></td></tr>  
<tr><td>Votre email</td><td><input name='email' type='text' size='50'></td></tr>  
<tr><td>Le motif de votre message</td><td><input name='sujet' type='radio' value='renseignement'>Renseignement<br>  
<input name='sujet' type='radio' value='probleme technique'> Probleme technique<br>  
 <input type="radio" name="sujet" value="V1">Partenariat</td></tr>  
<tr><td>Votre message</td><td><textarea name='texte' cols='50' rows='20'></textarea></td></tr>  
<tr><td><input name='annuler' type='reset' value='Annuler'></td><td>  
<input name='soumettre' type='submit' value='Envoyer'></td></tr>  
</table>  
</form>  
</body>  
</html>
 
 
l'accusé de réception intitulé traitement3.php
<html>  
<head>  
<title>Message envoyé !</title>  
<meta http-equiv="Refresh" content="5;URL=/">  
</head>  
<body>  
<h1>message envoyé !</h1>  
<p>vous serez redirigé automatiquement vers mapage.php dans 5 secondes...</p>  
<p>si ce n'est pas le cas, merci de cliquer sur ce lien : <a href="mapage.php">retour</a></p>  
</body>  
</html>  
<?  
$adresse="creiloise@aol.com";  
$from="From: $prenom $nom<$email>\r\n";  
$from.="Reply-To: $prenom $nom <$email>\n";  
$from.="X-priority:3\n";  
$texte=utf8_decode($_POST['texte']);  
$from.="MIME-Version: 1.0\r\n";  
$from.="Content-Type: text/html";  
if (mail($adresse,$sujet,$texte,$from))  
echo("<center><font color=green><br><br><br><h2>Formulaire envoy&eacute; ! Je vous r&eacute;pondrais rapidement. Merci!</h2></font><br></center>" );  
else  
echo("<center><font color=red><br><br><br><h2>Probl&egrave;me &agrave; l'envoi du mail...d&eacute;sol&eacute; nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$alex\">classiquement</a>" );  
?>
 
 
ces renseignements <input type="text" name="toto" value="texte par défaut">  je les mets ou dans le htm
 
et ceux-ci dans le htm ou php ? $mavaleurdetoto=$_POST['toto'];  
 
Merci beaucoup c'est pour mon boulot car sur mon site perso le php, asp ... ne sont pas acceptés alors je ne peux pas faire d'essais chez moi


 
Bah tout est fait là :??: Y'a rien à rajouter de plus même si c'est risqué comme méthode. Maintenant si tu veux garder une trace autre que par mail il faut utiliser une bdd ou une autre méthode, y'a plus qu'à :D
 
Au passage l'excuse de la page perso... A l'heure actuelle toutes les pages perso proposent du mysql + php parfois plus à jour que les hébergeurs soit disant pro :whistle: Sinon suffit de tout installer à la maison :whistle:

Reply

Marsh Posté le 15-10-2006 à 15:03:51    

annemarie2 a écrit :

$from="From: $prenom $nom<$email>\r\n";  
$from.="Reply-To: $prenom $nom <$email>\n";


/!\ Alerte /!\ Faille de sécurité monstre /!\ /!\

Reply

Marsh Posté le 15-10-2006 à 17:24:28    

FlorentG a écrit :

/!\ Alerte /!\ Faille de sécurité monstre /!\ /!\


Une petite explications ou un lien vers un article ne serait pas un mal. Car là je vois pas ce qui peut être mauvais :/

Reply

Marsh Posté le 15-10-2006 à 17:24:28   

Reply

Marsh Posté le 15-10-2006 à 19:23:11    

Bonjour,  
 
Merci de vos réponses bien qu'elles soient mélangées avec le problème d'une autre personne (qui aurait dû à mon sens poster un nouveau sujet car j'ai du mal à m'y retrouver là-dedans...).
 
Mais ça va bien m'aider quand même pour comprendre comment créer mon script pour exécuter mon formulaire avec vos réponses, je vais essayer de nouveau.
 
Bonne soirée.


Message édité par Lorina2 le 15-10-2006 à 19:31:47
Reply

Marsh Posté le 15-10-2006 à 19:48:43    

est ce que le fait de coder un formulaire de contact qui envoi toutes les donnees a une adresse email, un email stocké ds le code donc, est susceptible de se faire intercepter par des bots a spam ?

Reply

Marsh Posté le 15-10-2006 à 20:02:20    

Excuse moi lorina2. Il y avait des réponses qui m'intéressaient d'après ta question alors j'ai continué.
Je repose des questions dans un autre message
Bonne soirée
 

Reply

Marsh Posté le 15-10-2006 à 23:26:49    

Non, c'est pas grave Anne-Marie, au début j'ai été surprise et j'ai eu du mal à m'y retrouver mais finalement, ça m'a bien servie à moi-même tes questions-réponses. Donc merci à toi !
Bonne soirée !


Message édité par Lorina2 le 15-10-2006 à 23:27:10
Reply

Marsh Posté le 15-10-2006 à 23:37:45    

FlorentG a écrit :

/!\ Alerte /!\ Faille de sécurité monstre /!\ /!\


 
 
J aime bien   :heink:

Reply

Marsh Posté le 16-10-2006 à 14:28:11    

gatsu35 a écrit :

Une petite explications ou un lien vers un article ne serait pas un mal. Car là je vois pas ce qui peut être mauvais :/


On peut s'en servir en construisant une entête pour faire du spam sans se mouiller :)

Reply

Marsh Posté le 16-10-2006 à 15:16:06    

bonjour,  
 

Citation :

et je suppose que tu n'as pas créé de fichier qui s'appelerait "action.php" c'est bien ça?


Non, justement car je ne sais pas le créer... Mais avec l'intervention de Anne-Marie et vos différentes réponses, je vais tenter de le faire sauf qu'il s'appellera différemment que action.php je changerai aussi dans le fichier html. Y'a pas de problème pour ça.
 
Mon problème c'est comprendre comment faire le script.  
 
Si je comprends bien dans un fichier php, c'est à dire pour moi ce sera executform.php, il faut que je reprenne toutes mes valeurs présentes dans mon formulaire html du genre :
 
Extrait de mon formulaire html (l'ensemble du code de ma page formulaire est déjà présente en premier message de ce post) :

Code :
  1. <input name="nom" type="text" size="40" tabindex="01" />
  2. <input type="radio" name="sexe" value="homme" tabindex="05" />
  3. <input type="radio" name="sexe" value="femme" tabindex="06" />
  4. <input type="checkbox" name="case" />Word
  5. <input type="checkbox" name="case" />Excel


script php :

Code :
  1. $nom=$_POST['nom'];
  2. $sexe=$_POST['value'];
  3. $case=$_POST['case'];


 
Au niveau du principe, c'est ça ?  
 
Une fois le formulaire html (enfin avec l'extension .php c'est à dire formulaire.php) puis le scrip php (executform.php) réalisé, est-ce possible de tester le résultat avec easyphp ?  
 
C'est à dire, si je veux faire un test en remplissant ma page formulaire, j'appuie sur Valider pour envoyer le message, est-ce que ça va m'envoyer un mail sur ma boite mail rien qu'avec easy php sans que mon site soit diffusé sur le net ? juste en local ?
 
Désolée de mes questions peut-être ridicules...
 
Merci de vos réponses.
 
Bonne journée !


Message édité par Lorina2 le 16-10-2006 à 15:19:41
Reply

Marsh Posté le 16-10-2006 à 23:40:35    

Pour compléter mon message précédent, Pour le script php, concernant les cases à cocher peut-être devrais-je mettre :

Code :
  1. $case=$_POST 'case'[];


 
à la place de :

Code :
  1. $case=$_POST['case'];


 
Et pour les boutons radio aussi ?  
 
Merci de vos réponses.
 
Bonne soirée.

Reply

Marsh Posté le 17-10-2006 à 02:28:28    

Non c'est bien $POST['case'];
Mais va peut être falloir donner une valeur à tes checkbox pour savoir laquelle est cochée (en admettant que tu en veuilles qu'une ;) )

Reply

Marsh Posté le 17-10-2006 à 10:39:05    

gatsu35 a écrit :

Une petite explications ou un lien vers un article ne serait pas un mal. Car là je vois pas ce qui peut être mauvais :/


 

supermofo a écrit :

J aime bien   :heink:


 
Haha, j'essaye de vous faire un peu réfléchir [:dawak]
 

Code :
  1. $from="From: $prenom $nom<$email>\r\n";


 
Suffit, d'envoyer le formulaire, avec dans prénom par exemple :

pouet\r\n
Bcc: email-a-spamer1@domaine.com, email-a-spamer2@domaine.com, email-a-spamer3@domaine.com\r\n\r\n


Ou quelque chose comme ça, et on peut du coup utiliser le formulaire comme robot de spam [:dawak]
 
Sur un site d'un client, un robot a essayé, voici l'email reçu :

name
    to
    Content-Transfer-Encoding: quoted-printable
    Content-Type: text/plain
    X-Mailer: Z-Mail (3.2.3 08feb96 MediaMail)
    Subject: is often boiled or baked
    bcc: firstladydes1986@aol.com,whole722eddie@aol.com,lmccall50@aol.com,
    redheadwandam@aol.com,cr8tve@aol.com,jluns13819@aol.com,tepc3@aol.com,
l    rwagner416@aol.com,iddma@aol.com
 
    one can hold the rashers
 
 
    7eebda5854bd18898c090c159ac83722
    .
 
entreprise
    ham2706@aol.com
mail
    ham2706@aol.com
message
    ham2706@aol.com


Il a essayé d'injection dans le champ name. Avec la faille, quelques adresses auraient dûes être spammées.
 
La solution est culcul, suffit de virer les \r et \n :

$prenom = str_replace(array("\r", "\n" ), $_POST['prenom']);
$nom = str_replace(array("\r", "\n" ), $_POST['nom']);
$email= str_replace(array("\r", "\n" ), $_POST['email']);
$from="From: $prenom $nom<$email>\r\n";


Message édité par FlorentG le 17-10-2006 à 10:39:53
Reply

Marsh Posté le 17-10-2006 à 11:22:51    

Bonjour, merci de ta réponse Leflo5
 
Donc faut que dans mon formulaire sous html j'ai ça ?

Code :
  1. <p>Les logiciels pack office que vous utilisez :<br /><br />       
  2. <label><input type="checkbox" name="case" tabindex="07" />Word</label><br />
  3. <label><input type="checkbox" name="case" value="1" />Excel</label><br />
  4. <label><input type="checkbox" name="case" value="2" />Access</label><br />
  5. <label><input type="checkbox" name="case" value="3" />PowerPoint</label><br />
  6. <label><input type="checkbox" name="case" value="4" />Publisher</label><br />
  7. <label><input type="checkbox" name="case" value="5" />Autre ou aucun</label>


 
et en code php :  

Code :
  1. $POST['case'];


ou  

Code :
  1. $case=$_POST['case'];


 
C'est ça ? Ou c'est autre chose que tu as voulu me dire ? Je ne sais pas si tu as vu, mon formulaire d'origine html est en tête de ce post...
 
Par contre, qu'en est-il de mes questions de mon message précédent ? à savoir :  

Citation :

Si je comprends bien dans un fichier php, c'est à dire pour moi ce sera executform.php, il faut que je reprenne toutes mes valeurs présentes dans mon formulaire html du genre :  
 
Extrait de mon formulaire html (l'ensemble du code de ma page formulaire est déjà présente en premier message de ce post) :  
 
Code html :

Code :
  1. <input name="nom" type="text" size="40" tabindex="01" />
  2. <input type="radio" name="sexe" value="homme" tabindex="05" />
  3. <input type="radio" name="sexe" value="femme" tabindex="06" />
  4. <input type="checkbox" name="case" />Word
  5. <input type="checkbox" name="case" />Excel


 
script php :  

Code :
  1. $nom=$_POST['nom'];
  2. $sexe=$_POST['value'];
  3. $case=$_POST['case'];


Au niveau du principe, c'est ça ?  
 
Une fois le formulaire html (enfin avec l'extension .php c'est à dire formulaire.php) puis le scrip php (executform.php) réalisé, est-ce possible de tester le résultat avec easyphp ?  
 
C'est à dire, si je veux faire un test en remplissant ma page formulaire, j'appuie sur Valider pour envoyer le message, est-ce que ça va m'envoyer un mail sur ma boite mail rien qu'avec easy php sans que mon site soit diffusé sur le net ? juste en local ?


 
Merci beaucoup de ton aide !


Message édité par Lorina2 le 24-10-2006 à 21:50:47
Reply

Marsh Posté le 17-10-2006 à 14:56:55    

C'est bien ça pour le html, dans l'idée ;) Même si personnellement je donnerais des valeurs plus explicites ;), Sauf que j'ai l'impression, t'as pas répondu là dessus, que tu veux pouvoir cocher plusieurs cases :??: Là ça va plus du coup :whistle: Là ça va pour une question à choix multiple à réponse unique
 
Pour du réponse multiple il faut faire:

Code :
  1. <input type="checkbox" name="case[]" value="word" /> Word


 
 
PAr contre pour le php, ça va pas se faire tout seul :) Dire qu'on récupère les valeurs du formulaires avec $_POST['valeur'] c'est bien mais faudra faire un traitement derrière :d
 
Mais dans l'idée pour te servir d'un champ, oui suffit de faire $champ=$_POST['mon_champ']
Ainsi t'as la valeur du champ du formulaire validé ;) A toi d'en faire ce que tu veux en faire après :)
 
Pour le cas énoncé plus haut, tu récupère un tableau dans $_POST['case'] donc en le parcourant t'auras toutes les cases cochées ;)

Reply

Marsh Posté le 17-10-2006 à 16:18:13    

1 - Ah pardon, oui je veux donner la possibilité de cocher plusieurs cases ! Sauf pour les boutons radio où bien entendu, il n'y aurait qu'un choix possible.  
 
Donc si je te suis bien, si je veux donner la possibilité de cocher plusieurs cases, je dois utiliser les choix multiple dont le code que tu viens de me donner :  

Code :
  1. <input type="checkbox" name="case[]" value="word" /> Word


 
Et si c'est un choix unique ou bouton radio, j'utilise :  

Code :
  1. <input type="checkbox" name="case" value="word" /> Word


Et là je ne mets pas les [] ?  
 
Pour le code php du choix multiple c'est $_POST['case']
et pour le choix unique c'est quoi alors ? $_POST 'case'[] ? ou autre ?
 
2 - Ouh la... il faut récupérer les données avec des $_POST puis faire un traitement ? C'est à dire pour envoyer vers mon adresse mail tu veux dire ? C'est compliqué à faire ça ?
 
Si c'est juste un if puis un else, je devrais pouvoir m'en sortir mais si c'est plus compliqué que ça là je vais être perdue...
 
3 - Une fois le formulaire html (enfin avec l'extension .php c'est à dire formulaire.php) puis le scrip php (executform.php) réalisé, est-ce possible de tester le résultat avec easyphp ?    
   
C'est à dire, si je veux faire un test en remplissant ma page formulaire, j'appuie sur Valider pour envoyer le message, est-ce que ça va m'envoyer un mail sur ma boite mail rien qu'avec easy php sans que mon site soit diffusé sur le net ? juste en local ?
 
4 - Tu donnerais des valeurs plus explicites à quoi ? tu veux dire remplacer les numéros par les valeurs c'est bien ça que tu voulais dire ? Si c'est ça, oui, je suis entièrement d'accord avec toi et je vais donc procéder de la sorte.
 
5 - Dois-je mettre des valeurs là aussi ?

Code :
  1. <p><label>Prénom : <input name="prenom" type="text" size="40" tabindex="02" /></label></p>
  2. <p><label>E-mail : <input name="mail" type="text" size="40" tabindex="03" /></label></p>
  3. <p><label>Tel : <input name="tel" type="text" size="10" maxlength="10" tabindex="04" /></label></p>


Du genre : rajouter value="prenom" puis value="mail" enfin value="tel" ?
 
Encore un GRAND merci pour tes réponses bien utiles pour une débutante...

Message cité 1 fois
Message édité par Lorina2 le 17-10-2006 à 16:27:48
Reply

Marsh Posté le 17-10-2006 à 19:21:09    

J appelle pas ca une faille de sécurité ... Plutot un oubli :)

Reply

Marsh Posté le 17-10-2006 à 19:26:12    

supermofo a écrit :

J appelle pas ca une faille de sécurité ... Plutot un oubli :)


Euh si quand-même, vu que tu peux spammer la terre entière en tout anonymat

Reply

Marsh Posté le 18-10-2006 à 00:43:38    

Bonsoir à vous Supermofo et FlorentG,  
 
Par hasard, mis à part votre débat sur la sécurité, sauriez-vous me répondre à mes questions de mon message précédent ?  
 
Je vous en remercie par avance si vous pouvez m'aider également !  
 
Bonne soirée !

Reply

Marsh Posté le 18-10-2006 à 02:07:30    

Lorina2 a écrit :

1 - Ah pardon, oui je veux donner la possibilité de cocher plusieurs cases ! Sauf pour les boutons radio où bien entendu, il n'y aurait qu'un choix possible.  
 
Donc si je te suis bien, si je veux donner la possibilité de cocher plusieurs cases, je dois utiliser les choix multiple dont le code que tu viens de me donner :  

Code :
  1. <input type="checkbox" name="case[]" value="word" /> Word


 
Et si c'est un choix unique ou bouton radio, j'utilise :  

Code :
  1. <input type="checkbox" name="case" value="word" /> Word


Et là je ne mets pas les [] ?  


Jusque là c'est ça. Faut essayer de comprendre pourquoi maintenant :whistle: Ce qui permet de comprendre la suite pour le php ;)
 
En faisant  

Code :
  1. <input type="checkbox" name="case[]" value="word" /> Word


tu crées un tableau "case". Parce que tu veux pouvoir sélectionner plusieurs cases :) A savoir que pour chaque case[] c'est en fait un tableau indexé numériquement en commençant par 0.
 

Citation :


Pour le code php du choix multiple c'est $_POST['case']
et pour le choix unique c'est quoi alors ? $_POST 'case'[] ? ou autre ?


Non pas du tout, tes données issues de formulaires html se retrouvent dans la variable $_POST en php. C'est en fait un tableau de toutes les valeurs envoyées par la méthode POST du protocole http :) Pour t'en convaincre fait

Code :
  1. print_r($_POST)


Tu comprendras le fonctionnement avec les tableaux dans ton formulaire et tu en déduiras comment recupérer ce qui t'intéresse ;)
 

Citation :

2 - Ouh la... il faut récupérer les données avec des $_POST puis faire un traitement ? C'est à dire pour envoyer vers mon adresse mail tu veux dire ? C'est compliqué à faire ça ?
Si c'est juste un if puis un else, je devrais pouvoir m'en sortir mais si c'est plus compliqué que ça là je vais être perdue...


Bah ça va pas se faire tout seul :d Rien de bien compliqué, jettes un oeil plus haut :)  
 
 

Citation :

3 - Une fois le formulaire html (enfin avec l'extension .php c'est à dire formulaire.php) puis le scrip php (executform.php) réalisé, est-ce possible de tester le résultat avec easyphp ?  


easyphp n'est ni plus ni moins qu'un serveur web (apache), php installé sur le serveur web et mysql (base de donnée) le tout installé automatiquement donc la réponse est oui, t'as un serveur web traitant le php à la maison :)
 

Citation :

C'est à dire, si je veux faire un test en remplissant ma page formulaire, j'appuie sur Valider pour envoyer le message, est-ce que ça va m'envoyer un mail sur ma boite mail rien qu'avec easy php sans que mon site soit diffusé sur le net ? juste en local ?


Si le pc est connecté au net, que tu penses à modifier la valeur du smtp utilisé par php avec le serveur smtp de ton fai par exemple y'aura pas de souci :)
la doc sur les mails en php
 

Citation :

4 - Tu donnerais des valeurs plus explicites à quoi ? tu veux dire remplacer les numéros par les valeurs c'est bien ça que tu voulais dire ? Si c'est ça, oui, je suis entièrement d'accord avec toi et je vais donc procéder de la sorte.


C'est ça.
 

Citation :

5 - Dois-je mettre des valeurs là aussi ?

Code :
  1. <p><label>Prénom : <input name="prenom" type="text" size="40" tabindex="02" /></label></p>
  2. <p><label>E-mail : <input name="mail" type="text" size="40" tabindex="03" /></label></p>
  3. <p><label>Tel : <input name="tel" type="text" size="10" maxlength="10" tabindex="04" /></label></p>


Du genre : rajouter value="prenom" puis value="mail" enfin value="tel" ?


Si tu veux une valeur par défaut oui, sinon laisse vide ;) Enfin ça tu peux regarder ce que ça donne en testant, n'ais pas peur de tester y'a rien à perdre à trifouiller pour comprendre comment ça marche :)
 
Sinon le site officiel de php est ton nouveau livre de chevet :whistle:
 

Citation :


Encore un GRAND merci pour tes réponses bien utiles pour une débutante...


De rien, mais maintenant y'a plus qu'à :d

Reply

Marsh Posté le 18-10-2006 à 02:22:17    

Vraiment merci de toutes tes précieuses explications !  
 
Je vais donc analyser, essayer de comprendre et tester tout ça...  
 
Encore merci ! Comme tu dis... y'a plus qu'à !! C'est pas le plus simple celui-là... lol
 
merci pour le livre de chevet PHP... TOut en anglais... j'ai plus qu'à là-aussi ! lol


Message édité par Lorina2 le 18-10-2006 à 02:24:35
Reply

Marsh Posté le 18-10-2006 à 10:58:24    

Lorina2 a écrit :

Bonsoir à vous Supermofo et FlorentG,  
 
Par hasard, mis à part votre débat sur la sécurité, sauriez-vous me répondre à mes questions de mon message précédent ?  
 
Je vous en remercie par avance si vous pouvez m'aider également !  
 
Bonne soirée !


 
Tu connais le mot capitalisme ?

Reply

Marsh Posté le 18-10-2006 à 12:03:23    

Bonjour supermofo,  

Citation :


Tu connais le mot capitalisme ?


Ben oui mais je ne vois pas le rapport avec mon message...
 
Y'a rien de mal dans ce que j'ai dit me semble-t-il... Sinon, désolée, c'était pas le but !
 
Bonne journée.


Message édité par Lorina2 le 18-10-2006 à 12:03:34
Reply

Marsh Posté le 19-10-2006 à 18:13:52    

Bonjour,  
 
Bon, après analyse et essai, voici le code php pour le traitement de l'envoi que j'ai mis en place en me servant de vos conseils.
 
Code :

Code :
  1. <html> 
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
  4.    <head>
  5.        <TITLE>Me contacter</TITLE>
  6.        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7.    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="form.css" />
  8. </head>
  9. <body> 
  10. <h1>Votre message m'a bien été envoyé !</h1> 
  11. <p>Je vous en remercie.</p> 
  12. </body> 
  13. </html> 
  14. <?php
  15. $monemail="monmail@club-internet.fr";
  16. $nom=$_POST['nom'];
  17. $prenom=$_POST['prenom'];
  18. $email=$_POST['email'];
  19. $tel=$_POST['tel'];
  20. $vue=$_POST['vue'];
  21. $outilsad[]=$_POST;
  22. $objet=$_POST['objet'];
  23. $message=$_POST['message'];
  24. $from="From: $prenom $nom<$email>\r\n";
  25. $from.="Reply-To: $prenom $nom<$email>\n";
  26. print_r($_POST);//C''est pour vérifier ce qu''il prend en compte... Je l''enlèverai dès que tout marchera
  27. if (mail($email, $message, $objet, $from)) //Est-ce obligatoire de mettre from ou pas ?
  28. echo("<p>Formulaire envoyé ! Je vous répondrais dès que possible.</p><br>" ); 
  29. else 
  30. echo("<p>Problème d'envoi... Veuillez revenir à la page précédente et vérifier que vous avez bien saisi tous les champs de saisi correctement et valider de nouveau le formulaire." );
  31. ?>


 
Mon souci... Dans php, j'ai configuré de la sorte le fichier php.ini :

Code :
  1. [mail function]
  2. ; For Win32 only.
  3. SMTP = mail.club-internet.fr
  4. smtp_port = 25
  5. ; For Win32 only.
  6. ;sendmail_from = monmail@club-internet.fr
  7. ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i" ).
  8. ;sendmail_path =


 
J'ai bien redémarrer mon easyphp 1.8 mais un message d'erreur persiste...
"Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in f:\program files\easyphp1-8\www\monsite\executform.php on line 29"
 
D'où peut venir le problème ?  
 
Comment et où puis-je rajouter ce ini_set() ?
 
Merci de votre aide précieuse.
 
Bonne soirée.


Message édité par Lorina2 le 19-10-2006 à 18:15:44
Reply

Marsh Posté le 19-10-2006 à 19:44:04    

T'es sure que c'est bien le bon php.ini que t'as modifié et que apache a bien redémarré?

Reply

Marsh Posté le 19-10-2006 à 20:03:21    

Ben oui.. Je t'assure...
 
L'adresse par contre quand j'essaye mon site devient 127.0.0.1 c'est normal ça ? y'a plus localhost c'est 127.0.01 maintenant...  
 
J'ai fait une recherche sur mon pc sur php.ini et il n'en a trouvé qu'un...  
 
J'ai même redémarré l'ordinateur, redémarré mon easyphp 1.8 et pareil... La même erreur...
 
Merci encore de ton aide !


Message édité par Lorina2 le 19-10-2006 à 20:06:02
Reply

Marsh Posté le 20-10-2006 à 00:30:54    

127.0.0.1 c'est l'ip de localhost, c'est normal :)
 
Si t'as bien modifié le php.ini je ne sais quoi te dire. Vérifie éventuellement que mail.club-internet.fr est bien résolu correctement et non associé à localhost parce qu'à part ça, si tu t'es pas trompée ça devrait marcher :)

Reply

Marsh Posté le 20-10-2006 à 03:53:46    

Alors, du coup, j'ai réinstallé mon easyphp... Et là, j'ai trouvé enfin découvert un deuxième fichier php.ini dans le dossier conf.files. J'ai donc apporté mes modifications et ça a marché.
 
Alors, j'ai par contre quelques petits soucis quand même...
 
Si je remplis bien tous mes champs, il me dit : Formulaire envoyé.
Résultat : l'emetteur reçoit bien une copie de son mail.  
Problème... : le destinataire (c'est à dire moi normalement...) ne reçoit rien ! c'est normal ?
 
Aussi, je ne comprends pas... La copie du message que l'emetteur reçoit comporte :  
De : NOM PRENOM
Date : date heure
A : e-mail de l'émetteur du message (et non le mien !)
Objet : contenu du message
Message : contenu de l'objet...
 
De plus, je voudrais que les infos complémentaires comme le téléphone et les options cochées soit reportés dans le corps du message également car il ne met que le strict minimum... Comment puis-je arranger ça ?
 
Merci encore de ton aide...


Message édité par Lorina2 le 20-10-2006 à 03:55:03
Reply

Marsh Posté le 20-10-2006 à 12:52:05    

Le from n'est pas obliguatoire et si tu l'indiques, ca remplacera celui du php.ini pour les envoie par SMTP (c'est le cas dans le cas présent)
 
$monemail n'est pas utilisé dans la partie que tu nous montres, normal que tu ne recoives rien dans ton adresse.
 
Si tu veux rajouter des données dans le corp du message, alors il faut que tu rajoutes du texte dans la variable "$message". Pour le moment, tu n'y mets que le contenu de "$_POST['message']". C'est donc normal que les autres éléments du formulaire ne soit pas indiqué dans le message envoyé.

Reply

Marsh Posté le 23-10-2006 à 01:54:31    

Bonjour et merci de tes réponses Omega2, c'est gentil !
 
Bon, donc j'ai supprimé les from. Maintenant, quand quelqu'un envoie un mail, il reçoit le mail de la part de moi-même à son intention. mais moi je ne reçois toujours rien (ce qui est normal puisque je n'ai pas réussi à configurer mon $monemail).
 
Pour $monemail, si il est utilisé...  

Code :
  1. $monemail="monmail@club-internet.fr";


Peut-être mal utilisé ça c'est possible... Faut-il l'utiliser autre part ? Si tu peux m'expliquer comment je dois faire stp...
 
Pour récupérer le texte du message, pour tout t'avouer, je ne sais ps comment je dois faire... Car je pensais que :

Code :
  1. $message=$_POST['message'];


récupérait le texte écrit dans message...
 
Si tu peux m'éclairer...
 
Aussi, comment je peux faire pour que dans le corps du message, j'ai tout le récapitulatif du formulaire rempli ?
 
Est-ce que ça ça peut marcher ?  

Code :
  1. $message=$message, $objet, $nom, $prenom, $tel, $vue, $outilsad;


 
Merci encore par avance de ton aide ou celle de quelqu'un d'autre.

Message cité 1 fois
Message édité par Lorina2 le 23-10-2006 à 01:57:49
Reply

Marsh Posté le 23-10-2006 à 10:25:49    

Lorina2 a écrit :

Bonjour et merci de tes réponses Omega2, c'est gentil !
 
Bon, donc j'ai supprimé les from. Maintenant, quand quelqu'un envoie un mail, il reçoit le mail de la part de moi-même à son intention. mais moi je ne reçois toujours rien (ce qui est normal puisque je n'ai pas réussi à configurer mon $monemail).
 
Pour $monemail, si il est utilisé...  

Code :
  1. $monemail="monmail@club-internet.fr";


Peut-être mal utilisé ça c'est possible... Faut-il l'utiliser autre part ? Si tu peux m'expliquer comment je dois faire stp...
 
Pour récupérer le texte du message, pour tout t'avouer, je ne sais ps comment je dois faire... Car je pensais que :

Code :
  1. $message=$_POST['message'];


récupérait le texte écrit dans message...
 
Si tu peux m'éclairer...
 
Aussi, comment je peux faire pour que dans le corps du message, j'ai tout le récapitulatif du formulaire rempli ?
 
Est-ce que ça ça peut marcher ?  

Code :
  1. $message=$message, $objet, $nom, $prenom, $tel, $vue, $outilsad;


 
Merci encore par avance de ton aide ou celle de quelqu'un d'autre.


 
Tu n'utilises pas la variable $monemail, c'est pour ça :)
 
$_POST['message'] te donne le contenu de la zone de texte 'message' de ton formulaire html :) Si tu veux autre chose il suffit de le rajouter :)
 
Pour concaténer en php, faut utiliser le point ;)

Reply

Marsh Posté le 24-10-2006 à 08:03:34    

Merci de tes réponses leflos5.
 
Oui, effectivement, je n'avais pas mis la bonne variable pour recevoir sur mon mail. Donc j'ai modifié et ça donne ceci :  

Code :
  1. <?php
  2. $monemail="monemail@club-internet.fr";//mon e-mail
  3. $nom=$_POST['nom'];
  4. $prenom=$_POST['prenom'];
  5. $email=$_POST['email'];
  6. $tel=$_POST['tel'];
  7. $vue=$_POST['vue'];//c'est une variable bouton radio
  8. $outilsad[]=$_POST; //variables cases cochées
  9. $objet=$_POST['objet'];//l'objet du message
  10. $message=$_POST['message'];//le message
  11. echo ("$nom,$prenom,$email,$tel,$vue,$outilsad,$objet,$message" ); //Rappel de ce qu'a entré l'emetteur dans le formulaire de contact
  12. if (mail($monemail, $objet, $message))
  13. echo("<p>Formulaire envoyé ! Je vous répondrais rapidement. Merci!</p><br>" ); 
  14. else 
  15. echo("<p>Problème d'envoi... Veuillez revenir à la page précédente et vérifier que vous avez bien saisi tous les champs de saisi correctement et valider de nouveau le formulaire." );
  16. ?>


 
Par contre, comment je peux faire pour avoir dans le message à la fois le message de la personne et le récapitulatif du formulaire ?
Quand la personne a validé le formulaire, je reçois le mail, j'aimerai avoir dans la partie message par exemple :  

Code :
  1. Nom Prénom e-mail
  2. Tél
  3. Vue
  4. outilsad
  5. message


J'ai essayé ceci :  

Code :
  1. $message=$message, $objet, $nom, $prenom, $tel, $vue, $outilsad, $message;
  2. puis
  3. $message=$_POST['message($message, $objet, $nom, $prenom, $tel, $vue, $outilsad)'];


ça ne marche pas...
J'ai essayé ceci :

Code :
  1. mail($monemail, $objet, $message, $nom, $prenom, $email, $tel, $vue, $outilsad, $message)


il me dit parse erreur... Et m'indique que j'ai dépassé car il est autorisé que 5 éléments dans cet endroit...
J'ai aussi essayé maladroitement je pense de concaténer :

Code :
  1. $message=.$message. .$objet. .$nom. .$prenom. .$tel. .$vue. .$outilsad.;
  2. puis
  3. $message=(.$message. .$objet. .$nom. .$prenom. .$tel. .$vue. .$outilsad.);


 
Aussi, j'ai un autre souci, maintenant, je reçois bien le message mais dans la partie de, c'est également mon adresse mail et non celle de l'émetteur... j'ai dû faire une erreur quelque part mais où...
 
Merci encore de votre aide !


Message édité par Lorina2 le 24-10-2006 à 08:04:33
Reply

Marsh Posté le 24-10-2006 à 09:41:22    

Oulalalala, là va falloir revoir les bases :(
 

Code :
  1. $message=$message, $objet, $nom, $prenom, $tel, $vue, $outilsad, $message;


Ca c'est n'importnawak, ',' ne fait strictement rien dans ce cas, à part une belle erreur                

Code :
  1. $message=$_POST['message($message, $objet, $nom, $prenom, $tel, $vue, $outilsad)'];


Ca c'est encore pire, $_POST est un tableau, et on n'a jamais vu de clé de tableau bizarroïde comme ça
 

Code :
  1. mail($monemail, $objet, $message, $nom, $prenom, $email, $tel, $vue, $outilsad, $message)


Ca ne peut évidemment pas fonctionner, il suffit de regarder la signature de mail.... Est-ce que t'as au moins lu la doc sur la fonction mail ? La liste des paramètres y est expliquée
 

Code :
  1. $message=.$message. .$objet. .$nom. .$prenom. .$tel. .$vue. .$outilsad.;


Là je sais pas pourquoi mais y'a des points partout  .$objet. .$nom.... Y'en a pas un peu trop là ? [:johneh]

Code :
  1. $message=(.$message. .$objet. .$nom. .$prenom. .$tel. .$vue. .$outilsad.);


Même chose avec des parenthèse qui ne font office que de décoration.
 
 
Bref, ce qui serait bien, c'est de te renseigner un petit peu sur la syntaxe PHP, ça ne sert à rien d'essayer comme ça dans tout les sens. La syntaxe obéit à des règles strict...
 

Code :
  1. $message =  $nom . ' ' . $prenom . ' ' . $email . "\n" . $tel . "\n" . $vue . "\n" . $outilsad . "\n" . $message;


"\n" étant un retour chariot


Message édité par FlorentG le 24-10-2006 à 09:42:04
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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