hi,
und zwar habe ich ein problem mit meinem php counter. er zählt bei jedem klick auf eine seite einen besucher mehr hoch. wie kann ich einstellen das er pro user nur einmal hochzählt egal wieviele sieten er aufruft? und das erst wieder nach 30mins oder so der gleiche user neu erfasst wird? habe nich soo die ahnung von php mit neu, poste hier mal den quelltext. vielen dank im vorraus!
<?
@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);
?>
und zwar habe ich ein problem mit meinem php counter. er zählt bei jedem klick auf eine seite einen besucher mehr hoch. wie kann ich einstellen das er pro user nur einmal hochzählt egal wieviele sieten er aufruft? und das erst wieder nach 30mins oder so der gleiche user neu erfasst wird? habe nich soo die ahnung von php mit neu, poste hier mal den quelltext. vielen dank im vorraus!
<?
@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);
?>
Kommentar