Homepage selbermachen 7.846 Themen, 35.563 Beiträge

totaler PHP-Anfänger in Schwerigkeiten. IP Sperre / Reloadsperre

PHP-Anfänger / 16 Antworten / Flachansicht Nickles

Hallo


ich fange gerade an mich mit PHP zu beschäftigen und besitze deshalb noch keine Erfahrungen und Kenntnisse darin. Trotzdem habe ich versucht mir ein (klitze)kleines Schript zu schreiben welches den Namen des Browser (Name, Version) des jeweiligen Surfers in eine Textdatei schreibt. Wie es mir gelungen (gut? / schlecht?) ist, entscheidet selbst. Bin für jeden Ratschlag dankbar. Hier nun der Code dazu:


$datei= "browser.txt" ;


$fp= fopen ($datei, "w");


fwrite ($fp, "$HTTP_USER_AGENT");


fclose ($fp);


Jetzt möchte ich noch eine, von mir, einstellbare IP-Sperre (Reloadsperre) einbauen so, dass in einer, von mir festgelegten Zeit die gleiche IP nur einmal gezählt wird und somit auch nur der Browser (Name, Version). Leider habe ich keinen Schimmer wie ich das bewerkstelligen soll. Könnt ihr mir bitte helfen. Vielen Dank

bei Antwort benachrichtigen
sinnlose schleife Heinz_Malcher
sinnlose schleife xafford
sinnlose schleife Zaphod
xafford PHP-Anfänger „Hallo xafford, Sorry, aber ich habe da mal ne blöde Frage. eine wirklich...“
Optionen

eine session richtet eine eindeutige sitzung zwischen den browser des clients und dem server ein. über eine session kannst du im allgemeinen variablen zwischen browser und server für die dauer der sitzung verfügbar halten. so lange der browser offen ist wird die session zwischen ihm und dem server offen gehalten und somit hat die sitzung immer eine eindeutige id , anhand der du eine reloadsperre erreichen kannst. in etwa sollte dies dann so aussehen:

if(!isset($clientid)||!isset($clientagent)||!isset($sent))
{
session_start();
$clientid=$REMOTE_ADDR;
$clientagent=$HTTP_USER_AGENT;
$sent=0;
session_register("clientid","clientagent","sent");
}
else
{
session_start();
if($sent==0)
{
hier deine funktion die den eintrag in deine log vornimmt
$sent=1;
}
}

so gehst du sicher, daß jeder besucher innerhalb einer sitzung nur einmal erfasst wird. im prinzip brauchst du eigentlich auch nur die variable sent zu registrieren, da du REMOTE_ADDR und HTTP_USER_AGENT auch in deiner funktion auslesen kannst, man könnte mit der kombination der beiden aber noch einen eindeutigeren schlüssel erstellen lassen und weitere statistische daten erfassen.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
is ja jut Heinz_Malcher