Originariamente inviato da Andrea1979
Puoi benissimo far scrivere le parole al PHP
codice:
<SCRIPT LANGUAGE= "JavaScript">
var k = 3; //il numero delle parole. Da variare se ne inserite di più o meno.
var isProfane = new makeArray(k);
var word = new makeArray(k);
function checkForProfanity(elnum) {
var temp = document.forms[0].elements[elnum].value;
temp = temp.toLowerCase();
Codice PHP:
<?php
//procedura che legge dal file e
//mette in un array $proibite
for ($i = 0; $i < count($proibite); $i++) {
echo("word[".$i."] = \"".$proibite[$i]."\";\n");
}
?>
for (var j = 1; j <= k; j++) {
isProfane[j] = temp.indexOf(word[j]);
}
for (var j = 1; j <= k; j++) {
if (isProfane[j] != -1) {
alert("Non puoi usare il termine '"+word[j]+"'.");
document.forms[0].elements[elnum].value = "";
j = k + 1;
document.forms[0].elements[elnum].focus();
}
else {}
}
}
function makeArray(n) {
this.length = n
for (var i = 1; i<=n; i++) {
this[i] = new String();
}
return this
}
</SCRIPT>
Ne ho 2 tipi di parole proibite, uno normale e uno per gli url che mette a video "il sito www.parola proibita.it non è ammesso".
Codice PHP:
//parole proibite (vedi parole-proibite.php)
$stringa = $_POST['messaggio'].' '.$nome.' '.$email.' '.$url.' '.$citta;
foreach($parole_proibite as $parola){
if (stristr($stringa, $parola) !== false){
$errore .= "<tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\">La parola \"<font color=\"red\">$parola</font>\" non è ammessa</font></center>
";
}
}
//parole proibite inserite nell'url (vedi parole-proibite.php)
$stringa = $_POST['url'];
$stringa = explode(" ",strtolower($stringa));
foreach($stringa as $sito){
foreach($parole_proibite as $banned){
if (strpos($sito,$banned))
$errore .= "<tr><td valign=\"center\"><center><font family=\"arial\" size=\"5\">Il sito \"<font color=\"red\">$sito</font>\" non è ammesso</font></center>
";
}
}