Nick: Counterscript funktioniert nicht...

Hallo und gutn morgen !
Also ich hab mir jetzt hier so ein Counterscript mit reloadsperre gebastelt, das einmal User gesamt und User heute zählen sollte.
Das zählt korrekt die Gesamtuserzahl, aber die User-Heute Zahl nicht.
Ich hab das so gemacht, dass der zuerst durch enn testcookie überprüft ob der Browser Cokies unterstützt.
Wenn ja, dann nen Sperrcookie setzen, sonst IP-Adresse speichern.
Also ich hab das Script mal komplett mit Sourcecode hier:

<?php
$stats_user_gesamt_washere=$_COOKIE["www_nickshomepage_de_cookie_stats_user_gesamt_washere"]; //Definieren des Überprüfcookies
if (!$stats_user_gesamt_washere) // Falls obiger Cookie nicht existiert
{
setcookie ("www_nickshomepage_de_cookie_stats_user_gesamt_washere_cookietest",true,time()+120); //Testcookie setzen
if (!$_COOKIE["www_nickshomepage_de_cookie_stats_user_gesamt_washere_cookietest"]) //Überprüfen ob Testcookie existiert
{ //Wenn er nicht existiert, unterstützt der Browser keine Cookies, dann machmers mit IP-Adresse
include ("stat_usergesamt_data_ip.php"); //Datei mit existierenden IP-Adressen öffnen
if (strstr($alleips,$REMOTE_ADDR)) //Überprüfen ob die IP-Adresse bereits gespeichert ist
{ // Wenn die IP-Adresse gespeichert ist
include ("stat_usergesamt_data.php"); //Datendatei miteinbeziehen, damit Besucherzahlvariable verfügbar ist
$timestamp_ip_file=date(z);
$timestamp_orig_ip=date(z);
include ("stat_usergesamt_data.php"); //Datendatei miteinbeziehen, damit Besucherzahlvariable verfügbar ist
if ($timestamp_ip_file!=$timestamp_orig_ip) {$alleips="";}
$fp_ip=fopen("stat_usergesamt_data_ip.php","w"); //IP-Datendatei öffnen
fwrite($fp_ip,"<?php $alleips = "$alleips"; ?>\n\n\n<?php $timestamp_ip_file=$timestamp_ip_file; ?>"); //Eigene und restliche IPs in die Datendatei schreiben
fclose($fp_ip); //IP-Datendatei schliessen
}
else //Wenn die IP-Adresse noch nicht gespeichert ist
{
$timestamp_ip_file=date(z);
$timestamp_orig_ip=date(z);
include ("stat_usergesamt_data.php"); //Datendatei miteinbeziehen, damit Besucherzahlvariable verfügbar ist
if ($timestamp_ip_file!=$timestamp_orig_ip) {$alleips="";}
$besucher_gesamt++; //Besucherzahl um 1 erhöhen
$fp_user=fopen("stat_usergesamt_data.php","w"); //Datendatei mit Userzahl öffnen
fwrite($fp_user,"<?php $besucher_gesamt="$besucher_gesamt"; ?>"); //Neue Besucherzahl in die Datei schreiben
fclose($fp_user); //Userdatendatei schliessen
$fp_ip=fopen("stat_usergesamt_data_ip.php","w"); //IP-Datendatei öffnen
fwrite($fp_ip,"<?php $alleips = "$REMOTE_ADDR\n$alleips"; ?>\n\n\n<?php $timestamp_ip_file =$timestamp_ip_file; ?>"); //Eigene und restliche IPs in die Datendatei schreiben
fclose($fp_ip); //IP-Datendatei schliessen

/////
$timestamp_orig=date(z);
include("stat_userheute_data.php");
if ($timestamp_usertoday_datafile==$timestamp_orig)
{
$fp_uh=fopen("stat_userheute_data.php","w"); //Datendatei für Besucherzahl öffnen
fwrite($fp_uh,"<?php $timestamp_usertoday_datafile=$timestamp_usertoday_datafile; $usertoday_datafile="$usertoday_datafile" ?>"); //Neue Besucherzahl in Datendatei schreiben
fclose($fp_uh); //Datendatei schliessen
}
else
{
$fp_uh=fopen("stat_userheute_data.php","w"); //Datendatei für Besucherzahl öffnen
fwrite($fp_uh,"<?php $timestamp_usertoday_datafile=$timestamp_orig; $usertoday_datafile="1" ?>"); //Neue Besucherzahl in Datendatei schreiben
fclose($fp_uh); //Datendatei schliessen
}
/////

}
}
else //wenn Cookie nicht existiert
{

include ("stat_usergesamt_data.php"); //Datei mit Userzahl includen
setcookie("www_nickshomepage_de_cookie_stats_user_gesamt_washere",true,time()+7200); //Reloadsperrcookie setzen
$besucher_gesamt++; //Besucherzahl um 1 erhöhen
$fp=fopen("stat_usergesamt_data.php","w"); //Datendatei für Besucherzahl öffnen
fwrite($fp,"<?php $besucher_gesamt="$besucher_gesamt"; ?>"); //Neue Besucherzahl in Datendatei schreiben
fclose($fp); //Datendatei schliessen
/////
$timestamp_orig=date(z);
include("stat_userheute_data.php");
if ($timestamp_usertoday_datafile==$timestamp_orig)
{
$fp_uh=fopen("stat_userheute_data.php","w"); //Datendatei für Besucherzahl öffnen
fwrite($fp_uh,"<?php $timestamp_usertoday_datafile=$timestamp_usertoday_datafile; $usertoday_datafile="$usertoday_datafile" ?>"); //Neue Besucherzahl in Datendatei schreiben
fclose($fp_uh); //Datendatei schliessen
}
else
{
$fp_uh=fopen("stat_userheute_data.php","w"); //Datendatei für Besucherzahl öffnen
fwrite($fp_uh,"<?php $timestamp_usertoday_datafile=$timestamp_orig; $usertoday_datafile="1" ?>"); //Neue Besucherzahl in Datendatei schreiben
fclose($fp_uh); //Datendatei schliessen
}
/////
}
}
else //wenn Cookie existiert
{
include ("stat_usergesamt_data.php"); //Datendatei miteinbeziehen, damit Besucherzahlvariable verfügbar ist
}
?>

Das Script wird hier ausgeführt: http://www.nickshomepage.de/haupt

Hier noch ein bisschen übersichtlicher von PHP erstellt: http://www.nickshomepage.de/haupt/stat_src.php

Ich habde das Script gestern gestartet
heute hab ichs nochmal geresettet.
Auf jeden Fall zählt er kräftig User und User, aber die _user heute_ Zahl nicht.

Kann mir vielleicht jemand sagen was ich falsch gemaxcht habe ?
Und bitte fragt mich net warum ich kein MySQL verwende...
Und nicht ber das Design, das,wie mance finden "kindisch" aussieht.

Danke für eure Antworten.
Nick

  1. Guten morgen Nick,

    :) entweder Datei- oder Cookie-Entscheidung - na wie nobel :)

    Aber praktisch wäre es vielleicht gleich nur die Datei zu verwenden und folgenden code einzubinden:

    unset($c);
    $d=file("zaehler.data");

    for($i=0;$i<count($d);$i++)
     {
     $x=explode(" ",$d[$i]);
     if($x[0]==date("dmy"))  $c++;
     if($x[1]==trim($REMOTE_ADDR)) $x=1;
     }

    if($x!=1)
     {
     $h=fopen("zaehler.data",a);
     fputs($h,date("dmy")." ".$REMOTE_ADDR."\n");
     fclose($h);
     }

    echo "<p>alle Besucher: ".($i+1)."</p><p>Heute: $c</p>";

    Wenn die site stark frequentiert wird, macht es sich bezahlt pro Monat eine neue Datei anzulegen.

    Gruß aus Berlin!
    eddi

    1. Hmmmm, aber dann hab ich keine Reloadsperre...
      Script: http://www.nickshomepage.de/haupt/ct.php

      1. Hi Nick,

        das stimmt! trim() nimmt der Var $x[1] leider nicht den Textvorschub, damit ist das Ergebnis der if-Prüfung immer FALSE (..unter anderen enthaltenen Fehlern)...
        Hier nun etwas, was eher funzeln dürfte:

        <?php
        unset($c);
        unset($y);
        $br="
        ";
        $d=file("zaehler.data");

        for($i=0;$i<count($d);$i++)
         {
         $x=explode(" ",$d[$i]);
         if($x[0]==date("dmy"))
           {
           $c++;
           if($x[1]==$_SERVER["REMOTE_ADDR"].$br) $y=1;
           }
         }

        if($y!=1)
         {
         $h=fopen("zaehler.data",a);
         fputs($h,date("dmy")." ".$_SERVER["REMOTE_ADDR"].$br);
         fclose($h);
         }

        echo "<p>alle Besucher: ".($i+1)."</p><p>Heute: $c</p>";
        ?>

        Gruß aus Berlin!
        eddi