Komentarfunktion - Spamfilter
Hey Eksperter...Jeg sider og bakser med et nyhedsscript med en kommentar funktion. Og da jeg ikke vil have at brugerne på sitet overspammer de forskellige nyheder vil jeg gerne have et spamfilter. Sådan at man kun kan skrive hver 30 sekund eller sådan noget.
Jeg er ikke helt let på fod når det gælder php så vil meget gerne har en smule forklaring på løsningen da mit mål også er at lære noget :) Jeg har leget lidt med session, men desvære uden held.
Således ser min kode ud indtil videre:
visnyhed.php
.....
<form method="post" action="form.handle.php" onsubmit="return CNSubmitComment()" name="comment" id="comment">
<input type="hidden" name="referer" value="comment">
<input type="hidden" name="parent" value="<?php echo $_GET['id']; ?>">
<input type="hidden" name="ip" value="<?php echo $ip ?>">
Navn: <input type="text" name="name" style="width: 120px" name="name" tabindex="1" MAXLENGTH=12>
Email: <input type="text" name="email" value="n/a" style="width: 120px" id=mail tabindex="2">
<br>
<textarea name="text" rows="7" cols="0" style="width: 415px"></textarea><br><br>
<input type="submit" name="submit" value="Send"> <input type=checkbox name=CNremember id=CNremember value=1> <label for=CNremember>Remember Me</label> (<a href="java script:CNforget();">Forget Me</a>)
</form>
....
formhandle.php
<?php
include('inc.config.php');
mysql_connect($cfg['mysql']['host'],$cfg['mysql']['username'],$cfg['mysql']['password']);
mysql_select_db($cfg['mysql']['database']);
if ($_POST['referer'] == 'comment') {
if (empty($_POST['name']) && empty($_POST['text'])) {
echo '<font color="red">Alle felter er ikke udfyldt!</font>';
} else {
$_POST['email'] = preg_match("/^[\w\.\-_]+@([\w\-_]+\.)+\w+$/i",$_POST['email']) ? $_POST['email'] : '';
mysql_query("INSERT INTO comments VALUES ('','".$_POST['name']."','".$_POST['email']."',now(),'".$_POST['text']."','".$_POST['ip']."','".$_POST['parent']."')") or die(mysql_error());
header("Location: visnyhed.php?id=".$_POST['parent']);
}
}
?>
På forhånd mange tak!
Mvh. Tobias