• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

insert-query will nich....

Status
Für weitere Antworten geschlossen.

Joda1994

Neues Mitglied
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:
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. ";
	}}
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???
 
Zuletzt bearbeitet:
Werbung:
warum schreibt keiner was?? is das forum iwie inaktiv geworden oda liegts dadran, das keiner ne lösung weiß?? was is eig der unterschied zwischen : - D und : g r i n :??
 
vllt weiß ja jez jemand mehr. also das mit dem sperren klappt. das überprüfen lass ich wech. ich hab jez ma getestet. nachdem ersten geblocktem versuch wurden keine einträge mehr angezeigt!! wodran liegt das. die sind klar noch vorhanden.
 
Werbung:
Du schickst das Formular ja nicht ab, da fehlt das action-Attribut?!

Code:
<form method="post">

Abgesehen davon: gibt mysql_error() denn irgendwelche Fehler aus?
 
Werbung:
Versuch es Mal so:
PHP:
mysql_query("INSERT INTO `ips` (`ip`) VALUES ('".$_SERVER['REMOTE_ADDR']."')") or die(mysql_error());
 
ja ne das klappt ja jez. probier ma mehrere einträge abzuschicken. iwann werden die dann nich mehr angezeigt(nachdem man durch die sperre geblockt wurde) ich bekomm da im mom garnixmehr angezeigt obwohl die sperrzeit schon lange abgelaufen is. auch ein löschen des inhaltes der ip-db brachte nix.
edit:
hier alle fehler die ich gefunden hab.

1.:eek:k, die sperre wird imma dann angezeigt, wenn man probiert einen zweiten eintrag abzuschicken. man muss dann auf zurück klicken bis das formular wieder angezeigt wird und dann f5

2.:nach dem absenden eines eintrages(beim ersten mal) wird er nicht direkt angezeigt. dann einfach f5.

3.:das aufheben der sperre geht nich. keine lösung gefunden.

weiß jemand wie mann das lösen kann??
wer mehr fehler findet bitte posten
 
Zuletzt bearbeitet:
Werbung:
PHP:
mysql_query("DELETE FROM `ips` WHERE DATE_SUB(NOW(), INTERVAL `date`) > 0:0:30") or die(mysql_error());
besser??
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben