php-counter: so in ordnung?
-
Hi ich hab da mal nen php-zugriffscounter geschrieben und möchte eure
kritiken oder verbesserungsvorschläge hören bzw. sehen!
Er soll mit ip-erkennung das hochzählen des counters erkennen!<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> </head> <body> <pre> <?php //Dateien öffnen $fp_locked_ip=fopen("locked_ips","r+"); //gelogte ips $fp_counter=fopen("counter","r+"); //zählerstand $fp_day=fopen("day","r+"); //1 tag wird die ip gesperrt $day=fread($fp_day,2); $a=getdate(); //ist ein tag drin? if ($day=="") { fwrite($fp_day,$a['mday']); } else { //wenn tag drin if ( $day == $a['mday']-1) { //ips in datei löschen ftruncate ($fp_locked_ip, 0); fseek($fp_locked_ip, 0); ftruncate ($fp_day, 0); fseek($fp_day, 0); fwrite($fp_day,$a['mday']); //neues datum in day-datei schreiben } } fclose($fp_day); //sind schon ips gelogt? Wenn ja, alle einlesen! if (filesize('locked_ips')==0) { $all=""; } else { $all=fread($fp_locked_ip,filesize('locked_ips')); } //zählerstand einlesen $counter=fgets($fp_counter,10); //counter auf 0 setzten if ($counter=="") $counter=0; if ($all == "") { //wenn keine ips gelogt, dann ip schreiben und zählerstand erhöhen fwrite($fp_locked_ip,$_SERVER['REMOTE_ADDR'].","); $counter++; } else { //else jede gelogte ip mit der aktuellen vergleichen, wenn drin, alten zählerstand ausgeben und beenden $ips=explode(",",$all); for ($i=0, $j=count($ips); $i < $j; $i++) { if ($ips[$i] == $_SERVER['REMOTE_ADDR']) { echo "<i>visitors been here: ".$counter."</i>"; echo "</pre>\n</body>\n</html>"; fclose($fp_locked_ip); fclose($fp_counter); exit(); } } //datei-zeiger ans ende setzen und ip adresse schreiben fseek($fp_locked_ip,0,SEEK_END); fwrite($fp_locked_ip,$_SERVER['REMOTE_ADDR'].","); //counter erhöhen, da neue ip $counter++; /*//counter ausgeben echo "<i>visitors been here: ".$counter."</i>"; //neuen counterstand schreiben und beenden rewind($fp_counter); //lesen rückgängig machen fwrite($fp_counter,$counter);*/ } //counter ausgeben echo "<i>visitors been here: ".$counter."</i>"; //neuen counterstand schreiben und beenden rewind($fp_counter); //lesen rückgängig machen fwrite($fp_counter,$counter); fclose($fp_locked_ip); fclose($fp_counter); ?> </pre> </body> </html>
danke für alle beiträge!
b4sh0r
-
Funzt bei mir irgendwie nicht!
MfG CSS
-
Sehr gute Fehlerbeschreibung...
Bei mir funzt er..
-
aassdd schrieb:
Sehr gute Fehlerbeschreibung...
Bei mir funzt er.....aber deine Fehlerbeschreibung übertrifft wirklich alles! :p
MfG CSS
-
Warum sollte ich auch eine Fehlerbeschreibung machen, wenn alles in Ordnung was?
ach ja das hatte ich tatsächlich bei PHP mal..
Waruning: No Error found!
Ansonsten wie gesagt: Bei mir funktioniert der Counter, so wie er dort oben steht.
Wenn das ein Fehler is, sehe ich wohl aus Dummheit nicht ein, warum ich ihn beschreiben sollte.