Counterscript funktioniert nicht...
Nick
- php
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
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
Hmmmm, aber dann hab ich keine Reloadsperre...
Script: http://www.nickshomepage.de/haupt/ct.php
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