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 :

Code de captcha en JavaScript


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par d�faut Code de captcha en JavaScript
    Bonsoir � tous,

    J'ai trouv� cette source qui ma fois est plut�t sympa visuellement mais je ne vois pas ou s'effectue la v�rification du code ?
    voici le code :
    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    <html>
    <head>
    <script language="javascript" type="text/javascript">
    function getCaptcha() {
        var chars = "0Aa1Bb2Cc3Dd4Ee5Ff6Gg7Hh8Ii9Jj0Kk1Ll2Mm3Nn4Oo5Pp6Qq7Rr8Ss9Tt0Uu1Vv2Ww3Xx4Yy5Zz";
        var string_length = 5;
        var captchastring = '';
        for (var i=0; i<string_length; i++) {
            var rnum = Math.floor(Math.random() * chars.length);
            captchastring += chars.substring(rnum,rnum+1);
        }
        document.getElementById("randomfield").innerHTML = captchastring;
    }
    </script>
    <style>
    #captcha
    {
    height:38px;
    background-image:url(overlay1.png);
    background-repeat:no-repeat;
    font-size:25px;
    position:relative;
    }
    #captcha_gen
    {
    left:10px;
    top:3px;
    position:absolute;
    Font-family:Monospace;
    font-weight:bold;
    text-align:justify;
    }
    </style>
    </head>
    <body onload="getCaptcha();">
    <form name="randform">
    <table style="border:1px solid #ecece4">
    <tr><td colspan="2" align="center"><strong>Contact Us Form</strong></td></tr>
    <tr><td>Name</td><td><input type="text" id="txtname"/></td></tr>
    <tr><td>Contact no</td><td><input type="text" id="txtno"/></td></tr>
    <tr><td>Message</td><td><textarea id="msg" style="width:155px"></textarea></td></tr>
    <tr><td>Verify Yourself</td><td><input type="text" id="txtcode"/></td></tr>
    <tr>
    <td>
    </td>
    <td>
    <div id="captcha">
    <div id="captcha_gen">
    <label align="center" id="randomfield"></label>
    </div>
    </div><input type="button" value="Refresh" onClick="getCaptcha();"/></td></tr>
    <tr><td colspan="2" align="center"><input type="button" value="Submit" onclick="fnsubmit()"/></td></tr>
    </table>
    </form>
    </body>
    <html>
    je m'attendais ( je d�bute en java ) � trouver ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    if ********* {
         return true;
         }
         alert ('Le résultat est faux !');
         return false;
          }
    et peut on reloader l'image sans recharger la page ?
    Je vous remercie par avance de vos �claircissements et conseils
    cordialement scoubi

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par d�faut
    je pensais v�rifier le captcha cr�e avec celui tap� dans le champ de saisie comme cela :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Verif(){
            var d = document.getElementById('txtcode').value;
            var c = document.getElementById('getCaptcha').value;
            if (d == c) {
         return true;
         }
         alert ('Le captcha est faux !');
         return false;
          }
    mais �a ne fonctionne pas car je pense ne pas rep�rer les bonnes variables

  3. #3
    Mod�rateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par d�faut
    Euh. �a sert � quoi un captcha v�rifi� en JavaScript ?

    L'id�e n'est-elle pas, au d�part, d'emp�cher les robots d'entrer ? Tu te doutes bien que les robots ne vont pas ex�cuter un bout de JavaScript qui essaie de les repousser...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    il vaut voir la fonction fnsubmit
    mais je suis d'accord aucune v�rifications c�t� client en javascript doit �tre consid�r� comme valide.
    Il faut tout v�rifier c�t� serveur.
    Tout ce qu'un client envoie au serveur doit �tre v�rifi� par le serveur.
    La v�rification c�t� client n'est l� que pour sont confort.

    je constate que malheureusement de plus en plus on voit des site avec des widgets en tout genre qui offre au d�veloppeur des v�rifications et celui-ci s'en contente. une b�n�diction pour tous les crackers.
    les d�veloppeur oublient un peu trop que n'importe quoi peut se glisser entre leur pages web et leur serveur.

    un capcha en JS pour faire une d�mo d'un prototype d'IHM � un client pourquoi pas. mais au del� c'est un appel au piratage.

    A+JYT

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par d�faut
    Bonjour � vous deux et merci pour vos r�ponses,

    Si je me tourne vers le java c'est parce que je n'arrive pas � valider en php si le r�sultat est vrai ou faux.
    J'ai essay� une multitude de script, ils fonctionnent dans mon livre d'or mais quelque soit le r�sultat le message est quand m�me post� !
    car �tant plus que d�butant en php je n'arrive pas � programmer le return false et le return true.
    J'ai demand� une multitudes d'aide sur une multitudes de forums mais personne ne m'a dit bouges pas je vais t'expliquer comment par rapport � ton code g�rer cet �v�nement, sauf une personne qui m'a dit qu'une partie devait �tre dans la page et l'autre sur le serveur.
    J'essaie donc de me retourner vers le java
    maintenant si vous pouvez me d�coincer mon probl�me en php je suis preneur

  6. #6
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    le pincipe du captcha c'est que le message est post�
    le serveur r�cup�re le post est v�rifie la validit� du message
    captcha mais ausi donn�es
    si l'on des deux captcha o� contenu est incorrect le message est refus�.
    en guise de r�ponse le form est alors r�affich� avec les donn�es re�ues, un nouveau captcha et des m�ssage d'erreurs.

    tu ne peux pas faire �a avec du javascript
    imagine que tu veuille le faire en deux temps
    tu envoie le � r�ponse au captcha au serveur ind�pendement du form
    le serveur teste est dit OK ou KO
    et en fonction tu envoie le message ou pas.

    un petit malin mets un point d'arr�t sur ton js coupe l'herbe sous le pied de l'envoie du captcha et mets directement ok dans la r�ponse.
    ton form est post� sans v�rication.

    la seule solution qui marche c'est
    le serveur g�n�re un captcha et garde c�t� serveur le r�sultat attendu.
    il envoie le html au client qui affiche le formulaire et l'image du captcha
    le client remplie le formulaire et r�ponds au captcha.
    il envoie le formulaire
    le serveur re�oit tout et v�rifie le captcha
    si le captcha est ok il continue � trait� le message
    s'il est ko il renvoie le form au client avec un nouveau captcha

    si tu cherche � n'importe quel moment du process � s�par� le captcha du message tu ouvre une faille.
    A+JYT

  7. #7
    R�dacteur/Mod�rateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par d�faut
    Et on ne le dira jamais assez, Java et JavaScript n'ont rien � voir !

  8. #8
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par d�faut
    Bonjour sekaijin,
    Merci pour ta r�ponse, l� o� je coince c'est toujours en arrivant � ce point

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    <?php
      if (chk_crypt($_POST['code'])) 
         echo "Bravo";
         else echo "Erreur";
    ?>

    car il faut que je remplace le echo bravo et le echo erreur par envois le formulaire ou bloque tout
    et la c'est l� brasse coul�e !

    j'ai deux pages, une le guestbook.php qui affiche mon livre d'or et l'autre le writeguest.php qui �crit la valeur des trois variables dans cette derni�re qui est un fichier txt.
    j'ai choisi d'utiliser le captcha Cryptographp v1.4.
    j'ai donc install� la programmation du captcha dans ma page guestbook et une v�rification de ce dernier dans une page test.php, j'ai donc bien un retour bravo et erreur.
    il faudrait en cas d'un captcha valid� que j'envoi mes trois variable nom, mail et message dans ma page writguest.php qui ce charge de cr�er le message. mais sans quitter ma page guestbook qui est la page de visualisation de mon livre d'or ( j'esp�res �tre assez clair !!! )
    Je te remercie de t'int�resser � mon probl�me
    cordialement scoubi

  9. #9
    Membre �clair�
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    390
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 390
    Par d�faut
    J'ai un petit peu avanc� car au lieu de rediriger la v�rification du captcha vers une autre page ( verif.php), je l'ai directement inc�r� dans ma page guestbook.php.
    Mon probl�me maintenant reste apr�s le else stoper l'envoi du formulaire car quelque soit la valeur du captcha le message est envoy�, j'avais pens� mettre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    header('Location: guestbook.php');
    pour bloquer l'envoi du message
    mais il refuse d'ouvrir la page et j'ai une erreur 404 car je pense que je doit cr�er une boucle infinie car en y r�fl�chissant bien, comme � l'arriv�e sur la page le champ est vide il est forc�ment false !!!

  10. #10
    Expert confirm�
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Yvelines (�le de France)

    Informations professionnelles :
    Activit� : Urbaniste
    Secteur : Sant�

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par d�faut
    Bonjour,
    je pense qu'l te faut poser la question sur le forum php qui sera beacoup plus appropri�.

    le mieux tu poste ta question sur le forum php en mettnat la partie de code php qui te pose probl�me
    puis tu viens ici et tu ferme celle-ci en mettant un lien vers l'autre.

    ainsi lorsqu'une d'autre personne visiteront le forum il comprendront


    A+JYT

Discussions similaires

  1. Code java dans du Javascript
    Par ahulane dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 23/05/2007, 09h44
  2. [PHP-JS] Equivalent du code PHP suivant en Javascript
    Par Sayrus dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 19/05/2007, 10h51
  3. Executer une portion de code uniquement si le javascript est actif
    Par Rakken dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 3
    Dernier message: 07/04/2007, 10h23
  4. R�ponses: 2
    Dernier message: 07/07/2006, 21h11
  5. Deux code html choisi selon javascript
    Par franck.automaticien dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 30/06/2006, 09h28

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