Formulaire - Vérification Javascript & Envoi en PHP

Formulaire - Vérification Javascript & Envoi en PHP - HTML/CSS - Programmation

Marsh Posté le 23-05-2012 à 12:11:53    

:hello: Hello,
 
Je cherche à créer un formulaire du type :
 
<form method="post" action="envoi.php">
 
en faisant, dans la partie <head>, un code javascript de vérification des champs (nom, adresse, mail, tel)
 
Il faudrait :
- qu'après l'alerte de non-remplissage (ou de mauvais remplissage) de champ obligatoire, le formulaire ne soit tout de même pas envoyé...
- que ne figurent sur le mail que le résultat des champs remplis et que les autres soient masqués (il y a beaucoup plus de champs que ceux cités précédemment)
 
Quelqu'un peut-il m'aider ?  :bounce:  
 
Merci d'avance  :)

Reply

Marsh Posté le 23-05-2012 à 12:11:53   

Reply

Marsh Posté le 23-05-2012 à 14:00:03    

Pour info, le code php appelé par le formulaire est le suivant :
 

Code :
  1. <?php
  2. $TO = "jmtellier@a2mpack.com";
  3. $h  = "From: " . $TO;
  4. $message = "";
  5. while (list($key, $val) = each($HTTP_POST_VARS)) {
  6.   $message .= "$key : $val\n";
  7. }
  8. mail($TO, $Sujet, $message, $h);
  9. Header("Location: merci.htm" );
  10. ?>

Reply

Marsh Posté le 23-05-2012 à 15:16:26    

Tu ferais mieux d'utiliser $_POST plutôt que $HTTP_POST_VARS.
 
Pour ta question, ben tu peux déjà faire sur l'événement onsubmit de la balise form une vérif (via une fonction) qui vérifiera si tous les champs du formulaire sont remplis correctement. Si tout est ok, la fonction renvoie true, sinon false et affiche le ou les msg d'erreurs qui vont bien.
 
Côté serveur, idem, sur le contenu de $_POST. Si tout le contenu est ok, on envoie le mail, sinon, on réaffiche le formulaire avec les msg d'erreurs.
 
Pour le contenu du mail, ben tu mets dans une variable de type tableau associatif, que les éléments de $_POST qui sont pas vides...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-05-2012 à 15:34:51    

Merci pour ta réponse rufo.
 
Malheureusement, je ne suis pas un pro, et le code php, ce n'est pas moi qui l'ai créé. Je l'ai juste récupéré.
 
Donc ok pour mettre les éléments de $_POST dans une variable de type tableau associatif, mais je ne sais pas comment faire.
Je ne sais même pas ce qu'est cette variable...  :??:
 
En ce qui concerne la vérification je passe par un code javascript.
 
J'avais bien le code php suivant :

Code :
  1. if (empty($_POST['nom']))
  2. {
  3. echo'Veuillez indiquer votre nom';
  4. exit();
  5. }
  6. if (empty($_POST['mail']))
  7. {
  8. echo'Veuillez indiquer votre adresse mail';
  9. exit();
  10. }


 
mais on m'a dit que pour une vérification de champ, il valait mieux passer par du javascript que du php... :??:


Message édité par Tehemgi le 23-05-2012 à 15:51:38
Reply

Marsh Posté le 23-05-2012 à 16:27:48    

"il valait mieux passer par du javascript que du php."
 
-> absolument faux d'un point de vue sécurité. Javascript pouvant être désactivé côté client, il faut toujours faire une vérif côté serveur. La vérif côté client ajoute simplement plus d'ergonomie.
 
Pour ton code php, faut pas faire de exit() : ça arrête brutalement le script, donc pas sûr que la page web résultante soit affichée avec tout ce qu'il faut :/
 
Plus généralement, ici, on ne te fera pas le boulot à ta place. On te donnera des pistes, mais ça sera à toi de mouiller le maillot. Sur le web, y'a pleins de tutos pour se mettre au php, js...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-05-2012 à 09:45:41    

Ok, mais dis-moi au moins par quoi remplacer exit() car je suis pris par le temps... :)

Reply

Marsh Posté le 24-05-2012 à 10:57:49    

tu le remplaces par une variable qui indiquera que le script a rencontré une erreur sur la validité des données du formulaire.
 
Perso, je doute que l'emplacement de l'affichage des messages d'erreur soit judicieux. Tu devrais plutôt les stocker dans un tableau associatif (clé = champ, valeur = msg d'erreur). Si le tableau est vide, pas d'erreur, tu continues le traitement, sinon, t'affiches les msgs d'erreur aux endroits appropriés (généralement proche de chaque champ concerné par une erreur).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-05-2012 à 11:21:17    

prends un script existant, ca sert a rien de reinventer la roue.
au pif dans google "form validator php"
http://www.html-form-guide.com/php [...] ation.html
tu remplace "php" par "javascript" et tu tombera sur des validators js


---------------
[VDS] rail vesa, bras ecran, support TV / [ACH] des machins
Reply

Marsh Posté le 24-05-2012 à 14:47:42    

J'ai essayé de remplacer

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


par

Code :
  1. foreach($_POST as $key => $val){}


Mais là, dans le mail, rien ne s'affiche.
Je pense qu'il doit me manquer une variable... :non:

Reply

Sujets relatifs:

Leave a Replay

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