Heey ik heb een gastenboek dat gespamt wordt dus wilde graag een badword blocker. deze heb ik hier ingebouwd met javascript alleen hij geeft wel aan dat het een fout woord is alleen vervolgens als je op ok klikt schrijft hij het bericht alsnog naar gb.txt. weten jullie het juiste php script hiervoor om het te stoppen schrijven.

<!--BEGIN WORD FILTER JAVASCRIPT-->
<script language="JavaScript1.2">



var swear_words_arr=new Array("fuck","bloody","war","terror","shit","ass","cunt","pussy","piss","webcam");
var swear_alert_arr=new Array;
var swear_alert_count=0;

function reset_alert_count()
{
swear_alert_count=0;
}

function validate_user_text()
{
reset_alert_count();
var compare_text=document.form1.user_text.value;
for(var i=0; i<swear_words_arr.length; i++)
{
for(var j=0; j<(compare_text.length); j++)
{
if(swear_words_arr[i]==compare_text.substring(j,(j+swear_words_arr[i].length)).toLowerCase())
{
swear_alert_arr[swear_alert_count]=compare_text.substring(j,(j+swear_words_arr[i].length));
swear_alert_count++;
}
}
}
var alert_text="";
for(var k=1; k<=swear_alert_count; k++)
{
alert_text+="\n" + "(" + k + ") " + swear_alert_arr[k-1];
}
if(swear_alert_count>0)
{
alert("The form cannot be submitted.\nThe following illegal words were found:\n_______________________________\n" + alert_text + "\n_______________________________");
document.form1.user_text.select();
}
else
{
document.form1.submit();
}
}

function select_area()
{
document.form1.user_text.select();
}

window.onload=reset_alert_count;

</script>
<!--BEGIN WORD FILTER JAVASCRIPT-->

</head>
<body bgcolor="#FFFFFF">

<center><font size="2" face="Arial, Helvetica, sans-serif"></font><span class="tekst">Schrijf het gastenboek</span> <br />


<!--BEGIN FORM-->
<table cellpadding="10" style="border:2 solid #FF9900" width="200" align="center"><tr><td>
<form name="form1" method="post">
<span class="tekst">Naam:<br>
<input name="naam" type="text" size="24">
<br>
Bericht:<br>
<textarea rows="4" cols="30" name="user_text" font-family:verdana,arial,helvetica; font-weight:normal; font-size:10pt" onclick="select_area()"></textarea>
<table><tr><td></td></tr></table>
<center><input type="submit" cursor:pointer" name="submit" value="Submit" onclick="validate_user_text();"></center>
</form>
</table>
<!--END FORM-->

<?
//de variable
$titelhead='Gastenboek';
$file = 'gb.txt';
$datum= date('d-m-Y');
$naam= $_POST['naam'];
$bericht= str_replace("\r\n", "<br/>", $_POST['user_text']);
if(isset($_POST['submit']))
{
//schrijven naar de file
$bestand= fopen($file, a)or die("file openen mislukt");
fwrite($bestand, '|'.$naam.'|'.$datum.'|'.$bericht.'|' . "\n")or die("schrijven mislukt");
fclose($bestand);
echo '<span class="tekst">Het bericht is toegevoegd!<br><br><a href=\'guestbook.php\'>Ga naar het gastenboek</span></a>';
}else{ ?>
<?php }

?>


Hij staat ook op: http://www.shift-band.nl/guestbook/sign2.php
het eerste php deel staat boven <!--BEGIN FORM--> ;)
oeps -_-
Heeft weinig nut tegen geautomatiseerde botjes, die gebruiken geen javascript. Het is toch makkelijker om met PHP te maken, voordat je alles wegschrijft.
ze hoeven toch geen javascript te gebruiken het gaat er om dat de posts geblokeerd worden. In php kon ik geen blocker vinden alleen filters die de woorden in sterretjes veranderen.
Nou, pas die filters die die woordjes in sterretjes veranderen dan aan ?
zo erg moeilijk kan dat toch niet zijn ?
<?php
$spamfilter = array("fuck","bloody","war","terror","shit","ass","cunt","pussy","piss","webcam");

if (!in_array($_POST['bericht'], $spamfilter)) {
echo "okay";
}else{
echo "opzouten";
}
?>
ok bedankt alleen ik ben niet echt goed in php oid;) dus waar moet ik het plaats? :$ dit is mijn script normaal zonder javascript.




<font size="2" face="Arial, Helvetica, sans-serif"></font><span class="tekst">Schrijf het gastenboek</span> <br />
<?
//de variable
$titelhead='Gastenboek';
$file = 'gb.txt';
$datum= date('d-m-Y');
$naam= $_POST['naam'];
$bericht= str_replace("\r\n", "<br/>", $_POST['user_text']);
if(isset($_POST['submit']))
{

//schrijven naar de file
$bestand= fopen($file, a)or die("file openen mislukt");
fwrite($bestand, '|'.$naam.'|'.$datum.'|'.$bericht.'|' . "\n")or die("schrijven mislukt");
fclose($bestand);
echo '<span class="tekst">Het bericht is toegevoegd!<br><br><a href=\'guestbook.php\'>Ga naar het gastenboek</span></a>';
}else { ?>
<!-- het invulding -->


<form name="form1" method="POST">
<br>
<span class="tekst">Naam:<br>
<input name="naam" type="text" size="24">
<br>
Bericht:<br>
<textarea name="bericht" cols=30 rows=4></textarea>
<br />
<input type="submit" name="submit" value="Plaats bericht" onclick="validate_user_text();>
</font><font size="2" face="Arial, Helvetica, sans-serif"></span>
</form>

<?php }

?>

</form>

Reageren