[PHP] Livre d'or
FloR3nT
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
FloR3nT Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
FloR3nT Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerais inclure un système d'antispam dans mon livre d'or en sorte que si il détecte le spam il l'auto supprime de la base de donnée
voici le code:
merci de vos future réponse !
j'aimerais inclure un système d'antispam dans mon livre d'or en sorte que si il détecte le spam il l'auto supprime de la base de donnée
voici le code:
<style type="text/css"> form, .pages { text-align:center; } </style> <form method="post" action="livre.xml"> <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> Laissez-nous un message !</div> <div class="block_contenu" style="text-align: center; font-size: 9px; padding: 20px 150px;"> </div> <p> Pseudo : <input name="pseudo" /><br /><br /> Message :<br /> <textarea name="message" rows="8" cols="35"></textarea><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 . "','". $date ."')"); } // --------------- 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) ?>
merci de vos future réponse !
A voir également:
- [PHP] Livre d'or
- Or - Guide
- Télécharger livre de lecture ce2 gratuit pdf - Télécharger - Éducatifs
- Livre coran en français pdf - Télécharger - Histoire & Religion
- Easy php - Télécharger - Divers Web & Internet
- Malheureusement, votre colissimo ne peut pas être livré. - Forum Consommation & Internet
6 réponses
Salut.
Tu peux utiliser Askimet : https://akismet.com/
C'est une sorte de base de données connaissant une partie du spam.
Tu peux en plus ajouter une image contenant un code à recopier (captcha) :
http://www.captcha.fr/
https://www.google.com/recaptcha/about/
Tu peux également utiliser du Javascript pour l'envoie du formulaire.
Les robots spammeurs ne le comprennent pas, donc ils seront bloqués.
Tu peux utiliser Askimet : https://akismet.com/
C'est une sorte de base de données connaissant une partie du spam.
Tu peux en plus ajouter une image contenant un code à recopier (captcha) :
http://www.captcha.fr/
https://www.google.com/recaptcha/about/
Tu peux également utiliser du Javascript pour l'envoie du formulaire.
Les robots spammeurs ne le comprennent pas, donc ils seront bloqués.
Avion, sais tu que maintenant les robots comprennent le JavaSript. De plus tu peux être un spammeur sans être un robot xD.
bonjour,
j'ai installer le captcha,
le seul problème sais que meme si on tape pas le code, le message ce valide...
voici le code mise à jour avec le captcha dedans :)
http://pastebin.com/edjPb1NZ
j'ai installer le captcha,
le seul problème sais que meme si on tape pas le code, le message ce valide...
voici le code mise à jour avec le captcha dedans :)
http://pastebin.com/edjPb1NZ
Ajoute session_start() avant debut.inc.php
Il faut mieux faire la vérification chk_script() dans la condition suivant le commentaire de l'étape 1.
Il faut mieux faire la vérification chk_script() dans la condition suivant le commentaire de l'étape 1.
Est-ce que le fichier debut.inc.php contient du code HTML ?
Si oui, alors le session_start() doit être fait avant.
Il y en a une dans le script du captcha, mais ce script est inclus après, et on ne peut pas lancer une session après l'écriture de caractères.
Et j'ai dit chk_script() au lieu de chk_crypt() ...
Si oui, alors le session_start() doit être fait avant.
Il y en a une dans le script du captcha, mais ce script est inclus après, et on ne peut pas lancer une session après l'écriture de caractères.
Et j'ai dit chk_script() au lieu de chk_crypt() ...
j'ai changer ce que tu viens de me dire,
voilà ce qui en est:
Fatal error: Call to undefined function chk_script() in /home/rng/www/website_pages/guestbook.php on line 8
http://pastebin.fr/9918
la code sessions est déjà dans le debut.inc.php :)
voilà ce qui en est:
Fatal error: Call to undefined function chk_script() in /home/rng/www/website_pages/guestbook.php on line 8
http://pastebin.fr/9918
la code sessions est déjà dans le debut.inc.php :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Il suffit de faire un bon captcha et peu contraignant, donc exit celui qui te demande de lire les lettres. Après tu peux t'amuser à faire des captcha sympa :
- Une image où il doit cliquer sur un endroit précis.
- Une addition ou soustraction.
Ensuite fais toi une liste noir des ip.
Enfin augmente la durée entre 2 formulaire.
En fait tout est réalisable, la seule limite c'est ton imagination ...
La chance aide parfois, le travail toujours !
Il suffit de faire un bon captcha et peu contraignant, donc exit celui qui te demande de lire les lettres. Après tu peux t'amuser à faire des captcha sympa :
- Une image où il doit cliquer sur un endroit précis.
- Une addition ou soustraction.
Ensuite fais toi une liste noir des ip.
Enfin augmente la durée entre 2 formulaire.
En fait tout est réalisable, la seule limite c'est ton imagination ...
La chance aide parfois, le travail toujours !
Il y a un truc très bête, tu crée un champ de texte que tu cache avec CSS, et 90% des robots vont automatiquement remplir ce champ. Un visiteur normal ne va pas le remplir puisqu'il ne le verra pas. Donc avant d'enregistrer le message tu ajoute une condition:
if (empty($antirobot))
ect...
C'est moins embêtant qu'un captcha pour le visiteur.
if (empty($antirobot))
ect...
C'est moins embêtant qu'un captcha pour le visiteur.