Hallo,
ich will mir ein kleines Antispam Script bauen in welchem in einer Datenbank alle IPs mit timestamps eingetragen werden.
Jetzt habe ich ein Problem beim löschen der alten IPs. Und zwar sollen die automatisch bei einem submit gelöscht werden, wenn die angegebene Zeitspanne überschritten wurde.
Ich wollte das so bewerkstelligen, aber es klappt nicht. Sieht jmd. den Fehler?
Das Problem ist, dass die Einträge einfach nicht gelöscht werden und das ganze System eigtl. nicht funktioniert. Was mach ich falsch?
ich will mir ein kleines Antispam Script bauen in welchem in einer Datenbank alle IPs mit timestamps eingetragen werden.
Jetzt habe ich ein Problem beim löschen der alten IPs. Und zwar sollen die automatisch bei einem submit gelöscht werden, wenn die angegebene Zeitspanne überschritten wurde.
Ich wollte das so bewerkstelligen, aber es klappt nicht. Sieht jmd. den Fehler?
Code:
//Die Werte die bei einem Submit in eine extra Tabelle abgelegt werden
$sql =" INSERT into lachs_antispam (
ip,
datum,
lastentry,
dest
)
VALUES (
'".getenv('REMOTE_ADDR')."',
NOW(),
'".time()."',
'sb'
)";
mysql_query($sql) OR die(mysql_error());
...
//Löschen von veralteten IPs
$limit = time()-60;
$sql =" DELETE FROM lachs_antispam WHERE lastentry > $limit";
mysql_query($sql) OR die(mysql_error());
...
//Auslesen und Überprüfun ob IP schon vorhanden und ob die Zeitspanne von 60sek überschritten wurde
$sql =" SELECT lastentry FROM lachs_antispam WHERE ip = '".getenv('REMOTE_ADDR')."' ORDER BY datum DESC LIMIT 1";
$result = mysql_query($sql) OR die(mysql_error());
if (mysql_num_rows($result))
{
while($row = mysql_fetch_assoc($result))
{
if ($row['lastentry'] < $limit)
{ echo "lastentry > limit";
echo $row['lastentry'].">".$limit;
die("<br>Du musst mind. 60sec Abstand zwischen 2 Postings halten!");
}
}
} else {
//Wenn keine Einträge vorhanden...
}
...
Das Problem ist, dass die Einträge einfach nicht gelöscht werden und das ganze System eigtl. nicht funktioniert. Was mach ich falsch?
Zuletzt bearbeitet: