dag allemaal, ik heb een jaar geleden een site voor mijn zus gemaakt met een gastenboek.
gastenboek werkt prima maar sinds kort wordt ze gespammed met constant berichten als "Hi! Good site respect! visit www.iederekeeranders.com".
nou dacht ik, als ik gewoon als voorwaarde neer zet dat "Hi! Good site" niet in een bericht voor mag komen dan ben ik er vanaf.
maar gek genoeg pakt hij de preg_match niet.
zo ziet mijn code eruit:
if ($action == "sign"){
if ($trigger){
if ($name == ""){ print 'Name field is empty'; $error = "ja"; }
if ($msg == ""){ print 'Message field is empty'; $error = "ja"; }
if (preg_match("{Hi! Good site}",$msg)){ print 'No spam asshole'; $error = "ja"; }
if ($name != ""&&$msg != ""&&!preg_match("{Hi! Good site}",$msg)){
include 'smileys.php';
$newmsg = str_replace($zoeksmiley,$vervangsmiley,$msg);
$zoek2 = array(chr(13));
$vervang2 = array("<BR>");
$nieuwtext = str_replace($zoek2,$vervang2,$newmsg);
$zoek = array('http://');
$vervang = array("");
$homepagec = str_replace($zoek,$vervang,$homepage);
if ($homepage != ""){
$homepage2 = "http://$homepagec";
}
if ($homepage == ""){
$homepage2 = "";
}
print '
<body background="'.$bleh2['bg'].'" bgcolor="'.$bleh2['bgcolor'].'" onload="wait();">';
mysql_query("INSERT INTO comments(afzender,bericht,datum,tijd,homepage,aan,ip) VALUES('$name','$nieuwtext','$datum','$tijd','$homepage2','$usr','$ip')");
print '<BODY onload="wait()">
Thank you for signing the guestbook of '.$bleh2['naam'].'!';
};};
if (!$trigger||$error == "ja"){
print '
<body background="'.$bleh2['bg'].'" bgcolor="'.$bleh2['bgcolor'].'">
<center>
<FORM method="POST" action="gb.php?actn=sign&usr='.$usr.'&lan='.$lan.'">
Name: <input type="text" maxlength="20" name="name"><BR>
Homepage: <input type="text" maxlength="150" name="homepage"><BR>
Message:<BR>
<TEXTAREA name="msg" style="width: 80%; height: 70%;" rows="20"></TEXTAREA><BR>
<INPUT type="hidden" value="trigger" name="trigger">
<INPUT type="submit" class="button" value="submit!">
</FORM>';
};};
725 views