Hallo
Ich bin zur Zeit am Bauen eines Besucherzählers für eine Webseite. Dieser soll mit einer IP-Sperre funktionieren.
Bei einem Zugriff auf die Seite werden Zeit+IP-Adresse des Besuchers in die Datei "ip_new.txt" und der Zähler wird in die Datei "counter.txt" eingetragen. Nach dem Ablauf des zeitlichen Limits für die IP-Sperre wird der jeweilige Besucher wieder als neuer Besucher gezählt.
Dass eine solche Zählung nur bedingte Aussagekraft hat, da z.B. AOL-Nutzer über Proyies surfen und alle paar Sekunden mit einer anderen IP daherkommen, ist dir hoffentlich klar. Soweit zum Manko dieser Zählmethode.
foreach($ipliste as $zeile){
$trennung = explode("|", $zeile);
}
if((time()>($trennung[0]+$zeitlimit))&&(trim($trennung[1]."\n")==($_SERVER['REMOTE_ADDR']))){
- Es wird immer auf den letzten Eintrag in der IP-Datei zugegriffen, die ganze Liste wird nicht durchgesucht. Wie ändere ich mein Script, damit es funktioniert?
Du liest das Array der Einträge in einer Schleife in das Array $trennung ein. Dieses ist nun ein zweidimensionales Array.
$trennung[0][0] // Zeitstempel des ersten Eintrags
$trennung[0][1] // IP des ersten Eintrags
$trennung[1][0] // Zeitstempel des zweiten Eintrags
$trennung[1][1] // IP des zweiten Eintrags
... u.s.w.
Du gehst das neue Array bei der Prüfung nicht erneut durch. Du brauchst an dieser Stelle eine neue Schleife oder du prüfst die Werte in der Schleife, in der du $trennung füllst.
- Außerdem wäre es schön, wenn die Einträge in dieser IP-Datei auch aktualisiert werden könnten (also keine Einträge mit gleicher IP und ungleicher Zeit). Wie geht das?
Weise dem Element von $trennung, dass momentan geprüft wird, einen neuen Zeitstempel in $trennung[n][0] zu ('n' steht hier für eine beliebige Zahl, die dem Index des Arrayelements entspricht), wenn die gespeicherte IP mit der aktuell vorliegenden übereinstimmt.
- Wie mache ich eine "Auffrischung" der IP-Datei, so dass zu einem bestimmten Zeitpunkt alle Einträge dieser Datei gelöscht werden?
Prüfe alle IPs, ob deren letzter Eintrag älter als ein Zeitlimit ist. Lösche alle betroffenen Elemente aus dem Array und speichere die gesamte Datei mit den übrigbleibenden Einträgen neu ab.
PHP Arrayfunktionen: http://www.php.net/manual/de/ref.array.php
Tschö, Auge
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
<dingdong /><dingdong /><toc /><toc /><toc /><shout>Florence!</shout>
Veranstaltungsdatenbank Vdb 0.2