[PHP] Spam sur livre d'or [RESOLU]
Dernière réponse : dans Programmation
Bonsoir, avant toute chose je tien à vous dire que je n'ai pas encore de spam sur mon livre d'or mais qu'il vaut mieux prévenir que guérir, donc j'ai déjà entendu parlé du system Captcha, mais bon impossible de l'installer -_-, même en local ...
Je vous donne la page PHP de mon livre d'or :
Doonc voilà mon code, mais je voudrai intégrer un genre de cryptogramme visuel pour bloquer les robots, mais je ne sais pas comment faire :-/.
Merci d'avance pour votre aide.
Je vous donne la page PHP de mon livre d'or :
<div id="corps2"> <form method="post" action="livreor.php"> <p align="center"><strong>Signez mon guestbook :-) !</strong></p> <p align="center"> Pseudo : <input name="pseudo" type="text" /> <br /> Message :<br /> <textarea name="message" rows="8" cols="35"></textarea> <br /> <input type="submit" value="Envoyer" /> </p> </form> <p class="pages"> <?php mysql_connect("mysql5-2", "*********", "*********"); mysql_select_db("************"); // --------------- 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'])); $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $message = nl2br($message); mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')"); } // --------------- Etape 2 ----------------- // On écrit les liens vers chacune des pages // ----------------------------------------- $nombreDeMessagesParPage = 4; $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor'); $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages']; $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> '; } ?> </p> <?php // --------------- Etape 3 --------------- // Maintenant, on va afficher les messages // --------------------------------------- if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page = 1; } $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=center><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . stripslashes($donnees['message']) . '</p>'; } mysql_close(); ?> </div> <div id="footer"> <TABLE style="top:0px" align="center" width=100% height=100%><TR align="center"><TH align="center"> <? include("connect.inc.php"); ?> </TH></TR></TABLE> </div> </body> </html>
Doonc voilà mon code, mais je voudrai intégrer un genre de cryptogramme visuel pour bloquer les robots, mais je ne sais pas comment faire :-/.
Merci d'avance pour votre aide.
Autres pages sur : php spam livre resolu
Lassé par la pub ? Créez un compte
OmaR a dit :
Et qu'est ce qui bloque avec Captcha ?Bon Captcha, c'est un anti spam "lourd" on vas dire et je ne sais pas pourquoi mais en local j'ai une erreur disant qu'il y a un problème ligne 33, donc j'ai regarder et tout paraîssé normal et j'ai pas cherché plus loin non plus :-/.
Et merci à allstar27, je redis si ça fonctionne
(Je fais un autre post, comme ça, ça fait un up en même temps)
Donc merci à toi allstar pour ton lien =), je suis arriver à mettre en place le crypto mais par contre ca va pas :-), je peux rentrer n'importe quel code et ça post quand même, il y a une erreur (ça c'est sur, mais ou ?). Si vous voulez, vous pouvez flooder autant que vous voulez pour tester -> http://www.og-matadores.fr/test/livreor.php
Vous verez que ça ne fonctionne pas, donc je vous donne mes code si vous voulez bien le regarder :-)
livreor.php
verifier.php
j'ai tenter plusieur chose mais sans succés :-/, avez-vous une idée ?
Donc merci à toi allstar pour ton lien =), je suis arriver à mettre en place le crypto mais par contre ca va pas :-), je peux rentrer n'importe quel code et ça post quand même, il y a une erreur (ça c'est sur, mais ou ?). Si vous voulez, vous pouvez flooder autant que vous voulez pour tester -> http://www.og-matadores.fr/test/livreor.php
Vous verez que ça ne fonctionne pas, donc je vous donne mes code si vous voulez bien le regarder :-)
livreor.php
<div id="corps2"> <form method="post" action="livreor.php"> <p align="center"><strong>Signez mon guestbook :-) !</strong></p> <p align="center"> Pseudo : <input name="pseudo" type="text" /> <br /> Message :<br /> <textarea name="message" rows="8" cols="35"></textarea> // ---------- Code pour le Cryptogramme Visuel //-------------------------------------------- <form action="verifier.php" method="post"> <table align="center"> <tr><td><?php dsp_crypt(0,1); ?></td></tr> <tr><td>Recopier le code:<input type="text" name="code"></td></tr> <tr><td><input type="submit" name="submit" value="Envoyer"></td></tr> </table> </form> //-------------------------------------------- //-------------------------------------------- <br /> <input type="submit" value="Envoyer" /> </p> </form> <p class="pages"> <?php mysql_connect("mysql5-2", "*********", "*********"); mysql_select_db("************"); // --------------- 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'])); $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $message = nl2br($message); mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')"); } // --------------- Etape 2 ----------------- // On écrit les liens vers chacune des pages // ----------------------------------------- $nombreDeMessagesParPage = 4; $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor'); $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages']; $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> '; } ?> </p> <?php // --------------- Etape 3 --------------- // Maintenant, on va afficher les messages // --------------------------------------- if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page = 1; } $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=center><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . stripslashes($donnees['message']) . '</p>'; } mysql_close(); ?> </div> <div id="footer"> <TABLE style="top:0px" align="center" width=100% height=100%><TR align="center"><TH align="center"> <? include("connect.inc.php"); ?> </TH></TR></TABLE> </div> </body> </html>
verifier.php
<?php $cryptinstall="./cryptographp.fct.php"; include $cryptinstall; ?> <html> <?php if (chk_crypt($_POST['code'])) echo "<a><font color='#009700'>=> C'est le bon code :-)</font></a>" ; else echo "<a><font color='#FF0000'>=> Erreur, le code est incorrect</font></a>" ; ?> </html>
j'ai tenter plusieur chose mais sans succés :-/, avez-vous une idée ?
Dans mon fichier criptographp.ftc j'ai ça :
Donc j'ai rien vu d'anormal O.o
Sinon pour le contenu je test encore tout ça :], mon site n'est pas encore fini mais je préfére sécurisé mon guestbook en priorité contre les robots :-)
if(session_id() == "xt") session_start(); $_SESSION['cryptdir']= dirname($cryptinstall); function dsp_crypt($cfg=0,$reload=1) { // Affiche le cryptogramme echo "<table align=center><tr><td><img id='cryptogram' src='".$_SESSION['cryptdir']."/cryptographp.php?cfg=".$cfg."&".SID."'></td>"; if ($reload) echo "<td><a title='".($reload==1?'':$reload)."' style=\"cursor:pointer\" onclick=\"javascript:document.images.cryptogram.src='".$_SESSION['cryptdir']."/cryptographp.php?cfg=".$cfg."&".SID."&'+Math.round(Math.random(0)*1000)+1\"><img src=\"".$_SESSION['cryptdir']."/images/reload.png\"></a></td>"; echo "</tr></table>"; } function chk_crypt($code) { // Vérifie si le code est correct include ($_SESSION['configfile']); $code = addslashes ($code); $code = str_replace(' ','',$code); // supprime les espaces saisis par erreur. $code = ($difuplow?$code:strtoupper($code)); switch (strtoupper($cryptsecure)) { case "MD5" : $code = md5($code); break; case "SHA1" : $code = sha1($code); break; } if ($_SESSION['cryptcode'] and ($_SESSION['cryptcode'] == $code)) { unset($_SESSION['cryptreload']); if ($cryptoneuse) unset($_SESSION['cryptcode']); return true; } else { $_SESSION['cryptreload']= true; return false; } } ?>
Donc j'ai rien vu d'anormal O.o
Sinon pour le contenu je test encore tout ça :], mon site n'est pas encore fini mais je préfére sécurisé mon guestbook en priorité contre les robots :-)
<?php $cryptinstall="./crypt/cryptographp.fct.php"; include $cryptinstall; ?>
Tu dois le placer au tout début de ta page avant toute les balises...
<?php dsp_crypt(0,1); ?>
Ex:
<table> <tr><td><?php dsp_crypt(0,1); ?></td></tr> <tr><td>Recopier le code:<input type="text" name="code"></td></tr> <tr><td><input type="submit" name="submit" value="Envoyer"></td></tr> </table> </form>
C'est fait :-/, c'est ça le problème, voilà ma page en entier
La voilà en entier, et si il n'y aurait pas eu ce code j'aurai eu des message d'erreur via mysql.
Bon je verai ça demain, car la j'en ai mal à la tête. Merci beaucoup de ton aide allstar
<?php $cryptinstall="./crypt/cryptographp.fct.php"; include $cryptinstall; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>"> <html xmlns="<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr" > <head> <title>Xtr4d3's | Livre d'or</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="description" content="Vous trouveres ici tous mes skins pour oGame"> <meta name="keywords" lang="fr" content="og,xtr4d3,skin,skins,ogame,skin ogame"> <meta http-equiv="Content-Language" content="fr"> <meta name="reply-to" content="rythmictrip@gmail.com"> <meta name="category" content="Jeux"> <meta name="robots" content="index"> <meta name="distribution" content="global"> <meta name="revisit-after" content="7 days"> <meta name="author" lang="fr" content="Xtr4d3"> <meta name="copyright" content="Xtr4d3"> <meta name="generator" content="Adobe Photoshop CS2,Dreamweaver 8"> <meta name="identifier-url" content="<a href="http://www.og-matadores.fr/ztr4d3/index.php" target="_blank">http://www.og-matadores.fr/ztr4d3/index.php</a>"> <meta name="expires" content="never"> <meta name="Date-Creation-yyyymmdd" content="Mercredi 15 Aout 2007"> <meta name="Date-Revision-yyyymmdd" content="Jeudi 16 Aout 2007"> <link rel="stylesheet" media="screen" type="text/css" title="Design" href="designguest.css" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> form, .pages { text-align:center; } </style> </head> <body> <div id="header"> </div> <div id="menu"> <div class="element_menu"> <h2><a href="index.php"><img align="left" src="img/menu/accueil.png" vspace="20px" alt="Accueil" title="Accueil" /></a></h2> <h3><img align="left" src="img/menu/skins.png" alt="Skins" vspace="5px" title="Skins" /></h3> <h2><a href="elegance.php"><img align="left" src="img/menu/elegance.png" alt="Elegance Skin" title="Elegance Skin" /></a></h2> <h2><a href="chimik.php"><img align="left" src="img/menu/chimik.png" alt="Chimik Skin" title="Chimik Skin" /></a></h2> <h2><a href="db_blue.php"><img align="left" src="img/menu/db_blue.png" alt="db_bleu Skin" title="db_bleu Skin" /></a></h2> <h3><img align="left" src="img/menu/divers.png" alt="divers" vspace="5px" title="divers" /></h3> <h2><a href="maj.php"><img align="left" src="img/menu/maj.png" alt="maj" title="maj" /></a></h2> <h2><a href="contact.php"><img align="left" src="img/menu/contact.png" alt="contact" title="contact" /></a></h2> <h2><a href="livreor.php"><img align="left" src="img/menu/guest.png" alt="GuestBook" title="GuestBook" /></a></h2> </div> </div> <div id="corps2"> <form method="post" action="livreor.php"> <p align="center"><strong>Signez mon guestbook :-) !</strong></p> <p align="center"> Pseudo : <input name="pseudo" type="text" /> <br /> Message :<br /> <textarea name="message" rows="8" cols="35"></textarea> <form action="verifier.php" method="post"> <table align="center"> <tr><td><?php dsp_crypt(0,1); ?></td></tr> <tr><td>Recopier le code:<input type="text" name="code"></td></tr> <tr><td><input type="submit" name="submit" value="Envoyer"></td></tr> </table> </form> </form> <p class="pages"> <?php mysql_connect("mysql5-2", "***", "****"); mysql_select_db("*****"); // --------------- 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'])); $message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); $message = nl2br($message); mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $message . "')"); } // --------------- Etape 2 ----------------- // On écrit les liens vers chacune des pages // ----------------------------------------- $nombreDeMessagesParPage = 4; $retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor'); $donnees = mysql_fetch_array($retour); $totalDesMessages = $donnees['nb_messages']; $nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage); echo 'Page : '; for ($i = 1 ; $i <= $nombreDePages ; $i++) { echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> '; } ?> </p> <?php // --------------- Etape 3 --------------- // Maintenant, on va afficher les messages // --------------------------------------- if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page = 1; } $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=center><strong>' . $donnees['pseudo'] . '</strong> a écrit :<br />' . stripslashes($donnees['message']) . '</p>'; } mysql_close(); ?> </div> <div id="footer"> <TABLE style="top:0px" align="center" width=100% height=100%><TR align="center"><TH align="center"> <? include("connect.inc.php"); ?> </TH></TR></TABLE> </div> </body> </html>
La voilà en entier, et si il n'y aurait pas eu ce code j'aurai eu des message d'erreur via mysql.
Bon je verai ça demain, car la j'en ai mal à la tête. Merci beaucoup de ton aide allstar
Salut,
Je vois que ton problème est résolue, mais je me permets de te conseiller un anti-spam que j'utilise et avec lequel je n'ai encore pas eu de problème, à cette adresse :
http://www.webmaster-hub.com/index.php?showtopic=29494&st=20
Il peut toujours servir en plus de ton admin, ou pour tout autre script de ce genre (livre d'or, forum, etc..).
Bonne nuit.
Je vois que ton problème est résolue, mais je me permets de te conseiller un anti-spam que j'utilise et avec lequel je n'ai encore pas eu de problème, à cette adresse :
http://www.webmaster-hub.com/index.php?showtopic=29494&st=20
Il peut toujours servir en plus de ton admin, ou pour tout autre script de ce genre (livre d'or, forum, etc..).
Bonne nuit.
Lassé par la pub ? Créez un compte
- Contenus similaires :
- Solutions[RESOLU]formulaire test d'upload de php
- ForumRésolu par moi Livre Assassin's creed revelations
- Forum[Résolu]Spam sur livre d'or
- Solutions[Résolu] Que peut-on faire avec le PHP ?
- Forum[Résolu] Spam à tous mes contacts Messenger
- ForumRESOLU faire un lien en php
- ForumUtilisation de mon adresse mail pour envoyer des spam (résolu)
- Solutions[résolu] HTML/PHP Une de mes 3 frames reste invisible
- Forum[RESOLU] Pb avec un virus/spam qui me redirige et ralenti internet
- Voir plus