SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 28.05.2002, 02:22:53
Szandor Szandor ist offline
Anfänger
 
Registriert seit: May 2002
Beiträge: 6
Szandor eine Nachricht über ICQ schicken Szandor eine Nachricht über AIM schicken Szandor eine Nachricht über Yahoo! schicken
Problem mit einem PHP Hitcounter mit IP Sperre

Shalom!

Hier einfach mal das Script, danach steht das Problem beschrieben. Ich bin am Ende meiner Logik und hoffe, hier Hilfe finden zu können.
Das Script soll einen SQL basierten COunter mit temporärer IP Sperre (gleiche IP wird für ne Zeit nicht als neuer Hit gewertet) darstellen. aber irgendwie...
seht selbst

$date=date("d.m.Y H:i:s");
$ipp = getenv("REMOTE_ADDR");
$host=gethostbyaddr($ipp);
$sqlp='SELECT * FROM besucher WHERE ipp="'.$ipp.'" && sec<="'. date("U").'LIMIT 1" ';
$pruef=mysql_query($sqlp, $connect);
$pruef2=mysql_fetch_array(mysql_query($sqlp, $connect));
$sec=date("U");
IF (!$pruef)
{
$sqlin="INSERT INTO besucher
(ipp, host, date, sec)
VALUES('$ipp', '$host', '$date', '$sec')";
mysql_query($sqlin,$connect);
}
ELSE
{
IF (($pruef2["sec"]+15)>=$sec)
{
$sqlin="INSERT INTO besucher
(ipp, host, date, sec)
VALUES('$ipp', '$host', '$date', '$sec')";
mysql_query($sqlin,$connect);
}
}


Hier noch Auszüge aus der DB von localhost und von asmodai.de
Bei asmodai.de steigt der counter immer bei jedem reload, bei localhost gar nicht.
Noch krasser: Ich habe ein, zwei Änderungen am Script vorgenommen, dann stieg der Counter auf asmodai.de auch nicht mehr. Ich habe die Änderungen im Script wieder rückgängig gemacht und dennoch steigt der Counter n unmehr wie auf localhost gar nicht mehr weiter. Das verstehe ich absolut nicht mehr.

hier asmodai:

54 217.230.58.163 pD9E63AA3.dip.t-dialin.net 01.04.2002 18:15:32 1017677732
55 217.230.58.163 pD9E63AA3.dip.t-dialin.net 01.04.2002 18:15:51 1017677751
56 217.230.58.163 pD9E63AA3.dip.t-dialin.net 01.04.2002 18:18:15 1017677895
57 217.230.58.163 pD9E63AA3.dip.t-dialin.net 01.04.2002 18:20:04 1017678004
58 217.230.58.163 pD9E63AA3.dip.t-dialin.net 01.04.2002 18:28:12 1017678492
59 217.230.58.163 pD9E63AA3.dip.t-dialin.net 01.04.2002 18:28:14 1017678494
60 217.85.197.251 pD955C5FB.dip.t-dialin.net 01.04.2002 20:31:38 1017685898
61 217.85.197.251 pD955C5FB.dip.t-dialin.net 01.04.2002 20:32:22 1017685942
62 217.84.35.203 pD95423CB.dip.t-dialin.net 01.04.2002 21:11:54 1017688315
63 80.133.178.19 p5085B213.dip.t-dialin.net 01.04.2002 21:34:17 1017689657
64 213.182.9.84 213.182.9.84 01.04.2002 21:37:26 1017689846
65 213.182.9.84 213.182.9.84 01.04.2002 22:00:12 1017691212
66 217.230.58.163 pD9E63AA3.dip.t-dialin.net 01.04.2002 22:01:28 1017691288
67 217.230.58.163 pD9E63AA3.dip.t-dialin.net 01.04.2002 22:01:40 1017691300
68 217.86.12.175 pD9560CAF.dip.t-dialin.net 01.04.2002 22:06:05 1017691565
69 217.230.91.249 pD9E65BF9.dip.t-dialin.net 01.04.2002 22:37:59 1017693479


hier localhost:

170 127.0.0.1 localhost 30.03.2002 12:24:35 1000001425
171 127.0.0.1 localhost 01.04.2002 15:46:32 1017668792
172 127.0.0.1 localhost 01.04.2002 15:46:48 1017668808
173 127.0.0.1 localhost 01.04.2002 15:46:48 1017668808
174 127.0.0.1 localhost 01.04.2002 15:46:50 1017668810
175 127.0.0.1 localhost 01.04.2002 15:48:35 1017668915
176 127.0.0.1 localhost 01.04.2002 15:48:51 1017668931
177 127.0.0.1 localhost 01.04.2002 18:25:24 1017678324
178 127.0.0.1 localhost 01.04.2002 18:25:43 1017678343
179 127.0.0.1 localhost 01.04.2002 18:28:16 1017678496
180 127.0.0.1 localhost 01.04.2002 18:28:18 1017678498
181 127.0.0.1 localhost 01.04.2002 18:28:19 2147483647
__________________
PAX ALTA by Szandor
Mit Zitat antworten
  #2  
Alt 28.05.2002, 12:31:51
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
Beiträge: 992
Hi Szandor

Du überprüft, ob die Connection zur Datenbank da ist, das ist falsch, da du ja wissen willst, ob ein Entry vorhanden ist.
ändere mal
PHP-Code:
IF (!$pruef
auf:
PHP-Code:
IF (!$pruef2
Dann sollte es gehn
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #3  
Alt 28.05.2002, 18:25:58
Szandor Szandor ist offline
Anfänger
 
Registriert seit: May 2002
Beiträge: 6
Szandor eine Nachricht über ICQ schicken Szandor eine Nachricht über AIM schicken Szandor eine Nachricht über Yahoo! schicken
Danke

Darauf wäre ich von alleine nie gekommen, fürchte ich!


vielen dank!

*strahlt und hüpft neuen Herausforderungen entgegen*

wobei, ich hab hier immer noch ein Problem:

Muß es jetzt

IF (($pruef2["sec"]+15)>=$sec)

oder

IF (($pruef2["sec"]+15)<=$sec)

Heissen? Irgendwie klappt beides nicht so ganz, wie ich es haben möchte.
Bei einem steigt dann der Counter ständig, bei anderem einmal und dann gar nicht mehr, liegt wohl an der gleichen IP. Möchte aber, daß er eben nur für 15 sek (in dem testscript) die gleiche ip nicht mehr wertet, danach schon wieder.
__________________
PAX ALTA by Szandor

Geändert von Szandor (28.05.2002 um 18:29:41 Uhr)
Mit Zitat antworten
  #4  
Alt 28.05.2002, 20:56:03
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 44
Beiträge: 992
HI @gain

Wie ich aus deinen Script lesen kann.
Ist $sec die aktuelle Sekunden Zahl.
Das Datenbank-Feld sec ist von einem älteren Zeitpunkt.

Also, wenn du nun wissen willst, ob er in den 15 Sekunden Sperre ist
muß ($pruef2["sec"]+15) größer als $sec sein
das bedeutet
PHP-Code:
if (($pruef2["sec"]+15)>= $sec
Alles was in dem If ist, bedeutet, das er noch in den 15 Seckunden ist.
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:04:07 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt