hi. ich woltle ein gästebuch programmieren und da als spamschutz ne ip sperre machen. also beim ersten eintrag die ip in eine db eintragen + datum. dann bei den weiteren veruchen gucken ob ip in der db is und ob das datum schon länger zurückliegt als 30 minuten. wenn ja dann kann man senden. wenn nein halt nich. mein code sieht inetwa so aus:
die query mit dem insert into ips will aus für mich unbekannten gründen nich laufen. im admin gehts super.... dadran kann das also nich liegen. hoffe ihr könnt mir helfen. achja, das ganze könnt ihr euch auf leijo.le.funpic.de/gaestebuch.php angucken. und bitte nich spammen!! das is es ja was ich vermeiden will ;-)
noch ein aufgefallenes problem: das überprüfen der hp und e-mail funzt nich. wie soll ich das sonst machen???
PHP:
$ipselect = mysql_query("SELECT * FROM `ips` WHERE `ip` = '".mysql_real_escape_string($REMOTE_ADDR)."'") or die(mysql_error());
if (mysql_fetch_assoc($ipselect))
{
echo "Sorry. Du kannst wegen Spamschutzes keinen Eintrag mehr verfassen.
Nachdem du etwas in dieses Gästebuch geschrieben hast musst du 30 Minuten warten,
damit du wieder etwas neues schreiben kannst.";
?>
<div style="margin:2em" />
<?php
}
else
{
if(isset($_POST["submit"]))
{
if($_POST["name"] !="" AND
$_POST["eintrag"] !="" AND
($_POST["e-mail"] != "" AND
stristr($_POST["e-mail"], '@') === TRUE AND
stristr($_POST["e-mail"], '.de') === TRUE OR
$_POST["e-mail"] == "") AND
($_POST["homepage"] != "" AND
stristr($_POST["homepage"], 'www.') === TRUE OR
$_POST["homepage"] == ""))
{
mysql_query("INSERT INTO `ips` (`ip`) VALUES ('".mysql_real_escape_string($REMOTE_ADDR)."')") or die(mysql_error());
mysql_query("INSERT INTO `guestbook` (`name`, `homepage`, `e-mail`, `eintrag`) VALUES ('".mysql_real_escape_string($_POST["name"])."', '".mysql_real_escape_string($_POST["e-mail"])."', '".mysql_real_escape_string($_POST["homepage"])."', '".mysql_real_escape_string($_POST["eintrag"])."')") or die(mysql_error());
mysql_query("DELETE FROM `ips` WHERE NOW() - `date` = '0:30:00'") or die(mysql_error());
echo "Senden erfolgreich!";
}
else echo "Nich alle Felder korrekt ausgefüllt. ";
}}
noch ein aufgefallenes problem: das überprüfen der hp und e-mail funzt nich. wie soll ich das sonst machen???
Zuletzt bearbeitet: