Tempo di Lettura: 3 minuti
Ultimamente il plugin matematico anti-spam Did You Pass Math iniziava a creare qualche problema: molti, infatti, si erano lamentati che sbagliava a fare le somme (a volte anche con lo 0). Ho dato un’occhiata al codice ma apparentemente non era errato e quando lo provavo io, per la solita legge di Murphy, funzionava sempre. L’unico dubbio era il fatto che siccome si appoggiava ai cookie di sistema per recuperare la somma, forse il problema poteva risiedere in una non perfetta compatibilità (documentata o non) tra browser e release di browser diversi. Certo questo era un plugin molto comodo in quanto bastava attivarlo e se si usava un browser standard di tipo K2 funzionava egregiamente (per i più esperti esistono solo due variabili da settare per l’uso dei cookie e di un template di tipo k2).
Ho trovato, quindi, un nuovo plugin per WordPress per un antispam matematico: Math Comment Spam Protection Plugin. Ma che differenza c’è con Did You Pass Math? Innanzitutto il codice è completamente diverso e non è solo una semplice riedizione; inoltre è presente una comoda area di amministrazione del plugin antispam raggiungibile da Opzioni->Math Comment Spam: qui è possibile personalizzare (e localizzare in italiano) i messaggi di errore e il tipo di operandi da utilizzare nella visualizzazione della somma come:
– 1~1, 2~2, 3~3, 4~4, 5~5, 6~6, 7~7, 8~8, 9~9, 10~10 (per avere una domanda tipo: quanto fa 5 + 7?)
– 1~uno, 2~due, 3~tre, 4~quattro, 5~cinque, 6~sei, 7~sette, 8~otto, 9~nove, 10~dieci (per avere una domanda tipo: quanto fa cinque + sette?. Attenzione questo genere di domanda può far venire dei dubbi su come scrivere la risposta. Attualmente il plugin supporta solo una risposta numerica ma nulla vieta di implementare un hack per accettare anche risposte testuali)
Il vantaggio è che si può scegliere fino a che cifra si può fare la somma (non è detto che si voglia per forza fare la somma di numero fino a 10) a scapito, però, della immediatezza della somma.
Però mentre Did You Pass Math funziona da subito con una semplice attivazione del plugin ma SOLO per temi standard (come K2), Math Comment Spam Protection Plugin funziona su TUTTI i temi ma per contro, dopo l’attivazione, richiede una modifica del file comments.php del proprio template.
Ovviamente la modifica manuale dei file permette, al contempo, di posizionare il proprio codice anti-spam ovunque si voglia!
Inoltre questo plugin non necessita che il browser dell’utente abbia i cookies abilitati. Infine, c’è un altro aspetto da non sottovalutare: se con Did You Pass Math si sbagliava la somma, siccome veniva ricaricata la pagina, si perdeva il contenuto del commento anche se si tornava indietro di una pagina (anche se sul mio sito, avendo i commenti in ajax non veniva ricaricata mai una nuova pagina e quindi i commenti non si perdevano). Con Math Comment Spam Protection Plugin questo non accade.
Il bello è che sul sito ufficiale si avverte, in tutta onestà:
Any ways: if you are afraid of modifying the source code of your theme, I recommend that you go for the Did You Pass Math? plugin.
ATTENZIONE: la prima volta che si attiva il plugin e si carica una pagina con i commenti potrebbe venire fuori questo messaggio di errore:
Warning: array_rand(): Second argument has to be between 1 and the number of elements in the array in /wp-content/plugins/math-comment-spam-protection.php on line 65
Per risolvere il problema basterà andare nell’area di amministrazione del proprio sito, Opzioni->Math Comment Spam e cliccare sul pulsante “Aggiorna opzioni”. Dopodicché l’errore non sarà più visualizzato.
UPDATE: Mi sono accorto che, a differenza di prima, ora il codice antispam viene chiesto anche all’amministratore del sito. Ho quindi provveduto a modificare il codice che bisogna inserire nel file comments.php del proprio template, inserendo il controllo se l’utente loggato è ‘admin’ (riporto solo il codice iniziale che ho modificato):
NOTA: Ringrazio tutti coloro che mi hanno segnalato i problemi con il vecchio plugin e se volete provare il nuovo... commentate pure senza tregua questo articolo 🙂