• Bannato User Attivo

    Come eliminare lo Spam con vBulletin

    ChriStrato admin di vbulletinitalia.it ha messo a punto una MOD su come evitare lo spam sul forum. Bastano poche modifiche e il gioco è fatto, ecco come operare:

    Screenshot:

    image

    Come puoi vedere blocca tutti e due i modi di mettere gli url! nel mio esempio "www.vbulletinitalia.it" è il mio indirizzo, quindi valido!
    Bando alle ciance iniziamo:

    1. Edita il template "pm_newpm" e cerca al suo interno:

    [php]<if condition="$show['parseurl']"><div><label for="cb_parseurl"><input type="checkbox" name="parseurl" value="1" id="cb_parseurl" tabindex="1" $checked[parseurl] />$vbphrase[automatically_parse_links_in_text]</label></div></if>[/php]e sostituisci con:

    [php]<input type="hidden" name="parseurl" value="1" id="cb_parseurl" tabindex="1" />[/php]In questo modo non potranno deselezionare l'opzione: "Traduci automaticamente i link nel testo",
    così che anke se mettono indirizzi senza il bbcode , l'indirizzo verrà automaticamente convertito in bbcode e beccato dall'antispam

    1. Ora aggiungi un nuovo plugin e usa queste opzioni:

    Prodotto: vBulletin
    Ubicazione: private_insertpm_process
    Titolo: Blocca SPAM PM (o quello che vuoi tu)
    Ordine eseguito: 5
    Codice PHP Plugin:

    [php]$messantispam = "NO SPAM IN QUESTO FORUM"; // Messaggio che sostituisce l'indirizzo di spam
    $validurl = "www.metal-forever.it"; // Ex: www.google.com

    $message = strtolower($vbulletin->GPC['message']);
    if ($expurl = explode("", $message))
    {
    $counturl = count($expurl);

    for($a = 1;$a < $counturl;$a++)
     {
        $expendurl = explode("", $expurl[$a]);
         preg_match("/^(http:\/\/)?([^\/].+)/i", $expendurl[0], $matches);
    
         if (strripos($matches[2], $validurl) === false)
             {
            $vbulletin->GPC['message'] = str_ireplace($matches[2], $messantispam, $vbulletin->GPC['message']);
    
             } 
        } 
    } 
    

    $expexturl = explode("[url="", $message);
    $countexturl = count($expexturl);
    for($b = 1;$b < $countexturl;$b++)
    {
    $expexturlin = explode(""]", $expexturl**);

     preg_match("/^(http:\/\/)?([^\/].+)/i", $expexturlin[0], $matches);
    
     if (strripos($matches[2], $validurl) === false)
         {
        $vbulletin->GPC['message'] = str_ireplace($matches[2], $messantispam, $vbulletin->GPC['message']);
    
         } 
    
    $expexturlend = explode("", $expexturlin[1]);
     preg_match("/^(http:\/\/)?([^\/].+)/i", $expexturlend[0], $matches);
    
     if (strripos($matches[2], $validurl) === false)
         {
        $vbulletin->GPC['message'] = str_ireplace($matches[2], $messantispam, $vbulletin->GPC['message']);
    
         } 
    
    } [/php]Come puoi vedere le prime due righe del codice php sono commentate, sono le uniche due che devi modificare,
    

    nella prima riga

    [php]$messantispam = "NO SPAM IN QUESTO FORUM"; // Messaggio che sostituisce l'indirizzo di spam [/php]sostituisci "NO SPAM IN QUESTO FORUM" con la frase che ti è + congeniale

    mentre nella seconda riga:

    [php]$validurl = "www.vbulletinitalia.it"; // Ex: www.google.com [/php]metti il tuo url (senza http:// iniziale e / finale), il www. dipende se il tuo dominio ne fa uso o meno, se il tuo url inizia x www. allora mettilo, sennò lo puoi anche omettere!

    Questo è tutto, provatelo e fatemi sapere. Intanto auguro un Buon anno a tutti Voi

    Enzo Webmaster

    www.vbulletinitalia.it


  • Super User

    Grazie Enzo, interessante modifica.

    Quindi, in pratica, per autorizzare un url bisogna aggiungerla a:

    $validurl = "www.vbulletinitalia.it"; // Ex: www.google.com

    Quindi volessi autorizzarne diverse come dovrei inserire l'istruzione?

    Grazie.


  • Bannato User Attivo

    Certamente. Devo dire che pur essendo giovane ChriStato è davvero in gamba, sta preparando delle cose egregie. Una chat e la modifica dello shoutbox da parte del pannello admin, insomma il nostro Staff sta lavorando sodo e tra breve(15 gg al massimo) è pronta la versione FULL di vBulletin 3.7.0, comunque aspetto quella GOLD per darla in "pasto" agli altri utenti. Ciao e Buon Anno a tutti Voi.


  • User Attivo

    complimenti! 😄


  • Super User

    Ok, però ho bisogno di conoscere la stringa esatta per inserire più di un sito da escludere dalla restrizione 😉


  • Bannato User Attivo

    La stringa è questa:

    [PHP]$validurl = "www.vbulletinitalia.it"; // Ex: www.google.com

    [/PHP]

    Ciao


  • Super User

    E fin quì ci siamo, ma se volessi rendere valide più url come li inserisco più indirizzi?

    Mettiamo che voglia inserirne 10 di autorizzati, come sarà il codice?

    Grazie.


  • Bannato User Attivo

    Continua in quella stringa. Ciao


  • Super User

    Perfetto, quindi basta separarle col punto e virgola.

    Grazie 😉