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>';
};};
Je pattern klopt niet. Probeer dit eens:


<?php

$pattern = "/Hi! Good site/i";
if(preg_match($pattern, $jedata)) {
    echo "Optyfen";
} else {
    //de rest
}

?>
nope, ook niet helaas.
Vreemd. Dit gaat prima bij mij:
<?php
$str = 'Hi! Good site respect! Visit: www.site.com';;

if (preg_match ('/Hi! Good site respect!/', $str)) {
echo 'niet toegestaan';
}
?>
bij mij ook, maar met de rest er omheen heeft hij geen zin meer.
misschien teveel "if" statements ofzo?

Reageren