php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.04.2006, 17:00  
Charokee
Gast
 
Beiträge: n/a
Standard [Erledigt] [erledigt] IP Sperre funktioniert nicht wie sie soll

Hallo!

Ich programmiere ein Gästebuch. In diesem Gästebuch möchte ich eine IP-Sperre einbauen, also das nur alle 10 Minuten ein Eintrag von einer IP-Adresse möglich ist. Aber irgendwie will das Script nicht so wie ich will und ich entdecke den Fehler nicht. Vielleicht kann einer von euch mir ja mal auf die Sprünge helfen.

Code:
		
		// IP Sperre
		$sql = mysql_query("SELECT id, ip, datum FROM guestbook ORDER BY id DESC LIMIT 10");
		while ($row = mysql_fetch_object($sql));
		{
			$x = $row->datum+36000;
			if ($row->ip == $_SERVER['REMOTE_ADDR'] && time() <= $x)
			{
				$failure = true;
				$meldung_4 = "Achtung! Sie können nur alle 10 Minuten einen Gästebucheintrag speichern.
"; 
			}
		}
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.04.2006, 17:20  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

10 Minuten sind 60 * 10 = 600 Sekunden und nicht 36.000.

Aber am besten eh so testen.

PHP-Code:
<?php
$sql 
"SELECT COUNT(*) FROM guestbook WHERE ip = '$_SERVER[REMOTE_ADDR]' AND datum >= (NOW() - 600)";
$res mysql_query($sql) or die("Error using mysql_query($sql): ".mysql_error());
$num mysql_result($res0);
if (
$num 0) {
    print 
'Du darfst dich noch nicht wieder hier verewigen.';
}
?>
Voraussetzung ist, dass datum das Eintragsdatum als Unix-Timestamp beinhaltet, davon bin ich - nach deinem Skript oben - ausgegangen.
Zergling-new ist offline  
Alt 19.04.2006, 22:04  
Charokee
Gast
 
Beiträge: n/a
Standard

Das ist ein guter Ansatzpunkt, funktioniert aber leider auch nicht. Es wird nichtmal eine Fehlermeldung ausgegeben.
Man kann das Gästebuch trotzdem nach Lust und Laune flooden.
Und genau das möchte ich verhindern bzw. erschweren.

Zitat:
10 Minuten sind 60 * 10 = 600 Sekunden und nicht 36.000.
Wie peinlich. Ich habe da wohl falsch gerechnet.

Mit dem Unix-Timestamp hast du recht. So wird die Eintragszeit gespeichert im Feld "datum".

- edit -

Du hast mir aber den nötigen Denkanstoss gegeben den ich brauchte.
Mit dem Snippet klappt es:
Code:
// IP Sperre
$x = time() - 600;
$sql = mysql_query("SELECT id, ip, datum FROM guestbook WHERE ip = '$ip' AND datum >= '$x'");
$count = mysql_numrows($sql);
if ($count >= 1)
{
$failure = true;
$meldung4 = "Achtung! Sie können nur alle 10 Minuten einen Gästebucheintrag speichern.
";
}
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Update - Sperre funktioniert nicht areUkidding PHP Tipps 2008 39 26.06.2008 22:47
[Erledigt] Menü funktioniert nicht,nach Serverwechsel. tawhed PHP Tipps 2008 12 19.06.2008 15:56
[Erledigt] echo ausgabe funktioniert nicht (anfänger) Dragan PHP Tipps 2008 22 17.06.2008 20:34
[Erledigt] Apache funktioniert nicht richtig YYA Server, Hosting und Workstations 5 16.06.2008 15:24
[Erledigt] Erst mischen dann gruppieren? caro Datenbanken 2 11.06.2008 15:47
[Erledigt] str_replace funktioniert nach neuer Xampp Installation nicht mehr! stallone PHP Tipps 2008 26 25.05.2008 14:50
like funktioniert nicht immer Sven Datenbanken 3 23.07.2007 21:40
Session funktioniert nicht bei session.use_cookies = Off Quagga PHP Tipps 2007 13 13.01.2007 18:27
Lokal funktioniert alles -> auf Server fast nichts PsychoEagle Datenbanken 2 14.08.2006 08:43
Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24
[Erledigt] document.getElementById bringt keine Änderung Chr!s HTML, Usability und Barrierefreiheit 10 18.05.2005 21:28
Dateien erstellen oder schreiben funktioniert nicht im Web PHP Tipps 2004-2 1 05.12.2004 19:39
$row funktioniert nicht, warum? Paulo PHP Tipps 2004 10 22.09.2004 17:22
Header Location funktioniert nicht PHP Tipps 2004 10 12.08.2004 17:11

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
ip sperre funktioniert nicht, dir-600 ip sperren, php gästebuch ip sperre, dir-600 ip sperre, $sperre=time()-600;, gästebuch ip sperre, ip-sperre gästebuch, ip sperre 10 minuten php, gästebuch mit ip sperre

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.