Merci pour le fichier .htaccess
Je le met juste dans la racine de mon site ?
(la racine de Xoops est décalée d'un dossier sur ma config.)
Sinon, sachant que les robots génèrent des noms bidons du genre "XfGfftjdjd" je me suis amusé à bricoler une fonction "filtre" à partir de
ces sources.
J'ai réussi facilement à l'intégrer dans le formulaire d'inscription / Informations basiques (profile/register) pour filtrer le pseudo... mais j'ignore ou insérer ma fonction pour filtrer les champs de l'étape "Informations complémentaires"...
Ma nouvelle fonction /modules/profile/include/function.filter.php :
<?php
function filter($texte)
{
//le texte est converti en minuscules pour l'analyse
$texte = strtolower($texte);
//les éventuels chiffres sont supprimés
$texte = ereg_replace("[0-9]","",$texte);
$nombres_de_lettes_max = 4;
// les consonnes
$consonnes = array("b","c","d","f","g","h","j","k","m","n",
"p","q","r","s","t","v","w","x","z");
// les voyelles
$voyelles = array("a","e","i","o","u","y");
// les exceptions en 4 lettres (comme le $nombres_de_lettes_max)
$exceptions = array("http","aaaa","uuuu");
// variables
$i=0; $v=0; $c=0; $stock_consonne='';$stock_voyelle='';
while ($i<=strlen($texte)) {
// on sauvegarde le contenu de last_var pour refaire une comparaison
$last_var_sub = $last_var;
// on gere les consonnes
if (in_array($texte[$i],$consonnes))
{$stock_consonne .= $texte[$i]; $i++;$c++;$last_var='consonne';}
// on gere les voyelles
elseif (in_array($texte[$i],$voyelles))
{$stock_voyelle .= $texte[$i]; $i++; $v++; $last_var='voyelles';}
// si c'est un caratere autre on met tout a zero
else{$v=0;$c=0;$i++;$stock_consonne=''; $stock_voyelle='';}
// test sur les egalités
if ($c==$nombres_de_lettes_max) {
if (!in_array($stock_consonne,$exceptions))
redirect_header('user.php', 5, _PROFILE_MA_NOSTEPSAVAILABLE);
exit();
$v=0;$c=0;$stock_consonne='';
}
if ($v==$nombres_de_lettes_max) {
if (!in_array($stock_voyelle,$exceptions))
redirect_header('user.php', 5, _PROFILE_MA_NOSTEPSAVAILABLE);
exit();
$v=0;$c=0;$stock_voyelle='';
}
// si la lettre est differente on reinitialise
if ($last_var_sub != $last_var)
{$v=0;$c=0; $stock_consonne=''; $stock_voyelle='';}
}
}
?>
Et évidemment il me suffit d'ajouter ceci :
include ("include/function.filter.php");
et par exemple
//hack anti-spammeur fabienst
filter("$uname");
dans le fichier register.php pour filtrer le pseudo...
...mais évidement si je n'arrive qu'a filtrer le pseudo je ne vais pas protéger grand chose
:oops: