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 :

Adapter une source javascript dans mon site


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Adapter une source javascript dans mon site
    Bonsoir à tous,

    J'ai récupéré une source qui m'intéresse pour essayer de sécuriser mon livre d'or.
    Voici le code :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>BotBoot</title>
     
        <script type="text/javascript">
        var a = Math.ceil(Math.random() * 10);
        var b = Math.ceil(Math.random() * 10);       
        var c = a + b
        function DrawBotBoot()
        {
            document.write("What is "+ a + " + " + b +"? ");
            document.write("<input id='BotBootInput' type='text' maxlength='2' size='2'/>");
        }    
        function ValidBotBoot(){
            var d = document.getElementById('BotBootInput').value;
            if (d == c) return true;        
            return false;
            }
        </script>
    </head>
    <body>
     
    Are you human?<br />
     
    <script type="text/javascript">DrawBotBoot()</script>
    <input id="Button1" type="button" value="Check" onclick="alert(ValidBotBoot());"/>
    </body>
    </html>

    Cela fonctionne sans problème sauf que voudrais le transformer un peu de façon à n'avoir une alerte que si le résultat est faux en bloquant l'envoi du message dans mon livre d'or et à l'inverse permettre l'envoi du message sans une alerte comme quoi le résultat est bon.
    Voici le code de ma page :
    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
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    <!DOCTYPE html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <meta name="description" CONTENT="">
    <meta HTTP-EQUIV="IMAGETOOLBAR" content="no" SCROLLING="yes" >
    <meta name="keywords" CONTENT="">
    <head>
    <title>Livre d'or</title>
    <script src="jquery.js"></script>
     
    <style type="text/css">
     body { 
      background: #000000; 
      color: #000000;
      font-family: Verdana ;
     color:white;
    font-size:14px;
        }
    </style> 
    <style type="text/css">
    div.grande 
        { 
     
        width : 70%; 
        } 
    p{
      line-height:25px;
    }
    </style>
     
    <?php
    if(isset($_POST['nobot'])) {
        // la case est cochée
    }
    ?>
        <script type="text/javascript">
        var a = Math.ceil(Math.random() * 10);
        var b = Math.ceil(Math.random() * 10);       
        var c = a + b
        function DrawBotBoot()
        {
            document.write("What is "+ a + " + " + b +"? ");
            document.write("<input id='BotBootInput' type='text' maxlength='2' size='2'/>");
        }    
        function ValidBotBoot(){
            var d = document.getElementById('BotBootInput').value;
            if (d == c) return true;        
            return false;
            
        }
        </script> 
     
    </head>
    <body>
     
     
     
    <form method=post action=writeguest.php 
    onSubmit='if ( this.nom.value.length < 2 ) { return false ;}' >
      <BR><p align="center"><FONT FACE="gabriola" size="9" color="white">titre</FONT></BR><FONT FACE="gabriola" size="6" color="white">Livre d'or </FONT></p></FONT> 
     
    <table border="0" align="center"> 
    <tr><td><img src="test.jpg"></td><td>
     <Div>
    <table>
    <tr><td><FONT FACE="monotype corsiva" size="4" color="white">Nom :</FONT></td>
        <td><input type=text name=nom size=25 ></td></tr>
    <tr><td><FONT FACE="monotype corsiva" size="4" color="white">Mail :</FONT></td>
        <td><input type=text name=mail size=25 ></td></tr>
    <tr><td><FONT FACE="monotupe corsiva" size="4" color="white">Message:</FONT></td><td colspan=1>
            <textarea name=message rows=6 cols=47></textarea>
        </td></tr>
    </table>
    </Div>
    </td><td><img src="livre.jpg"></td></td></tr></table>
    <!-- On affiche l'image générée par notre script -->
    <script>
     
     
    $(document).ready(function(){
     
        $('<div style="text-align:center;"><input type="checkbox" name="nobot" required="true"> Je confirme ne pas être un robot</div>').prependTo($('#maDiv'));
    });
     
    </script>
     
     
    <div style="text-align:center;"><div id="maDiv"></div></div></BR>
    <div style="text-align:center;"><script type="text/javascript">DrawBotBoot()</script></div>
     
     
    <div style="text-align:center;"><INPUT border=0  src="envoyer.jpg" type=image onclick="alert(ValidBotBoot());" name="sub" value="envoyer" /></div>
    </form>
    <div style="text-align:center;"><a href="http://index.php"onMouseOver="window.status='';return true"><img src="bfermer.jpg"  BORDER="0" alt=""/></a></div>
    <div align="center" ><div class="grande" style="border:3px solid #000000; padding 1px;"><div style="text-align:left;"><FONT FACE="gabriola" size="6" color="white"  >Vos impressions, commentaires:</FONT></div></div>
    <div align="center" >
    <div class="grande" style="border:3px solid #FFFFFF; padding 3px;"><div style="text-align:left;">
     <?php include("guestbook.txt"); ?></div></div>
    </body>
    </html>

    Merci par avance à tous ceux qui pourront m'apporter un peu d'aide car malgré de très nombreux tests je n'y arrive pas !!!
    Amicalement scoubi

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonsoir,

    plusieurs choses me chagrinent dans ton code
    - la méthode document.write() est à bannir !
    - je vois une balise <Div> alors que c'est <div> (avec un "d" minuscule) .
    - des balises <FONT> sont pour du HTML 4 or d'après ton DOCTYPE tu es en HTML 5, utilise le CSS.
    - des balises <BR> alors que c'est <br/>.
    -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    form method=post action=writeguest.php 
    onSubmit='if ( this.nom.value.length < 2 ) { return false ;}' >
    les événements s'écrivent en minuscules : onclick, onload, onsubmit, etc.
    les valeurs des attributs d'une balise HTML doivent s'écrire entre guillemets : method="post", action="writeguest.php".
    -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <meta name="description" CONTENT="">
    <meta HTTP-EQUIV="IMAGETOOLBAR" content="no" SCROLLING="yes" >
    les valeurs et attributs d'une balise HTML doivent s'écrire en minuscules.

  3. #3
    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 et merci pour toutes ces précisions que je vais tacher de corriger, je suis débutant et je fait des erreurs.

    J'ai fait des recherches concernant document.write()
    Le comportement de cette fonction est problématique. Il n'est pas constant et induit les débutants en erreur. Lors du chargement d'une page HTML cette fonction ajoute la chaine passée en paramètre au contenu. Une fois la page chargée, cette fonction remplace totalement le HTML de la page par la chaine en paramètre.

    On a vu plus haut que le chargement d'une page HTML est séquentiel, c'est un exercice périlleux pour le navigateur que de rajouter du contenu à une page en train de charger. Si c'est périlleux, les bugs ne sont pas loin. Pour éviter les comportements « étranges » il ne faut pas utiliser document.write() !

    L'alternative est — encore une fois — d'utiliser les standards et plus précisément le DOM. Si on veut rajouter du contenu à une page HTML le plus simple est de placer un élément vide à l'endroit voulu et de le remplir une fois la page chargée. Si l'on applique les recommandations sur la place de <script> , c'est simple et direct :
    Etant attaqué depuis un mois par un robot spameur je cherche des solutions pour supprimer tous les messages ( environs 50 par heure !!! ), j'ai ajouté en jquery pourtant une case à cocher que ce robot passe sans soucis !!!
    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
    <?php
    if(isset($_POST['nobot'])) {
        // la case est cochée
    }
    ?>
     
    <script>
     
     
    $(document).ready(function(){
     
        $('<div style="text-align:center;"><input type="checkbox" name="nobot" required="true"> Je confirme ne pas être un robot</div>').prependTo($('#maDiv'));
    });
     
    </script>
     
     
    <div style="text-align:center;"><div id="maDiv"></div></div><br/>


    voici un message par exemple ( j'ai modifié les url pour les rendre inactives ):

    azart11 ngmrb@szer.fr
    le: 09/02/2014 à 10:32:02
    îíëàéí êàçèíî ðóëåòêà îáûãðàòü <a h r e f= hhhh://kingteingria.hotbox.ru/page1848. >ñëîò àâòîìàò blackbird èãðàòü îíëàéí áåñïëàòíî</a> êàçèíî ðóëåòêà ìèíèìàëüíàÿ ñòàâêà <a h r e f= [url]hhhh://kinngria.hotbox.ru/page858.[/u rl] >èãðîâûå àâòîìàòû áåçðåãèñòðàöèè áåçïëàòíî</a> èãðà îíëàéí áåñïëàòíî êîðîëü ïîêåðà, îíëàéí êàçèíî âèí xp <a h r e f= [url]hhhh://kigria.hotbox.ru/page2304.l[/u r l] >èíòåðíåò êàçèíî wm àçàðò</a> êàçèíî êîðîíà ìîñêâà <a h r e f= [url]hhhh://.ru/page1320.l[/u rl] >ìèðîâîé ïîêåð îíëàéí</a>
    peux tu m'aider pour adapter ce code à mes besoins ?
    Cordialement

    Scoubi

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    Si j'ai bien compris ton script tu demandes à l'utilisateur de réaliser une opération arithmétique assez simple et tu poses une question assez basique :
    "Etes-vous un humain ?"
    Pour sécuriser ton livre d'or tu devrais utiliser un captcha. Sur ce point je ne suis pas en mesure de t'aider car cela se gère au niveau du serveur. En attendant de mettre ce captcha au point tu devrais verrouiller ton livre d'or.

  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
    Merci pour ta réponse,

    J'ai déjà essayé de mettre un captcha en partant de celui ci http://www.captcha.fr/index.php?langue=fr&page=34 mais sans succès car je n'arrive pas en php après à gérer l'évènement si c'est bon je post si c'est mauvais je stop, il faut donc que j'arrive à modifier cette partie du code qui pourrait m'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (d == c) return true;        
            return false;
    De la façon suivante :
    si l'addition est bonne on envoi le formulaire, si elle est fausse message et on n'envoi pas le formulaire tant que l'addition n'est pas bonne.
    Peux tu m'aider ?
    Cordialement
    Scoubi

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par scoubi77 Voir le message
    si l'addition est bonne on envoi le formulaire, si elle est fausse message et on n'envoi pas le formulaire tant que l'addition n'est pas bonne.
    Peux tu m'aider ?
    sur ce point la FAQ javascript peut t'aider :
    http://javascript.developpez.com/faq...s#ControleForm

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. impossible d'adapter une source javascript.
    Par boy30 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/12/2010, 02h15
  2. Création ou Intégration d'une galerie vidéo dans mon site web
    Par [ced] dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 08/02/2010, 22h04
  3. Insérer une typo spéciale dans mon site internet
    Par Roxanecine dans le forum Autres langages pour le Web
    Réponses: 0
    Dernier message: 24/12/2007, 00h03
  4. Réponses: 4
    Dernier message: 30/05/2007, 18h05
  5. [MySQL] Comment créer une sous catégorie dans mon site ?
    Par plex dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/08/2006, 09h59

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