IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Obliger à laisser un champ vide


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2015
    Messages : 17
    Points : 10
    Points
    10
    Par défaut Obliger à laisser un champ vide
    Bonjour,
    Pour empêcher l'envoi de spam via les formulaires, je souhaite mettre un champ caché (hidden) que seuls les robots vont remplir automatiquement.
    Maintenant j'ai un souci !
    Je ne trouve pas de script me permettant de vérifier que le champ est OBLIGATOIREMENT vide ... je ne trouve que du php et le fonction if empty...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (document.formulaire.protect.value == "") 
    		{
    	  alert("Nous n'acceptons pas les spams"); return false;
    		}
    Merci de votre aide

  2. #2
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,
    je ne trouve que du php et le fonction if empty...
    C'est normal, la protection doit se faire côté serveur que ce soit :

    via la méthode POST : if(!empty($_POST['protect']))exit();
    ou via la méthode GET : if(!empty($_GET['protect']))exit();

    Pour terminer le script, un simple appel à la fonction exit() suffit.

  3. #3
    Membre habitué
    Homme Profil pro
    rien
    Inscrit en
    Décembre 2015
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : rien

    Informations forums :
    Inscription : Décembre 2015
    Messages : 282
    Points : 144
    Points
    144
    Par défaut
    Je ne trouve pas de script me permettant de vérifier que le champ est OBLIGATOIREMENT vide ... je ne trouve que du php et le fonction if empty...
    Peut-être que je ne comprend pas la question, mais pourquoi tu ne le vides pas avant de l'envoyer ?
    avec javasScript ce sera facile de vider le champ :

    - Tu trouves le champ par son nom.
    - Tu effaces son contenu.

    Par exemple tu le nommes avec la commande "name" : name=mon_champ_secret
    Ensuite pour effacer son contenu tu fais : document.nom_du_champ.value="";

    Tu peux faire aussi d'autres manières, avec document.getElementById('nom_du_champ')... et par JSon mais dans ce cas simple je trouve que c'est mieux d'utiliser "document.nom_du_champ".

  4. #4
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Un exemple...
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <form action="email.php" method="post" id="formulaire" name="formulaire">
    	<div>
    		<input type="hidden" id="protect" name="protect" value="" />
     
    		<label for="name">Nom : </label>
    		<input type="text" id="name" name="name" size="50" maxlength="32" value="" /><br />
     
    		<label for="email">E-mail : </label>
    		<input type="text" id="email" name="email" size="50" maxlength="128" value="" /><br />
     
    		<label for="message">Message : </label>
    		<textarea id="message" name="message" cols="64" rows="10"></textarea><br />
     
    		<input type="submit" id="sendmail" name="sendmail" value="Envoyer" />
    	</div>
    </form>
    Dans ce formulaire (utilisant la méthode post), nous avons un champs de type "hidden" correspondant à une chaine vide. Mais bien qu'il soit caché à l'utilisateur, ce champ sera (comme les autres) toujours transmis au serveur.

    Dans le cas présent - et lors d'une utilisation normale du formulaire (*) -, étant donné que le champ a été caché à l'utilisateur, nous sommes assurés que $_POST['protect'] sera toujours vide (empty($_POST['protect']) renvoie true).

    (*) Un robot déstiné à "spammer" (n'utilise pas Javascript) aura tendance à remplir TOUS les champs et la fonction empty($_POST['protect']) renverra false.

    Sachant cela, le test en Javascript (même modifié)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(document.formulaire.protect.value != ''){
    	// protect.value != ''
    	alert("Nous n'acceptons pas les spams"); return false;
    }
    est inutile et... il serait préférable d'ajouter un CAPTCHA (même fait maison).

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/09/2015, 15h19
  2. [MySQL] Laisser un champ vide
    Par allanibu dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/06/2008, 13h38
  3. Laisser un champ vide
    Par ledude89 dans le forum Modélisation
    Réponses: 4
    Dernier message: 09/06/2008, 11h51
  4. [conception] champs vides ou plusieurs tables ?
    Par in dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 17/02/2004, 08h41
  5. tri avec les champs vides en dernier
    Par r-zo dans le forum Requêtes
    Réponses: 11
    Dernier message: 03/09/2003, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo