probleme verification formulaire

probleme verification formulaire - HTML/CSS - Programmation

Marsh Posté le 27-09-2008 à 20:24:50    

Impossible de faire une verif des champs de mon formulaire. J'ai essayer pas mal de trucs mais rien ne fonctionne.
Le formulaire est envoyé meme si les champs sont vide.
je voudrais faire une verif javascript avant que le formulaire ne soit envoyé.
voici le code de mon formulaire brut, que dois je ajouter et ou ?
Il me faudrait aussi le javascript à placer en haut de la page.
D'avance merci
 
 

Code :
  1. <form action="formmail02.php" name="formulaire" method="post" enctype="multipart/form-data">
  2.    <input name="test" type="hidden" value="1">
  3.    <label for="nom">Nom</label>
  4.      <input  name="Nom" class="box" id="nom" value="" maxlength="30">
  5.    <label for="nom"><br />
  6.    <br />
  7.    Pr&eacute;nom</label>
  8.    <input  name="Prenom" class="box" id="nom" maxlength="30">
  9.                 <br />
  10.                 <br />
  11.                 <label for="email">Email</label><input  name="email" class="box" id="email" value="" maxlength="60">
  12.    <label for="tel"><br />
  13.    <br />
  14.    Sujet</label>
  15.    <input  name="Sujet" class="box" id="tel" value="" maxlength="20">
  16.    <label> <br />
  17.    <br />
  18.    <input type="radio" name="Metier" value="peintre" id="peintre">
  19.    peintre </label>
  20.    <label> <input type="radio" name="Metier" value="musicien" id="musicien">
  21.    musicien </label>
  22.                 <br />
  23.                 <br />
  24.                 <label for="message">Message</label><textarea name="Message" class="box"  id="message"></textarea>
  25.                 <br />
  26.                 <br />
  27.                 <label for="fichier">Pièce jointe</label><input type="hidden" name="MAX_FILE_SIZE" value="2048000"><input  name="Fichier" type="file" class="box" id="fichier" size="35">
  28.    </p>
  29.  <p>
  30.    <label>&nbsp;</label>NB : taille du fichier inférieure à 200 Ko  </p>
  31.   <p> </p>
  32.    <p>
  33.      <label>&nbsp;</label><input id="submit" name="envois" type="submit" value="Envoyer">
  34.     </p>
  35.    </form>


 
 
voici mon fichier script php utilisé pour envoyer le mail, mais je ne pense pas que le probleme vienne de lui, il fonctionne
 

Code :
  1. <?php
  2. error_reporting (E_ERROR | E_WARNING | E_PARSE);
  3. /*
  4. Envoi de formulaire sans javascript avec pièce jointe proposé par Pierre Pesty http://dev.ppan.net/
  5. Variables A MODIFIER selon vos besoins :
  6. */
  7. # remplacez login@fai par votre email
  8. $destinataire = "toto@toto.org";
  9. # nom et titre de page
  10. $pageName = "Formulaire de contact";
  11. # en-tête de l'objet du mail (option: vide)
  12. $entete = "concours";
  13. # envoi en copie carbone (option: vide)
  14. $email_cc = "";
  15. # envoi en copie cachée (option: vide)
  16. $email_bcc = "";
  17. # emplacement de la feuille de styles
  18. $cssform = "webdev_form.css";
  19. # nom du répertoire pour upload des pièces jointes
  20. # le répertoire (ici "upload" ) doit être créé sur le serveur
  21. $rep = "upload/"; // ne pas oublier le slash /
  22. # taille max de la pièce jointe (multiple de 1024)
  23. $taillemax = 2048000;
  24. # menu déroulant pour l'objet (option: vide)
  25. # page vers laquelle rediriger le script après envoi réussi
  26. $pageconfirme = "index.php";
  27. # traiter $_GET['mailOK'] dans $pageconfirme (ex. index.php) comme ceci :
  28. # if(isset($_GET['mailOK'])) echo "Votre message a été envoyé";
  29. /*
  30. fin des modifications
  31. */
  32. $erreur = false;
  33. $message = false;
  34. $focus = 0;
  35. # l'utilisateur a validé le formulaire
  36. if (!empty($_POST)) {
  37. # pièce jointe (nouveauté 12.10.2005)
  38. $piecejointe = "";
  39. if(!$erreur && strlen($_FILES['Fichier']['name'])) {
  40.  $fichier = $_FILES['Fichier'];
  41. # upload du fichier sur le serveur
  42.  $temp = $fichier['tmp_name'];
  43.  $name = $fichier['name'];
  44.  $size = $fichier['size'];
  45.  $destination = $rep.$name;
  46.  if($size > $taillemax)
  47.   $erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";
  48.  elseif(!@is_uploaded_file($temp))
  49.   $erreur = "Téléchargement du fichier $name impossible";
  50.  elseif(!@move_uploaded_file($temp, $destination))
  51.   $erreur = "Problème de transfert du fichier $name";
  52.  if($erreur) $focus = 7;
  53.  else {
  54.   # lecture du type de fichier
  55.   if(!function_exists('mime_content_type')) {
  56.    function mime_content_type($fichier) {
  57.     # ajouter autant de combinaisons que souhaitées
  58.     $mime = array(
  59.     '.gif' => 'image/gif',
  60.     '.jpg' => 'image/jpeg',
  61.     '.psd' => 'image/x-xwd',
  62.     '.png' => 'image/png',
  63.     '.txt' => 'text/plain',
  64.     '.doc' => 'application/msword',
  65.     '.xls' => 'application/vnd.ms-excel',
  66.     );
  67.     # par défaut
  68.     if(!$type = $mime[strrchr($fichier,'.')]) $type = "application/octet-stream";
  69.     return $type;
  70.    }
  71.   }
  72.   /*
  73.    pour utiliser mime_content_type()
  74.    éditer le fichier php.ini et enlever le commentaire sur :
  75.    extension=php_mime_magic.dll
  76.    sous Windows ajouter ces 2 lignes :
  77.    mime_magic.debug = On
  78.    mime_magic.magicfile = "c:\chemin_du_fichier\magic.mime"
  79.    NB : fonction non activée chez OVH
  80.   */
  81.   $mimetype = mime_content_type($destination);
  82.   # lecture et conversion du fichier
  83.   if($openf = @fopen($destination, "rb" )) {
  84.    $fichier = fread($openf, filesize($destination));
  85.    @fclose($openf);
  86.    # encodage norme RFC 2045
  87.    $piecejointe = chunk_split(base64_encode($fichier));
  88.   } else {
  89.    $erreur = "Problème de lecture du fichier $name";
  90.    $focus = 7;
  91.   }
  92.  }
  93. }
  94. # pas d'erreur donc on continue
  95. if(!$erreur) {
  96.  # traitement du tableau $_POST qui contient les paires name => value
  97.  $message_final = "";
  98.  foreach($_POST as $key => $value) {
  99.   # la boucle passe les champs vides ou non désirés
  100.   # pour passer d'autres champs les séparer par |
  101.   if (!strlen($value) || eregi("(MAX_FILE_SIZE|Objet)", $key)) continue;
  102.   $message_final .= "$key : ".strip_tags($value)."\n";
  103.  }
  104.  # formatage du message de confirmation affiché (option)
  105.  # conversion des sauts de ligne et des caractères spéciaux
  106.  $message = ereg_replace("(\n|\r|\r\n)", "<br>", htmlentities($message_final));
  107.  # si $objets est un tableau : Objet = select donc index = $_POST['Objet']
  108.  if(is_array($objets))
  109.   $objet = "$entete ".$objets[$_POST['Objet']];
  110.  # sinon Objet = input donc en français dans le texte !
  111.  else
  112.   $objet = "$entete ".$_POST['Objet'];
  113.  # si l'email n'est pas renseigné on le remplace par celui
  114.  # du destinataire, en ajoutant une alerte au message
  115.  $final_mail = $_POST['Email'];
  116.  if(empty($_POST['Email'])) {
  117.   $final_mail = $destinataire;
  118.   $message_final .= "\nNe pas répondre par mail : email absent.\n";
  119.  }
  120.  # en-têtes
  121.  $headers = "From: ".$final_mail;
  122.  if(strlen($email_cc))
  123.   $headers .= "\nCC: ".$email_cc;
  124.  if(strlen($email_bcc))
  125.   $headers .= "\nBCC: ".$email_bcc;
  126.  # hôte expéditeur
  127.  $message_final .= "Hôte : ".gethostbyaddr($_SERVER['REMOTE_ADDR']);
  128.  # si pièce jointe on ajoute l'en-tête spécifique avec séparateurs
  129.  if(strlen($piecejointe)) {
  130.   $boundary = "/-------".md5(uniqid(rand()))."-------/"; // séparateur
  131.   $headers .= "\nMIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"$boundary\"\n";
  132.   $message_final =
  133.    "This is a multi-part message in MIME format.\n--$boundary\n".
  134.    "Content-Type: text/plain; charset=ISO-8859-1\n".
  135.    "Content-Transfer-Encoding: 7bit\n\n".
  136.    "$message_final\n\n--$boundary\n".
  137.    "Content-Type: $mimetype; name=\"$name\"\n".
  138.    "Content-Transfer-Encoding: base64\n".
  139.    "Content-Disposition: attachment; filename=\"$name\"\n\n".
  140.    "$piecejointe\n--".
  141.    $boundary."--\n";
  142.  }
  143.  # envoi du mail
  144.  if (@mail($destinataire, stripslashes($objet), stripslashes($message_final), $headers)) {
  145.   @unlink($destination); // suppression de la pièce jointe
  146.   @header("Location: ".$pageconfirme."?mailOK=1" );
  147.   exit;
  148.   } else {
  149.   $pageName = "Echec !";
  150.   $erreur = "Echec de l'envoi ! Merci d'essayer encore";
  151.   }
  152. } else {
  153.  $pageName = "Erreur de saisie !";
  154. } // if(!$erreur)
  155. } // if ($_POST)
  156. ?>


Message édité par teokal le 27-09-2008 à 20:31:38
Reply

Marsh Posté le 27-09-2008 à 20:24:50   

Reply

Sujets relatifs:

Leave a Replay

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