Problem mit PHP-Counter

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit PHP-Counter

    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);

    ?>

  • #2
    http://www.php-resource.de/forum/search.php
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      ... und: http://www.php-resource.de/forum/sho...threadid=50454
      Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
      var_dump(), print_r(), debug_backtrace und echo.
      Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
      Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
      Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

      Kommentar

      Lädt...
      X