Spam

Eléphant du PHP | 330 Messages

19 mai 2006, 16:36

Bonjour,

Pour empêcher des Spams sur mon livre d'or, les utilisateurs doivent rentrer un code saisi dans une image.

Mais cela n'a aucun effet.

Que faut-il faire d'autre.

Merci de votre aide.



Ma page Livre d'Or
<?php  

		session_start(); 
     	
       	mt_srand((float) microtime()*1000000); 
		$nb = mt_rand(0, 100000);  
		$_SESSION['obj'] = $nb; 
		$ticket = $_SESSION['obj']; 
		
		

 		
?>  
		<input type="hidden" name="code" id="code" value="<?php echo $ticket; ?>" 		
		<tr>
			<td ><input type="hidden" name="image_cachee" value="0" checked="checked" ></td> 
		</tr>	
		<tr>	
			<td colspan="4" align="left">Inscrivez le chiffre de la case bleue (Anti Spam)&nbsp;&nbsp;<input type="text" name="imagecode" id="imagecode"></td> 
		</tr>
		<tr>
			<td align="right"> 
		
<?php 		
		
			echo "<img src=livredor_image.php?nombre=$nb alt=image CaptCha>"; 

?>		
			</td>
		</tr>
Ma pagelivredor_image.php

Code : Tout sélectionner

<?php header ("Content-type: image/png"); // $nb=$_GET['nombre']; //on cr&eacute;e une image de 100x20 pixels $im = imagecreate (100, 20); //couleur de fond de l'image (R,V,B) $couleur_fond = imagecolorallocate($im, 112, 182, 239); //couleur du texte $noir = imagecolorallocate ($im, 0, 0, 0); //on &eacute;crit le texte // ImageString($im, $taille_texte, $coordonn&eacute;es_x, $coordonn&eacute;es_y, $texte, $couleur_texte); ImageString($im, 5, 0, 0, $nb, $noir); imagepng ($im); ?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 mai 2006, 16:53

J'ai pas regardé la génération de l'image, mais déjà au niveau de l'appel à l'image, je pense que quelques guillemets pour délimiter les attributs html ne serait pas un luxe :)

Et tant qu'à faire autant ne mettre du php que là ou on en a besoin
<img src="livredor_image.php?nombre=<?php echo $nb; ?>" alt="image CaptCha">

Eléphant du PHP | 330 Messages

19 mai 2006, 16:59

OK pour le Php superflu.

Je ne comprends pas trop ta première remarque.

Est cela pourrait jouer sur le passage des spams

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 mai 2006, 18:05

Ca jouera pas sur le passage du spam non, mais sur un affichage correcte de ton image... ;)

Cela dit, c'est pas parce que tu as une image avec un cryptogramme visuel sur ta page que ca arrête le spammer... ce qui importe c'est comment tu gère le numéro qui est affiché et comment tu le compares... en l'occurence, je vois pas trop l'intérêt d'afficher un cryptogramme quand le numéro qu'il contient est affiché 2 fois dans le source de la page.... :?

Si tu le mets en session, n'est ce pas justement pour ne pas avoir à le mettre en champ caché ? ne serait ce pas plutot au script qui génère le cryptogramme de devoir générer son numéro également ?

Eléphant du PHP | 330 Messages

19 mai 2006, 19:21

A vrai dire j'aimerai bien comprendre comment font les Spammers.

Si queq'un avait de la doc, cela serait sympa.

Merci d'avance