salut, déjà je précise que c'est pas moi qui ai fait le code donc c'est pour ça que je pige pas certains trucs.
Pour éviter d'avoir 50 commentaires chaque jour à cause de bots, j'essaye de voir pour un captcha textuel, image ou un champ caché. Mais le truc c'est que j'arrive pas à placer le reste de mon code initial dans le if et le else.
genre si les 4 numéros sont bien écrits, alors on dit ok c bon le commentaire est bien ajouté et sinon les numéros sont pas bons.
Par exemple j'ai ça
Code PHP : 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 <?php session_start(); ?> <form method="POST" action=""> <h3>Quel est ce chiffe? </h3> <img src="captcha.php" /><br /> <input type="text" name="captcha" style="width:70px"/><br /> <input type="submit" /> </form> <?php if($_POST['captcha']){ if($_POST['captcha']==$_SESSION['captcha']){ echo 'Bingo !'; } else { echo '<h3 style="color:red">Oups !</h3>'; } } ?>
et le code de mon captcha
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php session_start(); $_SESSION['captcha'] = rand(1000,9999); $img = imagecreatetruecolor(70, 30); $fill_color=imagecolorallocate($img,255,255,255); imagefilledrectangle($img, 0, 0, 70, 30, $fill_color); $text_color=imagecolorallocate($img,10,10,10); $font = './28DaysLater.ttf'; imagettftext($img, 23, 0, 5,30, $text_color, $font, $_SESSION['captcha']); header("Content-type: image/jpeg"); imagejpeg($img); imagedestroy($img);
ça marche mais j'arrive pas à placer mon code initial dans le if
voila un bout de mon code index, c'est le formulaire de commentaires
Code PHP : 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 <form action="index.php" method="POST"> <?php echo ' <input type="text" name="Auteur" id="Auteur" value="" /> <span class="Small"><label for="Auteur">Pseudo (requis)</label></span><br />'; echo ' <textarea type="text" class="Postcomment" name="Message" id="Message" rows="4" cols="70"></textarea><br />'; ?> <br /> <?php echo '<input type="hidden" name="id_new" value="'.$id.'" />'; echo ' <input type="submit" value="Poster le commentaire" />'; ?></form><br /><?php echo '</div>'; } else { echo '<strong>Erreur:</strong><br />Une erreur est survenue lors de l\'exécution du script.<br />Veuillez recommencez dans quelques minutes.'; } } elseif( isset($_POST['id_new']) AND is_numeric($_POST['id_new']) AND isset($_POST['Auteur']) AND isset($_POST['Message']) AND isset($_POST['id_new']) AND $_POST['Auteur'] != '' AND $_POST['Message'] != '' AND strlen($_POST['Auteur']) >= 3 AND strlen($_POST['Message']) > 10) { // Voir en haut le code d'insertion dans la BD // Ici, on affiche un texte qui dit que le commentaire est envoyé au cas ou l'actualisation de la page n'est pas lieu ou qu'il soit lent à charger. echo '<strong>Succés :</strong><br />Le commentaire a bien été posté.<br /><a href="index.php?id='.$idn.'">Revenir à la nouveauté</a>.'; } else { // On affiche les nouveautés (page principale donc) // on a tenté d'envoyer un commentaire mais il est trop court, message d'erreur : if( isset($_POST['Auteur']) AND isset($_POST['Message']) AND (strlen($_POST['Auteur']) <= 2 OR strlen($_POST['Message']) < 2)) { echo '<br /> Votre commentaire fais moins de 3 caractères ou votre pseudo fait moins de 3 caractères.<br />Veuillez poster un vrai commentaire !<br /><br />'; } else { echo ' '; }
Si vous pouvez m'éclairer, ça m'avancerai pas mal ^^ je vous remercie !







Répondre avec citation
Partager