title image


Smiley Skript für IP-Counter und besser Session-ID Counter
Hi,



ich würde an deiner Stelle den Counter lieber über die Session-ID hochzählen, da die Internetverbindung der meisten Surfer über keine feste/statische sondern Dynamische IP läuft, bei der Surfer nach einer Verbindungstrennung eine neue IP von ihrem Internet Provider automatisch zugewiesen bekommen und somit theoretisch 2 Besucher mit der gleichen IP auftauchen könnten (alle 1 Millionen Mal oder so wird dann der Zähler fälschlicherweise um 1 hochgezählt :O ).



zum einfachen IP Counter Skript



zum einfachen und zu empfehlenderem Session ID Counter Skript



Bei der Session-ID soll das anders sein, sie liegt auf dem Server des Counters und wird nach einem bestimmten immer gleich großen Zeitintervall (kann man festlegen) wieder vom Server entfernt, so dass trotz mehrfach auftretender Session-IDs, man den Surfer eindeutig identifizieren kann, und zwar über Zeit(-stempel welcher Anzahl der Sekunden seit 1970 enthält) und Session ID (beide sollten z.B. jeweils in eine Textdatei oder Datenbank geschrieben werden), z.B.:



7bdeef4747f10494b1cecf40e025647f, 1100269597 s (= ca. 15:30 Uhr)

7bdeef4747f10494b1cecf40e025647f, 1100273197 s (= ca. 16:30 Uhr, ähnlich unwahrscheinlich wie bei der IP-Geschichte, dass jemand die gleiche Session-ID wie jemand zuvor erhält)



Trotz gleicher Session-ID stellen diese 2 Logeinträge 2 Besucher da, da die 1. Session-ID um 16 Uhr bereits vom Server entfernt (alle Session IDs sind nur 30 Minuten gültig) wurde und um 16:30 Uhr zufälligerweise und eher unwahrscheinlich einem 2. Besucher erneut zugewiesen wurde.



Einfaches textbasiertes IP Counter Skript (Online-Demo)



TODO:



Textdatei counter.txt ins gleiche Verzeichnis hochladen und Dateiattribute/CHMOD auf 777 setzen.







<?php



$datei = "counter.txt";

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

$zahl=fgets($fp,1000);

fclose($fp);



$ip = gethostbyaddr($REMOTE_ADDR);



@session_start();

$session_ip = session_is_registered($ip);



if($ip != $session_ip)

{

$zahl++;

}

else if($zahl == 0)

{

$zahl = 1;

}



session_register($ip);



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

flock($fp,2);

fputs($fp,$zahl);

flock($fp,3);

fclose($fp);



?>

<html>

<head>

</head>

<body scroll="auto">

<h2 style="text-align:center;">Hallo, du bist der <?=$zahl?>.Besucher.</h2>

</body>

</html>







Einfaches textbasiertes Session-ID Counter Skript (Online-Demo)



TODO:



Textdatei counter.txt ins gleiche Verzeichnis hochladen und Dateiattribute/CHMOD auf 777 setzen.

Textdatei sessions.txt ins gleiche Verzeichnis hochladen und Dateiattribute/CHMOD auf 777 setzen.







<?php



@session_start();



$sessions = file("sessions.txt");



$new_sessions = array();



//Sessions älter als 30 Minuten aus der Textdatei entfernen

foreach($sessions as $session)

{

if(!empty($session) && (time()-$session[1]) < 1800)

{

$session = explode(";",$session);

$new_sessions[] = implode(";",$session);

}

}



if(count($new_sessions) > 0)

{

$fp = fopen("sessions.txt","w");

fwrite($fp,implode("\n",$new_sessions)."\n");

fclose($fp);

}



$fp = fopen("counter.txt","r");

$zahl=fgets($fp,1000);

fclose($fp);



$bereits_gezaehlt = 1;



if(session_is_registered("sess_id"))

{

$sessions = file("sessions.txt");



foreach($sessions as $session)

{

$session = explode(";",$session);



if($session[0] == session_id())

{

$bereits_gezaehlt = 2;

}

}

}

else

{

$sess_id = session_id();

session_register("sess_id");

$fp = fopen("sessions.txt","a");

fwrite($fp,$sess_id.";".time()."\n");

fclose($fp);

}



if($zahl == 0)

{

$zahl = 1;

}

else if($bereits_gezaehlt == 1)

{

$zahl++;

}



$fp = fopen("counter.txt","w");

flock($fp,2);

fputs($fp,$zahl);

flock($fp,3);

fclose($fp);



?>

<html>

<head>

</head>

<body scroll="auto">

<h2 style="text-align:center;">Hallo, du bist der <?=$zahl?>.Besucher.</h2>

<p style="text-align:center;"><a href="sess_destroy.php">Session testweise beenden, um Counterhochzählen zu bewirken.</a></p>

</body>

</html>







MfG Murdoch!

aktuelle Winamp Playlist                Hörgewohnheiten (Last.fm)



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: