23/12 5.10 Pubblicata la guida su come Realizzare una tabella con newsboard realizzata da Scorpy87 15/12 4.15 Pubblicata la Guida per rendere un plugin compatibile con tutte le versioni di Firefox realizzata da Logan 20/11 3.20 Pubblicato il secondo aggiornamento della Raccolta di funzioni Php realizzato da [Antonio] 17/11 4.15 Pubblicata la guida su come realizzare un Css dock-menu realizzata da Scorpy87 29/10 2.30 Aggiunta alla Guida all'installazione in locale realizzata da Logan la Guida all'installazione di Wikipedia 23/9 2.10 Conclusa affiliazione con Nds-Site.com Forum Staff | Blog | Sito

Closed
Script Anti Spam in Tagboard
view post Posted on 12/9/2009, 11:11Quote
Avatar

Old Fox

Group: NB Supporter
Posts: 16027
Location: #forumfree


Status: Utente anonimo


Per commenti, domande, o per segnalare eventuali problemi da voi riscontrati nell'utilizzo delllo script presentato in questa guida, potete utilizzare questa discussione

http://newsboard.forumfree.net/?t=42761070




Lo script che andrò ad illustrare serve per ridurre lo spam in TagBoard, se si tenterà di inserire un link non presente nella lista (array) dei siti permessi verrà annullata l'operazione ed apparirà un alert il codice deve essere inserito in Gestione codici HTML in fondo al sito.

Lo script funziona con tutti i maggiori browser (Firefox, Internet Explorer, Safari, Opera e altri) purchè abbiano Javascript abilitato.


Codice

CODICE
<script type="text/javascript">
//Creato da Ltk_Sim per il NewsBoard Forum
var mexnospam = 'Non puoi inserire links esterni in Tag!'

Inizia lo script, sostituite il contenuto della variabile mexnospam con il testo che vogliate appaia quando qualche utente tenta di inserire un URL non consentito.
CODICE
urlAllowed = new Array();
urlAllowed [0]="example.forumfree.net";
urlAllowed [1]="supporto.forumfree.net";
urlAllowed [2]="newsboard.forumfree.net";
urlAllowed [3]="google.com";

Non toccate urlAllowed = new Array(); modificate invece le voci dell'array urlAllowed[0], urlAllowed[1] ecc. con i siti permessi che saranno correttamente inviati. Se volete aggiungere un sito inserite:
CODICE
urlAllowed [X]="example.com";
dove X sta per l'ultimo elemento dell'array aumentato di uno (in questo caso 4 visto che l'ultimo valore dell'array è 3).
CODICE
var tagboardv = document.tagboard ? document.tagboard : 0;
if(tagboardv) {
function noSpam() {
var content = tagboardv.ffmsg.value.toLowerCase();
if(content.indexOf("http://") != -1 || content.indexOf("www") != -1)

Non toccate niente tranne la condizione di if se volete aggiungendo parole che non possono essere inserite in tag inserendo:
CODICE
|| content.indexOf("parola") != -1
dove || è OR quindi anche se c'è solo questa parola impedirà l'invio del messaggio in tag e sostituite parola con la parola "bandita" ad esempio se vorrò impedire che in tag vengano inserite le parole: http://, www, forumcommunity e blogfree sostituirò
CODICE
if(content.indexOf("http://") != -1 || content.indexOf("www") != -1)
con:
CODICE
if(content.indexOf("http://") != -1 || content.indexOf("www") != -1 || content.indexOf("forumcommunity") != -1 || content.indexOf("blogfree") != -1)
Le parole devono essere inserite in minuscolo nello script (l'utente che prova ad inviare una parola anche se in maiuscolo si vedrà la richiesta di invio rifiutata)

Inoltre vi ricordo che la parentesi tonda ")" va chiusa alla fine ovvero prima della parentesi graffa.
CODICE
{
var x=0;
var arrayn = urlAllowed.length;
while(x<arrayn)
{
if(content.indexOf(urlAllowed[x]) != -1)
{
return true;
}
else{
if (x==arrayn-1)
{
alert(mexnospam);
return false;
}
x++;
}
}
}
}
tagboardv.onsubmit = noSpam;
tagboardv.ffmsg.onkeypress = function(e)
{
tagboardv.rem.value=300-tagboardv.ffmsg.value.length;
var submittag = tagboardv.elements;
for(i=0;i<submittag.length;i++)
{
var ind = new function() {this.i = i;}
if(submittag[ind.i].value == "Invia")
{
var submittag = submittag[ind.i];
}
}
valueKey=(isNav) ? e.which : window.event.keyCode;
if(valueKey==13 && (parseInt(tagboardv.rem.value)>=1) ) {
submittag.click();
}
}
}
</script>

Lasciate invariata questa parte.
Codice Completo script anti spam con alert
CODICE
<script type="text/javascript">
//Creato da Ltk_Sim per il NewsBoard Forum
var mexnospam = 'Non puoi inserire links esterni in Tag!'
urlAllowed = new Array();
urlAllowed [0]="example.forumfree.net";
urlAllowed [1]="supporto.forumfree.net";
urlAllowed [2]="newsboard.forumfree.net";
urlAllowed [3]="google.com";
var tagboardv = document.tagboard ? document.tagboard : 0;
if(tagboardv) {
function noSpam() {
var content = tagboardv.ffmsg.value.toLowerCase();
if(content.indexOf("http://") != -1 || content.indexOf("www") != -1)
{
var x=0;
var arrayn = urlAllowed.length;
while(x<arrayn)
{
if(content.indexOf(urlAllowed[x]) != -1)
{
return true;
}
else{
if (x==arrayn-1)
{
alert(mexnospam);
return false;
}
x++;
}
}
}
}
tagboardv.onsubmit = noSpam;
tagboardv.ffmsg.onkeypress = function(e)
{
tagboardv.rem.value=300-tagboardv.ffmsg.value.length;
var submittag = tagboardv.elements;
for(i=0;i<submittag.length;i++)
{
var ind = new function() {this.i = i;}
if(submittag[ind.i].value == "Invia")
{
var submittag = submittag[ind.i];
}
}
valueKey=(isNav) ? e.which : window.event.keyCode;
if(valueKey==13 && (parseInt(tagboardv.rem.value)>=1) ) {
submittag.click();
}
}
}
</script>


Se invece volete avere questo script senza messaggio d'alert (in modo che eventuali spammer pensino ad un errore del forum) basta rimuovere: alert(mexnospam); e la variabile mexnospam: var mexnospam = 'Non puoi inserire links esterni in Tag!' (in quanto inutile).
Codice completo script anti spam senza alert
CODICE
<script type="text/javascript">
//Creato da Ltk_Sim per il NewsBoard Forum
urlAllowed = new Array();
urlAllowed [0]="example.forumfree.net";
urlAllowed [1]="supporto.forumfree.net";
urlAllowed [2]="newsboard.forumfree.net";
urlAllowed [3]="google.com";
var tagboardv = document.tagboard ? document.tagboard : 0;
if(tagboardv) {
function noSpam() {
var content = tagboardv.ffmsg.value.toLowerCase();
if(content.indexOf("http://") != -1 || content.indexOf("www") != -1)
{
var x=0;
var arrayn = urlAllowed.length;
while(x<arrayn)
{
if(content.indexOf(urlAllowed[x]) != -1)
{
return true;
}
else{
if (x==arrayn-1)
{
return false;
}
x++;
}
}
}
}
tagboardv.onsubmit = noSpam;
tagboardv.ffmsg.onkeypress = function(e)
{
tagboardv.rem.value=300-tagboardv.ffmsg.value.length;
var submittag = tagboardv.elements;
for(i=0;i<submittag.length;i++)
{
var ind = new function() {this.i = i;}
if(submittag[ind.i].value == "Invia")
{
var submittag = submittag[ind.i];
}
}
valueKey=(isNav) ? e.which : window.event.keyCode;
if(valueKey==13 && (parseInt(tagboardv.rem.value)>=1) ) {
submittag.click();
}
}
}
</script>




CSS3 Link nascosti
Per prevenire ulteriormente lo spam consigliamo anche l'inserimento del CSS3 in modo che non venga mostrato un eventuale link postato dall'utente che ha Javascript disabilitato quindi inserite in Modifica Colori e Stili:
CODICE
.tag .mainbg a[href ^="http://"] {display:none;}
.tag .mainbg a[href ^="http://example.forumfree.net"], .tag .mainbg a[href ^="http://www.ripe.net"] {display:inline;}

Modificate http://example.forumfree.net con l'URL del vostro forum, lasciate ripe.net (che è il sito degli IP)
e se volete aggiungere qualche eccezione aggiungete:
CODICE
, .tag .mainbg a[href ^="http://www.example.com"]
dopo l'ultimo elemento con proprietà display:inline; ad esempio se volessimo avere le stesse eccezioni del codice Javascript in modifica colori e stili metteremo:
CODICE
.tag .mainbg a[href ^="http://"] {display:none;}
.tag .mainbg a[href ^="http://example.forumfree.net"], .tag .mainbg a[href ^="http://www.ripe.net"], .tag .mainbg a[href ^="example.forumfree.net"], .tag .mainbg a[href ^="http://supporto.forumfree.net"], .tag .mainbg a[href ^="http://newsboard.forumfree.net"], .tag .mainbg a[href ^="http://google.com"]  {display:inline}


Purtroppo il CSS3 non è supportato da alcune versioni di Internet Explorer.

Guida e script creati da Ltk_Sim per il NewsBoard Forum.
Si ringraziano Leggendario 2 e ~ DarkStyle per i suggerimenti dati.

 
P_MSG P_WEBSITE Top
0 replies since 12/9/2009, 11:11
 
Closed

Fast reply

You need to register in order to post: click here