Group: NB Supporter Posts: 16027 Location: #forumfree
Status:
Per commenti, domande, o per segnalare eventuali problemi da voi riscontrati nell'utilizzo delllo script presentato in questa guida, potete utilizzare questa discussione
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.
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ò
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
<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