php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.08.2009, 13:52  
Neuer Benutzer
 
Registriert seit: 23.01.2009
Beiträge: 16
w35T3n befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] IP sperre funktioniert nicht richtig

Hallo Leute,
Ich habe mir gerade eine IP sperre gebaut, funktioniert auch schon!
ABER: ich möchte das die IP nach 30 min nicht mehr gesperrt ist und aus der DB gelöscht wird und das funktioniert leider nicht...

hier ist der Code

PHP-Code:
<?php   

//Hier steht normalerweise die DB-Verbindung

mysql_connect("$host""$loginusername""$passwort")or die("cannot connect to server ");
mysql_select_db("$db_name")or die("cannot select DB");

$ip $_SERVER["REMOTE_ADDR"];
$time time();
$sql=mysql_query("INSERT INTO IP(IP, TIME) VALUES('"mysql_real_escape_string($_SERVER["REMOTE_ADDR"]) . "', '" mysql_real_escape_string(time()) . "')");

if(isset(
$row["TIME"]))
{

$oldtime $row["TIME"];
$newtime time();
$wartezeit 1800;
$result_time $newtime $oldtime;

if(
$result_time >= $wartezeit){
$eintrag "DELETE FROM $db_name WHERE IP";   
}  else  {
echo
"Du kannst noch nicht wieder spenden";
}
}
?>
hoffe ihr könnt mir helfen

Geändert von w35T3n (01.08.2009 um 14:00 Uhr).
w35T3n ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.08.2009, 14:02  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Tag auch,

Code:
$sql = "DELETE FROM `tabelle` WHERE DATE_SUB(NOW(), INTERVAL 30 MINUTE) > `datum`";
Gruß
Asipak ist offline  
Alt 01.08.2009, 14:05  
Neuer Benutzer
 
Registriert seit: 23.01.2009
Beiträge: 16
w35T3n befindet sich auf einem aufstrebenden Ast
Standard

danke schonmal, aber wie und woo muss ich das jetzt einfügen
w35T3n ist offline  
Alt 01.08.2009, 14:08  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Hmm, das solltest du aber eigentlich selber wissen. Überleg doch mal, was die Abfrage genau tut, dann sollte dir eingentlich klar werden, wo der Code in dein Script hingehört!

Es ist jedenfalls erstmal egal, wo du die Abfrage genau einbaust. Gelöscht werden die IPs in jedem Fall. Nur von der Logik her gehört sie eben besser an eine bestimmte Stelle!

Gruß
Asipak ist offline  
Alt 01.08.2009, 14:14  
Neuer Benutzer
 
Registriert seit: 23.01.2009
Beiträge: 16
w35T3n befindet sich auf einem aufstrebenden Ast
Standard

ja, aber was muss ich statt dem `datum` da hin schreiben
w35T3n ist offline  
Alt 01.08.2009, 14:21  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

du stellst mit DATE_SUB einen Vergleich an. Dabei wird die aktuelle Zeit mit der Zeit in der Tabellenspalte `datum` verglichen. Wenn dieser Wert (aktueller Zeitwert) größer ist als `datum` + 30 Minuten, werden die entsprechenden Einträge gelöscht!
Asipak ist offline  
Alt 01.08.2009, 14:39  
Neuer Benutzer
 
Registriert seit: 23.01.2009
Beiträge: 16
w35T3n befindet sich auf einem aufstrebenden Ast
Standard

aber es funktioniert leider nicht

kann man das nicht auch so machen ?
Zitat:
<?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($res, 0);
if ($num > 0) {
print 'Du darfst dich noch nicht wieder hier verewigen.';
}
?>
w35T3n ist offline  
Alt 01.08.2009, 22:59  
Erfahrener Benutzer
 
Registriert seit: 03.06.2009
Beiträge: 140
PHP-Kenntnisse:
Anfänger
thomasE befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
kann man das nicht auch so machen ?
- 600 entspricht hier 6 Minuten nicht 30

- du kannst "count(*)" durch "1" ersetzen, da die Arbeit ja eh die WHERE-klausel macht und die Rückgabe nicht ausgewertet werden muss, er muss einfach nur einen DS zurückgeben oder halt nicht.
wenn count(*) > 1 ist hast du eh etwas falsch gemacht. er sollte auch keinen zweiten DS eintragen, wenn er schon einen passenden gefunden hat

- du kannst das auch mit $res=...; if(mysql_fetch_row($res)){ ... } prüfen

- aber dir ist schon klar, dass du die Einträge in der Datenbank hier nie wieder löscht!?

aber ansonsten sollt es seinen Dienst tun
edit: war das jetzt der komplette code?
ich geh mal davon aus, dass du noch irgendwo einen INSERT hast, der die Einträge in die DB einträgt

Geändert von thomasE (01.08.2009 um 23:02 Uhr).
thomasE ist offline  
Alt 02.08.2009, 00:08  
Erfahrener Benutzer
 
Registriert seit: 05.02.2009
Beiträge: 1.401
PHP-Kenntnisse:
Fortgeschritten
Destruction ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$eintrag "DELETE FROM $db_name WHERE IP"
Da muss dir doch was auffallen oder?
__________________
"Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]
Destruction ist offline  
Alt 02.08.2009, 10:42  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo,

asipak hat dir eigentlich alles geschrieben was du wissen musst. Du erstellst via PHP einen aktuellen Timestamp und vergleichst den mit der Delete Datenbank Abfrage.

Ab bedenke hierbei muss das Script eben auch zwingend aufgerufen werden. Das heist es wird sicher mehrere Datein geben die aufgerufen werden quer durch das System, das heist du solltest dir lieber eine externe Funktion schreiben und diese auf allen Dateien die der User aufrufen kann ausführen.

Hier würde sich auch ein Cronjob anbieten den du eben aller 10 Minuten snschubst, falls eben mal 1 oder 2 Stunden sich nichts auf der Seite tut.

Gruß litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
 


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
Content funktioniert nicht richtig Diamond GrafixX PHP Tipps 2009 3 14.07.2009 23:48
Seitenposition in CMS funktioniert online nicht richtig T-sneak PHP Tipps 2009 5 30.06.2009 00:39
[Erledigt] Checkuser und/oder Logout funktioniert nicht richtig p300d PHP Tipps 2009 7 28.06.2009 13:33
Select funktioniert nicht richtig JooiPHP Datenbanken 7 18.06.2009 15:09
Lokal funktioniert alles -> auf Server fast nichts PsychoEagle Datenbanken 2 14.08.2006 08:43
Bildskalierung funktioniert nicht richtig, denkfehler? Peoples PHP Tipps 2006 2 07.08.2006 01:51
resize funktioniert nicht richtig?! $$$ ThiKool $$$ HTML, Usability und Barrierefreiheit 2 22.06.2006 10:47
Zeichenzähler funktioniert nicht richtig... HTML, Usability und Barrierefreiheit 8 22.05.2006 17:44
[Erledigt] [erledigt] IP Sperre funktioniert nicht wie sie soll Charokee PHP Tipps 2006 2 19.04.2006 22:04
Warum funktioniert meine Statistik nicht richtig? Calli PHP Tipps 2007 1 27.11.2005 08:49
Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
Script funktioniert nicht richtig -> fehlermeldungen PHP Tipps 2005-2 2 12.09.2005 11:29
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24
[Erledigt] history.back() funktioniert nicht richtig HTML, Usability und Barrierefreiheit 4 17.11.2004 09:22
Emailversendung funktioniert nicht richtig PHP Tipps 2004 1 11.08.2004 23:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
w35t3n, ip sperre funktioniert nicht, php ip 30 minuten sperre, ip sperre code funktioniert nicht, $_server[\'remote_addr\']; nicht richtig, php ip-sperre funktioniert nicht, gästebuch php wartezeit ip, php guestbook ip sperre

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:25 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