Validation champs formulaire de type File

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Validation champs formulaire de type File

Re: Validation champs formulaire de type File

par sadeq » 13 avr. 2011, 12:04

Faudra aussi mettre un antivirus et un antispyware du côté du serveur d'upload. :wink:

Re: Validation champs formulaire de type File

par moogli » 13 avr. 2011, 11:59

j'ajouterais qu'il faut de toute façon faire la vérification en php car tu ne peut être certain de ce que tu va recevoir on peut valider ton formulaire en passant outre le JS ;)

@+

Re: Validation champs formulaire de type File

par sadeq » 13 avr. 2011, 01:28

voici une correction:
$("#ajout").submit(function() {
   
                              valid=true;
                              
                                 
                                 if($("#image").val()=="") {
                                 
                                 $("#image").next(".error").fadeIn(1000).text("nom d'image requis");
                                 $("#image").css("border-color","#f55");
                                 $("#image").css("background-color","#fcc");
                                 valid=false;
                                 
                                                }
                                                
                                 else if(!$("#image").val().match(/(.*?)\.(jpg|jpeg|png|gif)$/)){
                                    $("#image").next(".error").fadeIn(1000).text("Extension invalide");
                                    $("#image").css("border-color","#f55");
                                    $("#image").css("background-color","#fcc");
                                    valid=false;
                                 }
                                                
                                    else {
                                 $("#image").next(".error").slideUp();
                                 $("#image").css("border-color","#eee");
                                 $("#image").css("background-color","#fff");
                                 }
                                 
                                 
                  
                                 return valid;               
   
                              });

Validation champs formulaire de type File

par Fabien000 » 12 avr. 2011, 23:16

Bonjour,

Je suis en train de réaliser un formulaire en php, jusque la rien de bien compliqué.

J'ai inséré un champ de type "file" qui permet d'uploader un fichier.
Or je souhaiterais qu'avec du jquery, l'extension du fichier dans le champs du formulaire soit validé lorsque l'internaute soumet le formulaire.
En gros, je souhaiterais que la vérification se fasse avant l'action du formulaire. Si cette vérification n'est pas validée, alors on arrête le script (et donc le formulaire n'est pas envoyé).

Voici mon code php :

Code : Tout sélectionner

<form name="ajout" id="ajout" method="post" action="" enctype="multipart/form-data"> <fieldset> <p id="item_formulaire">Image <span class="oblig">*</span></p> <p id="champ_formulaire"><input id="image" name="image" type="file" /><span class="error"></span><input type="hidden" name="MAX_FILE_SIZE" value="12345" /></p> </fieldset> <fieldset> <p id="item_formulaire"><input type="submit" name="valider" value="Ajouter l\'actualit&eacute;" /></p> </fieldset><br /> <p class=\"oblig\">* Champs obligatoires</p> </form>'
JE vous ai fais grâce d'une grande partie du formulaire :)

J'ai ensuite crée ce script en Jquery :

Code : Tout sélectionner

// JavaScript Document $(function() { $("#ajout").submit(function() { valid=true; if($("#image").val()=="") { $("#image").next(".error").fadeIn(1000).text("Email requis"); $("#image").css("border-color","#f55"); $("#image").css("background-color","#fcc"); valid=false; } else if(!$("#email").val().match(/@"(.*?)\.(jpg|jpeg|png|gif)$"/)){ $("#image").next(".error").fadeIn(1000).text("Extension invalide"); $("#image").css("border-color","#f55"); $("#image").css("background-color","#fcc"); valid=false; } else { $("#image").next(".error").slideUp(); $("#image").css("border-color","#eee"); $("#image").css("background-color","#fff"); } return valid; }); } );
J'ai pourtant bien relié mes fichiers dans mon <head>, et j'ai vérifié, il n'y a pas de problème de lien.

Quelqu'un a une idée ?

Merci d'avance