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

Langage PHP Discussion :

Livre d'or avec captcha


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 12
    Par défaut Livre d'or avec captcha
    bonjour à tous,

    je viens d'installer un captcha dans mon livre d'or, le seul problème que je rencontre, c'est que vu que j'utilise la mYSQL pour stoker les message, donc même si les gens ne tape pas le code, le message ce valide en base de donné et s'affiche sur le site.

    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
    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    <?php 
    $pageTitle = "Livre d'Or";
    $pageID = "livre";
    require('../website_sources/debut.inc.php'); 
    require('../website_sources/context.inc.php');
    $cryptinstall="../website_pages/crypt/cryptographp.fct.php";
    include $cryptinstall;
    if (chk_crypt($_POST['code']))
    ?> 
     
     
            <style type="text/css">
            form, .pages
            {
                text-align:center;
            }
            </style>
     
        <form method="post" action="livre.xml?<?php echo SID; ?>">
    	<div class="block_titre">
    	  <h1 align="center"><u>Livre d'Or</u></h1>
    </div>
    <div class="block_contenu" style="text-align: center; padding: 20px 0px;"><i>Notre radio vous plaît ?</i>&nbsp;&nbsp;&nbsp;&nbsp;Laissez-nous un message !</div>
    	<div class="block_contenu" style="text-align: center; font-size: 9px; padding: 20px 150px;">
        </div>
            <p align="center">
                Pseudo : <input name="pseudo" /><br /><br />
                Message :<br />
                <textarea name="message" rows="8" cols="35"></textarea>
                <tr><td><div align="center">
      			  <?php dsp_crypt(0,1); ?>
    			  </div></td>
      			</tr>
      			<tr>
      			  <td>Recopier le code:
      			  <input name="code" type="text" maxlength="4">
      			  </td>
      			</tr><br />
                <br /><input type="submit" value="Envoyer" />
                  </p>
                  </form>
     
     
        <p class="pages">
     
      <?php
    mysql_connect("localhost", "rng", "pass");
    mysql_select_db("rng");
     
    // --------------- Etape 1 -----------------
    // Si un message est envoyé, on l'enregistre
    // -----------------------------------------
     
    if (isset($_POST['pseudo']) AND isset($_POST['message']) AND isset($_POST['code']))
    {
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
        $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message
        $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
     
    	$code = mysql_real_escape_string(htmlspecialchars($_POST['code'])); // De même pour le code
     
        // On peut enfin enregistrer :o)
        mysql_query("INSERT INTO site_livre VALUES('', '" . $pseudo . "', '" . $message . "','". $code ."')");
    }
     
     
    // --------------- Etape 2 -----------------
    // On écrit les liens vers chacune des pages
    // -----------------------------------------
     
    // On met dans une variable le nombre de messages qu'on veut par page
    $nombreDeMessagesParPage = 8; // Essayez de changer ce nombre pour voir :o)
    // On récupère le nombre total de messages
    $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM site_livre');
    $donnees = mysql_fetch_array($retour);
    $totalDesMessages = $donnees['nb_messages'];
    // On calcule le nombre de pages à créer
    $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    echo 'Page(s) : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="livre.xml?page=' . $i . '">' . $i . '</a> ';
    }
    ?>
     
    </p>
     
    <?php
     
     
    // --------------- Etape 3 ---------------
    // Maintenant, on va afficher les messages
    // ---------------------------------------
     
    if (isset($_GET['page']))
    {
            $page = intval($_GET['page']); // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
            $page = 1; // On se met sur la page 1 (par défaut)
    }
     
    // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
     
    $reponse = mysql_query('SELECT * FROM site_livre ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
     
    while ($donnees = mysql_fetch_array($reponse))
    {
            echo '<br /><p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
    }
     
    mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
    ?>
     
    <?php require('../website_sources/fin.inc.php'); ?>
    merci de vos futures réponse.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Quelle est ta difficulté ? Ne fait pas ton insertion si le captcha n'est pas bon.

    Si le code du captcha est $_POST['code'] je ne vois pas trop pourquoi tu l'inseres dans ta table.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 12
    Par défaut
    en gros le problème, c'est que si tu rentre pas le code le message est quand meme enregistré en base de donné et afficher aussi...

    donc je me demande ou j'ai plus merder...

    exemple ici http://r-n-g.fr/livre.xml

    si tu mets pas le code tu verra que ton message s'affiche et moi je veux pas

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ne fait pas ton insertion si le captcha n'est pas bon.

    Si le code du captcha est $_POST['code'] je ne vois pas trop pourquoi tu l'inseres dans ta table.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 12
    Par défaut
    MAJ

    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
    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    <?php 
    $pageTitle = "Livre d'Or";
    $pageID = "livre";
    require('../website_sources/debut.inc.php'); 
    require('../website_sources/context.inc.php');
    $cryptinstall="../website_pages/crypt/cryptographp.fct.php";
    include $cryptinstall;
    if (chk_script($_POST['code']))
    ?> 
     
     
            <style type="text/css">
            form, .pages
            {
                text-align:center;
            }
            </style>
     
        <form method="post" action="livre.xml?<?php echo SID; ?>">
    	<div class="block_titre">
    	  <h1 align="center"><u>Livre d'Or</u></h1>
    </div>
    <div class="block_contenu" style="text-align: center; padding: 20px 0px;"><i>Notre radio vous plaît ?</i>&nbsp;&nbsp;&nbsp;&nbsp;Laissez-nous un message !</div>
    	<div class="block_contenu" style="text-align: center; font-size: 9px; padding: 20px 150px;">
        </div>
            <p align="center">
                Pseudo : <input name="pseudo" /><br /><br />
                Message :<br />
                <textarea name="message" rows="8" cols="35"></textarea>
                <tr><td><div align="center">
      			  <?php dsp_crypt(0,1); ?>
    			  </div></td>
      			</tr>
      			<tr>
      			  <td>Recopier le code:
      			  <input name="code" type="text" maxlength="4">
      			  </td>
      			</tr><br />
                <br /><input type="submit" value="Envoyer" />
                  </p>
                  </form>
     
     
        <p class="pages">
     
      <?php
    mysql_connect("localhost", "rng", "pass");
    mysql_select_db("rng");
     
    // --------------- Etape 1 -----------------
    // Si un message est envoyé, on l'enregistre
    // -----------------------------------------
     
    if (isset($_POST['pseudo']) AND isset($_POST['message']))
    {
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
        $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message
        $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
     
        // On peut enfin enregistrer :o)
        mysql_query("INSERT INTO site_livre VALUES('', '" . $pseudo . "', '" . $message . "')");
    }
     
     
    // --------------- Etape 2 -----------------
    // On écrit les liens vers chacune des pages
    // -----------------------------------------
     
    // On met dans une variable le nombre de messages qu'on veut par page
    $nombreDeMessagesParPage = 8; // Essayez de changer ce nombre pour voir :o)
    // On récupère le nombre total de messages
    $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM site_livre');
    $donnees = mysql_fetch_array($retour);
    $totalDesMessages = $donnees['nb_messages'];
    // On calcule le nombre de pages à créer
    $nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    echo 'Page(s) : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++)
    {
        echo '<a href="livre.xml?page=' . $i . '">' . $i . '</a> ';
    }
    ?>
     
    </p>
     
    <?php
     
     
    // --------------- Etape 3 ---------------
    // Maintenant, on va afficher les messages
    // ---------------------------------------
     
    if (isset($_GET['page']))
    {
            $page = intval($_GET['page']); // On récupère le numéro de la page indiqué dans l'adresse (livreor.php?page=4)
    }
    else // La variable n'existe pas, c'est la première fois qu'on charge la page
    {
            $page = 1; // On se met sur la page 1 (par défaut)
    }
     
    // On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;
     
    $reponse = mysql_query('SELECT * FROM site_livre ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);
     
    while ($donnees = mysql_fetch_array($reponse))
    {
            echo '<br /><p><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . $donnees['message'] . '</p>';
    }
     
    mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)
    ?>
     
    <?php require('../website_sources/fin.inc.php'); ?>
    mais bon sa marche tjrs lol

    Fatal error: Call to undefined function chk_script() in /home/rng/www/website_pages/guestbook.php on line 8

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton include ne doit pas etre bon.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Création d'un livre d'or avec dreamweaver
    Par stanley dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 24/10/2008, 17h07
  2. problème dans un livre d'or avec php et mysql
    Par Invité dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/12/2005, 18h04

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