Spam guestbook

Résolu
dedoum -  
 dedoum -
Bien le bonjour

il y a peu je me suis fait un site web et mis en place un guest book, évidement il est spamé.

Comme dans chaque message il y a le mot " href ", je voudrais donc faire quelque chose qui à la détection de "href" bloque l'envoie.

J'avais fait ce code mais ça ne marche pas trop bien.

<form method="post" action="writeguest.php" onSubmit='if ( this.message.value=="href" ) { return false ;}' >

Ici le message est bloqué s'il y a seulement " href " dans le message et rien d'autre.

Voilà, je précise que je connais rien en code et que les quelques notions que j'ai c'est juste de la déduction en regardant plein de lignes de codes, donc si vous me proposez une solution veillez bien à me préciser votre code si non je vais rien comprendre.

merci bien
A voir également:

8 réponses

Luan1604 Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour,

La meilleur solution reste le CAPTCHA.
Voir ici:
http://www.captcha.fr/?page=1&langue=fr

C'est un script à intégrer. Simple d'utilisation et qui règle votre problème.

Etant donné que les spams sont envoyés par des robots, ils seront incapable de recopier le code.

Luan.

0
dedoum
 
merci de ta réponse
J'avais oublié de préciser que je ne voulais pas de système de cryptogramme comme ça.
En effet je trouve ça un peu embêtant pour le visiteur.

merci quand même.
0
Luan1604 Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   4
 
Dans ce cas là, il n'y a que REGEX en php qui vous aiderait mais je ne peux pas vous donner de solution miracle car je n'ai pas le temps de le faire... De plus, cette solution n'est pas très efficace... Faites une recherche google mais si vous n'avez pas de connaissances poussées en php, ça va être dur.

Captcha reste le meilleur système actuel... Que ça dérange le visiteur ou pas...
0
dedoum
 
bon je vais étudier la chose.

mais une dernière question, est ce que c'est possible de réaliser l'exclusion du mot " href " dans cette portion de code onSubmit='if ( this.message.value=="href" ) { return false ;}' ou est ce que l'on est obligé de faire ça en php dans le fichier qui s'occupe de l'écriture dans le fichier texte.

merci bien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Luan1604 Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour,

Le javascript ne fonctionnera pas avec des robots. Pourriez-vous me donner le code du fichier du formulaire & du fichier qui traite les données ? Je vais essayer d'intégrer quelque chose en php pour résoudre temporairement votre problème.

Luan.

(je déteste laisser un cas en suspens :P )
0
dedoum
 
vraiment merci à toi

voila le code qui s'occupe de l'écriture dans le fichier

<?php


$fp = fopen("guestbook.doc",'r+');

$guestbookFile = "guestbook.doc";

//conversion

$nom = htmlspecialchars($_POST['nom']);

$mail = htmlspecialchars($_POST['mail']);

$message = stripslashes(nl2br(htmlspecialchars($_POST['message'])));
//$message = stripslashes(nl2br(htmlentities($_POST['message'])));

$d = date ( "d/m/Y H:i:s" );

//echo "$message";

$page = "";

$lemail = "<a href=\"mailto:$mail\">$mail</a>";

$page .= "<b class=\"nom\">$nom</b> ".$lemail." <span class=\"heure\">- $d</span><br>$message<br><hr color=#c0ff00 size=1>\n";


$contents = file_get_contents($guestbookFile);

fputs($fp,$page.$contents);

fclose($fp);



//fwrite ($fp,"$page,strlen("$page"));

?>


---------------------------
et la le code pour le formulaire

<div id="formulaire">
<form method="post" action="writeguest.php" onSubmit='if ( this.message.value=="href" ) { return false ;}' >
<table bordercolor="#FF0000" border="0" cellpadding="1" cellspacing="0">
<tr><td><span class="texte">Name :</span></td>
<td><input type=text name=nom size=30 border="2"></td>
<td rowspan=2>
<div id="send">
<input type=submit value=Send />
</div> </td>
</tr>
<tr><td><span class="texte">Mail :</span></td>
<td><input type=text name=mail size=30 ></td></tr>
<tr><td><span class="texte">Comment :</span></td><td colspan=2>
<textarea name=message rows=4 cols=47></textarea>
</td></tr>
</table>
</form>


</div>

encore merci à toi
0
Luan1604 Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour,

Voici:

<?php 
if(ereg("href", $_POST['message']))
{
	echo 'SPAM';
} else {	

$fp = fopen("guestbook.doc",'r+'); 

$guestbookFile = "guestbook.doc"; 

//conversion 

$nom = htmlspecialchars($_POST['nom']); 

$mail = htmlspecialchars($_POST['mail']); 

$message = stripslashes(nl2br(htmlspecialchars($_POST['message']))); 
//$message = stripslashes(nl2br(htmlentities($_POST['message']))); 

$d = date ( "d/m/Y H:i:s" ); 

//echo "$message"; 

$page = ""; 

$lemail = "<a href=\"mailto:$mail\">$mail</a>"; 

$page .= "<b class=\"nom\">$nom</b> ".$lemail." <span class=\"heure\">- $d</span><br>$message<br><hr color=#c0ff00 size=1>\n"; 


$contents = file_get_contents($guestbookFile); 

fputs($fp,$page.$contents); 

fclose($fp); 



//fwrite ($fp,"$page,strlen("$page")); 

}
?> 
0
dedoum
 
Un grand merci à toi et à ta réactivité, ça marche très bien;
en plus ça m'a permis de comprendre un nouvelle instruction.

à la revoyure
0