teokal | 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 :
- <form action="formmail02.php" name="formulaire" method="post" enctype="multipart/form-data">
- <input name="test" type="hidden" value="1">
- <label for="nom">Nom</label>
- <input name="Nom" class="box" id="nom" value="" maxlength="30">
- <label for="nom"><br />
- <br />
- Prénom</label>
- <input name="Prenom" class="box" id="nom" maxlength="30">
- <br />
- <br />
- <label for="email">Email</label><input name="email" class="box" id="email" value="" maxlength="60">
- <label for="tel"><br />
- <br />
- Sujet</label>
- <input name="Sujet" class="box" id="tel" value="" maxlength="20">
- <label> <br />
- <br />
- <input type="radio" name="Metier" value="peintre" id="peintre">
- peintre </label>
- <label> <input type="radio" name="Metier" value="musicien" id="musicien">
- musicien </label>
- <br />
- <br />
- <label for="message">Message</label><textarea name="Message" class="box" id="message"></textarea>
- <br />
- <br />
- <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">
- </p>
- <p>
- <label> </label>NB : taille du fichier inférieure à 200 Ko </p>
- <p> </p>
- <p>
- <label> </label><input id="submit" name="envois" type="submit" value="Envoyer">
- </p>
- </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 :
- <?php
- error_reporting (E_ERROR | E_WARNING | E_PARSE);
- /*
- Envoi de formulaire sans javascript avec pièce jointe proposé par Pierre Pesty http://dev.ppan.net/
-
- Variables A MODIFIER selon vos besoins :
- */
- # remplacez login@fai par votre email
- $destinataire = "toto@toto.org";
- # nom et titre de page
- $pageName = "Formulaire de contact";
- # en-tête de l'objet du mail (option: vide)
- $entete = "concours";
- # envoi en copie carbone (option: vide)
- $email_cc = "";
- # envoi en copie cachée (option: vide)
- $email_bcc = "";
- # emplacement de la feuille de styles
- $cssform = "webdev_form.css";
- # nom du répertoire pour upload des pièces jointes
- # le répertoire (ici "upload" ) doit être créé sur le serveur
- $rep = "upload/"; // ne pas oublier le slash /
- # taille max de la pièce jointe (multiple de 1024)
- $taillemax = 2048000;
- # menu déroulant pour l'objet (option: vide)
- # page vers laquelle rediriger le script après envoi réussi
- $pageconfirme = "index.php";
- # traiter $_GET['mailOK'] dans $pageconfirme (ex. index.php) comme ceci :
- # if(isset($_GET['mailOK'])) echo "Votre message a été envoyé";
- /*
- fin des modifications
- */
- $erreur = false;
- $message = false;
- $focus = 0;
- # l'utilisateur a validé le formulaire
- if (!empty($_POST)) {
- # pièce jointe (nouveauté 12.10.2005)
- $piecejointe = "";
- if(!$erreur && strlen($_FILES['Fichier']['name'])) {
- $fichier = $_FILES['Fichier'];
- # upload du fichier sur le serveur
- $temp = $fichier['tmp_name'];
- $name = $fichier['name'];
- $size = $fichier['size'];
- $destination = $rep.$name;
- if($size > $taillemax)
- $erreur = "Taille du fichier $name > ".(int)($taillemax/1024)." Ko";
- elseif(!@is_uploaded_file($temp))
- $erreur = "Téléchargement du fichier $name impossible";
- elseif(!@move_uploaded_file($temp, $destination))
- $erreur = "Problème de transfert du fichier $name";
- if($erreur) $focus = 7;
- else {
- # lecture du type de fichier
- if(!function_exists('mime_content_type')) {
- function mime_content_type($fichier) {
- # ajouter autant de combinaisons que souhaitées
- $mime = array(
- '.gif' => 'image/gif',
- '.jpg' => 'image/jpeg',
- '.psd' => 'image/x-xwd',
- '.png' => 'image/png',
- '.txt' => 'text/plain',
- '.doc' => 'application/msword',
- '.xls' => 'application/vnd.ms-excel',
- );
- # par défaut
- if(!$type = $mime[strrchr($fichier,'.')]) $type = "application/octet-stream";
- return $type;
- }
- }
- /*
- pour utiliser mime_content_type()
- éditer le fichier php.ini et enlever le commentaire sur :
- extension=php_mime_magic.dll
- sous Windows ajouter ces 2 lignes :
- mime_magic.debug = On
- mime_magic.magicfile = "c:\chemin_du_fichier\magic.mime"
- NB : fonction non activée chez OVH
- */
- $mimetype = mime_content_type($destination);
- # lecture et conversion du fichier
- if($openf = @fopen($destination, "rb" )) {
- $fichier = fread($openf, filesize($destination));
- @fclose($openf);
- # encodage norme RFC 2045
- $piecejointe = chunk_split(base64_encode($fichier));
- } else {
- $erreur = "Problème de lecture du fichier $name";
- $focus = 7;
- }
- }
- }
- # pas d'erreur donc on continue
- if(!$erreur) {
- # traitement du tableau $_POST qui contient les paires name => value
- $message_final = "";
- foreach($_POST as $key => $value) {
- # la boucle passe les champs vides ou non désirés
- # pour passer d'autres champs les séparer par |
- if (!strlen($value) || eregi("(MAX_FILE_SIZE|Objet)", $key)) continue;
- $message_final .= "$key : ".strip_tags($value)."\n";
- }
- # formatage du message de confirmation affiché (option)
- # conversion des sauts de ligne et des caractères spéciaux
- $message = ereg_replace("(\n|\r|\r\n)", "<br>", htmlentities($message_final));
- # si $objets est un tableau : Objet = select donc index = $_POST['Objet']
- if(is_array($objets))
- $objet = "$entete ".$objets[$_POST['Objet']];
- # sinon Objet = input donc en français dans le texte !
- else
- $objet = "$entete ".$_POST['Objet'];
- # si l'email n'est pas renseigné on le remplace par celui
- # du destinataire, en ajoutant une alerte au message
- $final_mail = $_POST['Email'];
- if(empty($_POST['Email'])) {
- $final_mail = $destinataire;
- $message_final .= "\nNe pas répondre par mail : email absent.\n";
- }
- # en-têtes
- $headers = "From: ".$final_mail;
- if(strlen($email_cc))
- $headers .= "\nCC: ".$email_cc;
- if(strlen($email_bcc))
- $headers .= "\nBCC: ".$email_bcc;
- # hôte expéditeur
- $message_final .= "Hôte : ".gethostbyaddr($_SERVER['REMOTE_ADDR']);
- # si pièce jointe on ajoute l'en-tête spécifique avec séparateurs
- if(strlen($piecejointe)) {
- $boundary = "/-------".md5(uniqid(rand()))."-------/"; // séparateur
- $headers .= "\nMIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"$boundary\"\n";
- $message_final =
- "This is a multi-part message in MIME format.\n--$boundary\n".
- "Content-Type: text/plain; charset=ISO-8859-1\n".
- "Content-Transfer-Encoding: 7bit\n\n".
- "$message_final\n\n--$boundary\n".
- "Content-Type: $mimetype; name=\"$name\"\n".
- "Content-Transfer-Encoding: base64\n".
- "Content-Disposition: attachment; filename=\"$name\"\n\n".
- "$piecejointe\n--".
- $boundary."--\n";
- }
- # envoi du mail
- if (@mail($destinataire, stripslashes($objet), stripslashes($message_final), $headers)) {
- @unlink($destination); // suppression de la pièce jointe
- @header("Location: ".$pageconfirme."?mailOK=1" );
- exit;
- } else {
- $pageName = "Echec !";
- $erreur = "Echec de l'envoi ! Merci d'essayer encore";
- }
- } else {
- $pageName = "Erreur de saisie !";
- } // if(!$erreur)
- } // if ($_POST)
- ?>
|
Message édité par teokal le 27-09-2008 à 20:31:38
|