Répondre à la discussion
Affichage des résultats 1 à 25 sur 25

débugage code php



  1. #1
    LTHOMAS

    Angry débugage code php


    ------

    Bonjour, j'ai réalisé un livre d'or pour mon site web en m'inspirant de codes "touts faits" car je ne maitrise pas totalement le php...
    Le livre d'or fonctionne.
    Le problème c'est le spam ! J'ai voulu réaliser un antispam affichant une image avec un texte à recopier.
    Le code me tire l'image aléatoirement et l'affiche, mais l'action if ne fonctionne pas ! Pouvez vous m'aider à trouver l'erreur ? J'ai déjà essayé tellement de combinaisons qui ne fonctionnent pas...



    <p>Laissez nous un message !</p>

    <p>
    Pseudo : <br /> <input name="pseudo" /><p />
    Message :<br />
    <textarea name="message" rows="8" cols="35"></textarea> <br />

    </p>

    <p>Anti-spam : </p>

    <p><label for="code"></label><img src="<?php echo $img_nospam['img']; ?>" width="98" height="41"" /><br /><input type="text" name="code" id="code" /><input type="hidden" id="image" name="image" value="<?php echo $img_nospam['num']; ?>" /></p>
    <input type="submit" value="Envoyer" />
    </form>

    <p align="left" class="pages">



    <?php

    function NoSpamQuestion($mode = 'ask', $answer = 0)
    {
    $array_pictures = array(); $j = 0;

    $array_pictures[$j]['num'] = $j;
    $array_pictures[$j]['img'] = "as1.jpg";
    $array_pictures[$j]['question'] = "Recopiez le nom de l'instrument inscrit sur l'image";
    $array_pictures[$j]['answer'] = "batterie";
    $j++;

    $array_pictures[$j]['num'] = $j;
    $array_pictures[$j]['img'] = "as2.jpg";
    $array_pictures[$j]['question'] = "Recopiez le nom de l'instrument inscrit sur l'image";
    $array_pictures[$j]['answer'] = "clavier";
    $j++;

    $array_pictures[$j]['num'] = $j;
    $array_pictures[$j]['img'] = "as3.jpg";
    $array_pictures[$j]['question'] = "Recopiez le nom de l'instrument inscrit sur l'image";
    $array_pictures[$j]['answer'] = "basse";
    $j++;


    if ($mode != 'ans')
    {
    // on est en mode 'tirer au sort', on tire une image aléatoire
    $lambda = rand(0, count($array_pictures)-1);
    return $array_pictures[$lambda];
    }
    else
    {
    // on demande une vraie réponse
    foreach($array_pictures as $i => $array)
    {
    if ($i == $answer)
    {
    return $array;
    break;
    };
    };
    }; // Fin if ($mode != 'ans')
    };
    ?>


    <?php

    // on tire au sort une question
    $img_nospam = NoSpamQuestion();
    ?>


    <?php


    // on ne traite le formulaire que si le bouton submit a été cliqué
    if ($_POST['submit'])
    {


    // on compare la 'vraie' réponse et celle du visiteur
    if ($code != strtolower($img_nospam['answer']))
    {
    // le formulaire s'arrête ici
    echo "<p>Vous n'avez pas répondu correctement à la question ....</p>";
    }
    else
    {




    mysql_connect("localhost", "**********", "**********");
    mysql_select_db("coursphp");


    $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité

    $message = htmlentities($_POST['message'], ENT_QUOTES); // 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 )
    mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");

    mysql_close();



    };
    };
    ?>



    Merci beaucoup pour votre aide !

    -----

  2. Publicité
  3. #2
    JPL
    Responsable des forums

    Re : débugage code php

    Il y a une balise Code qui permet de poster du code en gardant les indentations, ce qui est plus lisible.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  4. #3
    Bruno

    Re : débugage code php

    Salut,

    Au lieu de te baser sur un nombre limité d'images (ce qui constitue une protection ridicule), utilise des générateurs de captcha existants (par exemple, cryptographp).

  5. #4
    invite765732342432
    Invité

    Re : débugage code php

    Citation Envoyé par Bruno Voir le message
    Au lieu de te baser sur un nombre limité d'images (ce qui constitue une protection ridicule), utilise des générateurs de captcha existants (par exemple, cryptographp).
    Comme dit ailleurs, je pense qu'un générateur fait maison est plus efficace pour un site personnel qu'un générateur de captcha déjà existant:
    Plus un générateur est répandu, plus il est intéressant à cracker. Il existe des bots déjà conçus pour la certains (la plupart ?).
    Tandis que si tu fais ton propre générateur, il faut alors que le mec qui pourrit ton forum développe lui-même, à la main son propre bot. Et ça, ça en refroidit beaucoup.

    Les seuls qui tenteront le coup seront ceux qui veulent du mal à ce site précis. Si c'est un site perso, il y a très peu de chances que quelqu'un essaye. Si c'est un site pro... alors là, c'est plus discutable.

  6. A voir en vidéo sur Futura
  7. #5
    invite765732342432
    Invité

    Re : débugage code php

    Citation Envoyé par LTHOMAS Voir le message
    Le problème c'est le spam ! J'ai voulu réaliser un antispam affichant une image avec un texte à recopier.
    Le code me tire l'image aléatoirement et l'affiche, mais l'action if ne fonctionne pas ! Pouvez vous m'aider à trouver l'erreur ? J'ai déjà essayé tellement de combinaisons qui ne fonctionnent pas...
    Bonjour LTHOMAS,
    La remarque que j'ai faite au-dessus est valable, mais attention, il faut quand même que ton anti-spam ait un minimum (même bas) d'efficacité

    Là, j'ai un gros problème avec ta page: j'ai l'impression que tu ne stockes nulle part le résultat que tu avais affiché lors de la saisie. Du coup, tu ne peux pas savoir s'il a raison ou tort dans sa réponse... non ? (j'ai peut-être mal lu ton code, je suis un peu crevé )
    Bon, je suis effectivement fatigué: tu le stockes dans le champs hidden... (euh... ça c'est vraiment basique, il faudra à peu près une seconde à quelqu'un qui veut coder un bot pour y arriver , encore faut-il qu'il le veuille)

    ALors, si je regarde le code: if ($code != strtolower($img_nospam['answer']))
    $code => c'est la réponse de l'utilisateur après appui sur Submit, non ? normalement il vaut mieux utiliser $_GET["code"] ou $_POST["code"] en fonction de la méthode de submit choisie dans le tag < FORM >
    ensuite,...

    ouh là là, c'est terrible ton code

    Euh, je ne vais pas tout débugger, j'ai trop de mal à piger les détails, je vais juste te donner des indications:

    - la fonction NoSpamQuestion fait trop de choses
    - ta fonction renvoie en fonction des paramètres des objets de type différents ! C'est le meilleur moyen de se paumer !
    - tu l'appelles toujours sans aucun argument, donc tu ne passes jamais en mode 'answer' => je crois que c'est ça l'erreur pour laquelle tu as posté: il faut changer $img_nospam = NoSpamQuestion(); en $img_nospam = NoSpamQuestion('ans'); quand on teste la réponse, non ?
    - dans cette fonction, tu initialises un param à 'ask' par défaut mais tu le teste != de 'ans', ne serait-il pas plus logique de tester == 'ask' ?
    - $array_pictures[$j]['num'] = $j; => tu as déjà $j dans le tableau, pourquoi rajouter un champs 'num' ?

    Si tu fais des études d'info, il va falloir t'entrainer sur des langages fortement typés (genre C, pascal, ...). Ca te donneras de meilleures base avant d'attaquer le php.
    Car le php est génial quand on sait déjà bien coder, mais on peut faire des usines à gaz si on n'a pas l'habitude de langages plus structurés.

    Bon courage

  8. #6
    LTHOMAS

    Re : débugage code php

    Merci pour vos réponses. J'avais prévenu que je n'ai fait que de l'assemblage !
    Je n'y comprends pas grand chose moi non plus.

    Ce que je peux faire c'est refaire un code entièrement moi même, mais j'aurai besoin d'aide car sinon il fonctionnera dans 10 ans.

    1ere question : pour la fonction rand :
    $lambda = rand(0, count($array_pictures)-1);
    est ce que si je marque :
    $a = rand(0,10); a prend une valeur aléatoire entre 0 et 10 ?

  9. Publicité
  10. #7
    Towl

    Re : débugage code php

    Oui, tout a fait. plus d'infos sur http://fr.php.net/rand
    Ce site la est tres bien fait, il te suffit de tapper le nom de la fonction recherchée dans le moteur de recherche pour obtenir l'aide ainsi que des avis / exemples d'utilisation
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  11. #8
    LTHOMAS

    Re : débugage code php

    J'ai réalisé un nouveau code entirèrement moi même

    <p>Laissez nous un message !</p>

    <p>Pseudo : <br />
    <input name="pseudo" />
    <br />
    Message : <br />
    <textarea name="message" rows="8" cols="35"></textarea>
    <br />
    Anti-spam : <br />
    <p><label for="code"></label><img src="<?php echo $img_nospam; ?>" width="98" height="41"" /><br />
    <input type="text" name="code" id="code" />
    <input type="submit" value="Envoyer" />

    <?php

    $num_img = rand(0,5); // on tire un numéro d'image aléatoire


    // On associe le numéro à l'image

    if($num_img == 0)
    {
    $img_nospam = "as0.jpg";
    $codej = "guitare";
    }

    if($num_img == 1)
    {
    $img_nospam = "as1.jpg";
    $codej = "batterie";
    }

    if($num_img == 2)
    {
    $img_nospam = "as2.jpg";
    $codej = "clavier";
    }

    if($num_img == 3)
    {
    $img_nospam = "as3.jpg";
    $codej = "basse";
    }

    if($num_img == 4)
    {
    $img_nospam = "as4.jpg";
    $codej = "trompette";
    }

    if($num_img == 5)
    {
    $img_nospam = "as5.jpg";
    $codej = "clarinette";
    }


    if($_POST['submit'] // On test le bouton envoyer
    {

    if(code == codej)
    {

    // On traite le formulaire normalement :


    mysql_connect("localhost", "**********", "**********");
    mysql_select_db("coursphp");


    $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité

    $message = htmlentities($_POST['message'], ENT_QUOTES); // 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 )
    mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");

    mysql_close();


    else

    {
    // le formulaire s'arrête ici
    echo "<p>Vous n'avez pas répondu correctement à la question ....</p>";
    }

    }

    ?>


    Dites moi ce que vous en pensez. J'ai mis 5 images différentes, sur la version définitive il y en aura bien plus.

    Merci pour votre aide.

  12. #9
    Bruno

    Re : débugage code php

    C'est illisible, met ça dans une balise code ou utilise pastebin stp....

  13. #10
    Towl

    Re : débugage code php

    Apres un coup de vim pour réindenter tout cela, j'obtiens :
    Code:
    <p>Laissez nous un message !</p>
    
    <p>Pseudo : <br />
    <input name="pseudo" />
    <br />
    Message : <br />
    <textarea name="message" rows="8" cols="35"></textarea>
    <br />
    Anti-spam : <br />
    <p><label for="code"></label><img src="<?php echo $img_nospam; ?>" width="98" height="41"" /><br />
    <input type="text" name="code" id="code" />
    <input type="submit" value="Envoyer" />
    
    <?php
    
    $num_img = rand(0,5); // on tire un numéro d'image aléatoire
    
    
    // On associe le numéro à l'image
    
    if($num_img == 0)
    {
            $img_nospam = "as0.jpg";
            $codej = "guitare";
    }
    
    if($num_img == 1)
    {
            $img_nospam = "as1.jpg";
            $codej = "batterie";
    }
    
    if($num_img == 2)
    {
            $img_nospam = "as2.jpg";
            $codej = "clavier";
    }
    
    if($num_img == 3)
    {
            $img_nospam = "as3.jpg";
            $codej = "basse";
    }
    
    if($num_img == 4)
    {
            $img_nospam = "as4.jpg";
            $codej = "trompette";
    }
    
    if($num_img == 5)
    {
            $img_nospam = "as5.jpg";
            $codej = "clarinette";
    }
    
    
    if($_POST['submit'] // On test le bouton envoyer
    {
    
            if(code == codej)
            {
    
                    // On traite le formulaire normalement :
    
    
                    mysql_connect("localhost", "**********", "**********");
                    mysql_select_db("coursphp");
    
    
                    $pseudo = htmlentities($_POST['pseudo'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
    
                    $message = htmlentities($_POST['message'], ENT_QUOTES); // 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 )
                    mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')");
    
                    mysql_close();
    
    
                    else
    
                    {
                            // le formulaire s'arrête ici
                            echo "<p>Vous n'avez pas répondu correctement à la question ....</p>";
                    }
    
            }
    
    ?>
    On remarque directement un probleme : Le dernier else est inclus dans le if (probleme d'accolades).

    Ensuite, ca m'a l'air correcte, un peu sous optimal et simpliste (nom de l'image toujours le même), mais ca devrait fonctionner. Enfin j'ai juste survoler le code, pas lu en détail, j'ai le php en horreur
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  14. #11
    Bruno

    Re : débugage code php

    Pour la grosse et immonde suite de if :

    Code PHP:
    $correspondance = array("guitare""batterie""clavier""basse""trompette""clarinette") ;

    $img_nospam "as".intval($num_img).".jpg" ;
    $codej $correspondance[intval($num_img)] ; 
    C'est mieux non ?

  15. #12
    JPL
    Responsable des forums

    Re : débugage code php

    Bruno, tu n'es pas obligé d'utiliser des termes méprisants si la structure du programme ne te plaît pas.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  16. Publicité
  17. #13
    Bruno

    Re : débugage code php

    Re,

    J'ai modifié ton code (sur base de celui de Towl), voici ce que j'ai noté :

    - tu génères ton nombre aléatoire mais tu l'affiches avant, or la logique de PHP veut qu'il soit exécuté de haut en bas : il faut donc générer le nombre avant de l'afficher, sinon on affiche rien du tout et PHP crie que la variable n'existe pas
    --> on place donc rand(0,5); en début de page
    - pour poster le message, il te faut un formulaire, en html on utilise la balise <form> en précisant la page sur laquelle on doit envoyer les infos (livredor.php) et la méthode (post, mais ça n'a pas d'importance)

    Code PHP:
    <form action="livredor.php" method="post">
    // le formulaire...
    </form
    (j'en ai profité pour mieux indenter le code)

    - la longue la partie de if, c'est toujours mieux si on arrive à réduire au maximum : si tu ne comprends pas le code, dis-le mais normalement ça devrait aller (j'ai viré intval() vu qu'on contrôle son type)

    Code PHP:
    $correspondance = array("guitare""batterie""clavier""basse""trompette""clarinette") ;

    $img_nospam "as".$num_img.".jpg" ;
    $codej $correspondance[$num_img] ; 

    - l'indentation : pense à bien indenter ton code en utilisant la touche TAB et non les espaces

    - dernier point : je m'interroge sur le if($_POST['submit']), je crois qu'il serait mieux de faire :
    Code PHP:
    if(isset($_POST['submit'])) 
    Et donc voici le code :
    Le pastebin* : http://pastebin.com/m62c0d90e
    Code PHP:
    <?php
    $num_img 
    rand(0,5); // on tire un numéro d'image aléatoire
    ?>

    <p>Laissez-nous un message !</p>

    <form action="livredor.php" method="post">

        <p>Pseudo :</p>    
            <input name="pseudo" />
        <br>
        
        <p>Message :</p>
            <textarea name="message" rows="8" cols="35"></textarea>
        <br>
        
        <p>Anti-spam :</p>
            <label for="code"></label>
            <img src="<?php echo $img_nospam?>" width="98" height="41"" />
            <br>
            <input type="text" name="code" id="code" />
        
        <input type="submit" value="Envoyer" />

    </form>

    <?php
    // On associe le numéro à l'image

    $correspondance = array("guitare""batterie""clavier""basse""trompette""clarinette") ;

    $img_nospam "as".$num_img.".jpg" ;
    $codej $correspondance[$num_img] ;  


    if(
    $_POST['submit']) // On test le bouton envoyer
    {
        
        if(
    code == codej)
        {
            
    // On traite le formulaire normalement :
            
    mysql_connect("localhost""**********""**********");
            
    mysql_select_db("coursphp");

            
    $pseudo htmlentities($_POST['pseudo'], ENT_QUOTES);

            
    $message htmlentities($_POST['message'], ENT_QUOTES);
            
    $message nl2br($message);

            
    // On peut enfin enregistrer )
            
    mysql_query("INSERT INTO livreor VALUES('', '" $pseudo "', '" $message "')");
            
    mysql_close();
            
        }
        else
        {
            
    // le formulaire s'arrête ici
            
    echo "<p>Vous n'avez pas répondu correctement à la question ....</p>";
        }

    }

    ?>
    * : vu que ce forum ne gère pas l'indentation
    Dernière modification par Bruno ; 24/05/2008 à 15h38.

  18. #14
    Towl

    Re : débugage code php

    D'apres mes vagues souvenir de php, il faut quand meme initialiser $num_img avant de l'utiliser (2eme bloc PHP). Je mettrais donc cela dans le tout premier bloc, jsute aprs le rand, plutot que dans le 3eme
    Code PHP:
    // On associe le numéro à l'image

    $correspondance = array("guitare""batterie""clavier""basse""trompette""clarinette") ;

    $img_nospam "as".$num_img.".jpg" ;
    $codej $correspondance[$num_img] ; 
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  19. #15
    Bruno

    Re : débugage code php

    Citation Envoyé par Towl Voir le message
    D'apres mes vagues souvenir de php, il faut quand meme initialiser $num_img avant de l'utiliser (2eme bloc PHP). Je mettrais donc cela dans le tout premier bloc, jsute aprs le rand, plutot que dans le 3eme
    Les deux blocs sont interprétés comme un seul (1 fichier), donc je vois pas où est le problème C'est pas du C++ ...

  20. #16
    Towl

    Re : débugage code php

    oui, mais l'ordre importe non ? Ou alors le php est encore pire que dans mes souvenir, mais ca m'etonnerais qu'ils aient fait si immonde

    Or le "echo $img_nospam;" avant le "$img_nospam = "as".$num_img.".jpg" ; " me choque un peu.
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  21. #17
    LTHOMAS

    Re : débugage code php

    Je vous remercie tous pour vos réponses, pour votre aide !
    J'ai tous les éléments pour faire fonctionner le code correctement, et au moins j'ai compris comment ça fonctionne.

    Je sais qu'une suite de if peut être contestée, mais il faut bien commencer par quelque chose. Même les conducteurs de formule 1 on un jour passé leur permis et appris à rouler.

    Salutations

  22. #18
    Bruno

    Re : débugage code php

    Citation Envoyé par Towl Voir le message
    oui, mais l'ordre importe non ? Ou alors le php est encore pire que dans mes souvenir, mais ca m'etonnerais qu'ils aient fait si immonde

    Or le "echo $img_nospam;" avant le "$img_nospam = "as".$num_img.".jpg" ; " me choque un peu.
    Euh oui, j'avais confondu avec le $num_img...

  23. Publicité
  24. #19
    LTHOMAS

    Re : débugage code php

    J'ai changé le code en suivant les conseils que vous m'avez donné, mais ça ne fonctionne pas !
    Toujours un problème au niveau du test je pense, car quand le code est bon il ne fait rien et quand le code n'est pas bon il ne fait rien non plus !

    je donne le lien de ma page : ici

    merci pour votre aide.

  25. #20
    Bruno

    Re : débugage code php

    C'est la requête SQL sans doute, essaye comme ça pour voir si ça vient de là :

    mysql_query(...) or die( mysql_error() ) ;

  26. #21
    LTHOMAS

    Re : débugage code php

    Merci pour ton aide, mais ça ne fonctionne pas

    Je laisse le code entier (assez long dsl) :

    Code PHP:
    <?php
    $num_img 
    rand(0,5); // on tire un numéro d'image aléatoire
    ?>

    <p>Laissez-nous un message !</p>

    <form action="livreor.php" method="post">

        <p>Pseudo :</p>    
            <input name="pseudo" />
        <br>
        
        <p>Message :</p>
            <textarea name="message" rows="8" cols="35"></textarea>
        <br>
        </p>
        
        

    <?php
    // On associe le numéro à l'image

    $correspondance = array("guitare""batterie""clavier""basse""trompette""clarinette") ;

    $img_nospam "as".$num_img.".jpg" ;
    $codej $correspondance[$num_img] ;  

    ?>
     
     <p>Anti-spam :</p>
            <label for="code"></label>
            <img src="<?php echo $img_nospam?>" width="98" height="41"" />
            <br>
            <input type="text" name="code" id="code" />
        <p />    
        
        <input type="submit" value="Envoyer" />
        <p />
    </form>

    <?php
        
    if($_POST['submit']) // On test le bouton envoyer
    {

        if(
    code == codej)
        {
            
    // On traite le formulaire normalement :
            
    mysql_connect("localhost""***""***");
            
    mysql_select_db("coursphp");

            
    $pseudo htmlentities($_POST['pseudo'], ENT_QUOTES);

            
    $message htmlentities($_POST['message'], ENT_QUOTES);
            
    $message nl2br($message);

            
    // On peut enfin enregistrer )
            
    mysql_query("INSERT INTO livreor VALUES('', '" $pseudo "', '" $message "')")or die( mysql_error() );
            
    mysql_close();
            
        }
        else
        {
            
    // le formulaire s'arrête ici
            
    echo "<p>Vous n'avez pas répondu correctement à la question ....</p>";
        }

    }



    mysql_connect("localhost""***""***");
    mysql_select_db("coursphp");


    // On écrit les liens vers chacune des pages

    // On met dans une variable le nombre de messages qu'on veut par page
    $nombreDeMessagesParPage 20// 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 livreor');
    $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 : ';
    for (
    $i $i <= $nombreDePages $i++)
    {
        echo 
    '<a href="livreor.php?page=' $i '">' $i '</a> ';
    }

    ?>

    </p>

    <?php



    // Maintenant, on va afficher les messages

    if (isset($_GET['page']))
    {
        
    $page $_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 livreor ORDER BY id DESC LIMIT ' $premierMessageAafficher ', ' $nombreDeMessagesParPage);

    while (
    $donnees mysql_fetch_array($reponse))
    {
        echo 
    '<p align="left">><font color="#FFFF66" <strong>' $donnees['pseudo'] . '</strong></font> a écrit :<br />' $donnees['message'] . '</p>';
    }

    mysql_close(); // On n'oublie pas de fermer la connexion à MySQL


    ?>
    Pour la partie du code qui gère l'envoi du message et l'affichage sur la page je l'ai reprise du site du zero, et ce code fonctionnait parfaitement avant que j'ajoute l'anti spam.

    Merci pour votre aide

  27. #22
    LTHOMAS

    Re : débugage code php

    Hello, pas d'idées ??

  28. #23
    Bruno

    Re : débugage code php

    C'est le if qui doit bloquer, remplace-le par ceci :

    if(isset($_POST['code']))

    Ton submit n'est pas déclaré dans le formulaire (ce qui manque est en gras) :

    <input type="submit" name="submit" value="Envoyer" />

  29. #24
    Towl

    Re : débugage code php

    Un autre pb : tu généres une image aléatoire, mais tu ne la "stocke" pas. Il n'y a donc aucun moyen de vérifier que le code entré et bien celui que tu avais envoyé (enfin si, si le hasard génére 2x la meme image ).
    Essaye de stcoker le numéro d'image dans un cookie, ca sera plus simple et plus propre
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  30. Publicité
  31. #25
    LTHOMAS

    Re : débugage code php

    Salut Bruno, merci, ça fonctionne, j'ai mis ça à la place :

    Code PHP:

    if($_POST['submit']) // On test le bouton envoyer
    {
    $correspondance = array("guitare""batterie""clavier""basse""trompette""clarinette") ;
    $codej $correspondance[$num_img] ; 

        if(
    $_POST['code']==$codej)
        {
            
    // On traite le formulaire normalement : 
    Merci à tous pour votre aide !

Discussions similaires

  1. code pour afficher une image aléatoire en PHP
    Par le_gemaux dans le forum Programmation et langages, Algorithmique
    Réponses: 16
    Dernier message: 10/11/2014, 17h18
  2. Php
    Par Nebraska dans le forum Internet - Réseau - Sécurité générale
    Réponses: 7
    Dernier message: 22/06/2007, 15h10
  3. Insérer une page php avec variables (ex : page.php?nom=jean) grâce au javascript
    Par Bossisman dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 21/05/2005, 18h37
  4. php
    Par KHEOPS1982 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 27/05/2004, 15h30
Découvrez nos comparatifs produits sur l'informatique et les technologies.