2010-12-23 5 views
0

Mon application http://www.tyro.in a une fonction de recherche lorsque l'utilisateur effectue une recherche, cette requête apparaîtra dans la zone de recherche récente. Mon formulaire de recherche utilise la méthode GET. Je pense que les spammeurs recherchent des mots de spam et que les mots de spam sont directement postés sur mon site. Je ne veux pas changer ma méthode de formulaire de GET à POST. S'il vous plaît suggérer n'importe quel moyen d'identifier et d'empêcher les requêtes de spam.Comment empêcher les recherches de spam

Merci à l'avance.

+1

Ne pas afficher les recherches récentes? –

Répondre

0

Essayez ceci:

Ajouter un champ caché à votre formulaire de recherche, et aussi à la session de l'utilisateur. Lorsque le formulaire est publié, faites correspondre la valeur du champ de saisie à la session. Une recherche de spam manquera cette valeur, puisqu'il n'aura pas de session.

$hiddenvalue= md5(rand(0,1000)); 

//only fill session if we're not coming from a search action 
if(count($_GET) == 0) { 
    $_SESSION["hidden"]= $hiddenvalue; 
} 


<input type="hidden" name="secret" value="$hiddenvalue"> 

Puis, après l'EEG:

if($_GET["secret"] == $_SESSION["hidden"]) { 
    //continue search 
} 
0

Vous pouvez filtrer les recherches qui ne correspondent pas à votre contenu. De cette façon, les fautes de frappe (et les recherches exotiques qui se produisent toujours) n'apparaîtront pas non plus sous "Recherches récentes".

Questions connexes