Guten Morgen zusammen,
Ich benutze obigen Code für einen Counter.
Nun ist es mir gestern aber passiert, dass der Counter wieder auf 0 resettet wurde, ohne das ich etwas unternommen habe.
wie kann das sein? kann es Probleme geben wenn 2 user zur exakt gleich Zeit die Seite betreten?
Also die Daten liegen in counter.csv und die Datei wurde auch nicht manuell resettet. Irgendetwas am Programm muss das also gemacht haben.
Vielen Dank.
Gruß HaVoK
PHP-Code:
<?php
$count=0;
$time = time();
$ip = $_SERVER['REMOTE_ADDR'];
$text=$time."#".$ip."\n";
$filename="counter.csv";
$zeile = file($filename);
$datum=date("d.m.y");
$setdate=0;
$uhrzeit=date("H:i:s");
//Hier kann die Aufenthaltszeit für eine gültige Zählung und die Reloadsperre eingetragen werden (in sec)
$countgueltig=600;
$reload=600;
//Prüfung ob IP vorhanden
foreach($zeile as $sperre)
{
$arraysp = explode("#",$sperre);
if($ip==rtrim($arraysp[1]) & $arraysp[0] > $time -$reload){$vorhanden=1;}
}
//Tages- und Gesamtwert ermitteln
foreach($zeile as $wert)
{
$array = explode("#",$wert);
if($array[0]=='datum'& rtrim($array[1])!=$datum){$setdate=1;}
if($vorhanden==1){
if($array[0]=='heute' & $setdate==0){$heute=rtrim($array[1]);}
if($array[0]=='heute' & $setdate==1){$heute=1;$gestern=rtrim($array[1]);}
if($array[0]=='gesamt'){$gesamt=rtrim($array[1]);}
if($array[0]=='gestern'& $setdate==0){$gestern=rtrim($array[1]);}
}
if($vorhanden!=1)
{
if($array[0]=='heute'& $setdate==0){$heute=rtrim($array[1])+1;}
if($array[0]=='heute'& $setdate==1){$heute=1;$gestern=rtrim($array[1]);}
if($array[0]=='gestern'& $setdate==0){$gestern=rtrim($array[1]);}
if($array[0]=='gesamt'){$gesamt=rtrim($array[1])+1;}
}
}
//Tages- und Gesamtwert schreiben
$fpwrite = fopen($filename , "w");
fwrite ($fpwrite, "datum"."#".$datum."\n"."heute"."#".$heute."\n"."gestern"."#".$gestern."\n"."gesamt"."#".$gesamt."\n".$text, 750);
fclose($fpwrite);
//Useronline schreiben
$fpanhaengen = fopen($filename , "a");
foreach($zeile as $useronline)
{
$arrayuseronline = explode("#",$useronline);
if($arrayuseronline[0] > $time -$countgueltig & $ip!=rtrim($arrayuseronline[1]))
{
fwrite ($fpanhaengen,$useronline, 750);
}
}
fclose($fpanhaengen);
//wieviele user online(für Anzeige)?
$zeile1 = file($filename);
//Ausgabe
for($x=0;$x<count($zeile1);$x++){$count=$count+1;}
echo '<p align="left">[b]Datum: [/b]'; echo $datum; echo ' </font>
';
echo '[b]Uhrzeit: [/b]'; echo $uhrzeit; echo '</font>
';
echo '[b]User online: [/b]'; echo $count=$count-4;echo ' </font>
';
echo '[b]Heute: [/b]'; echo $heute;echo ' </font>
';
echo '[b]Gestern: [/b]'; echo $gestern;echo ' </font>
';
echo '[b]Gesamt: [/b]'; echo $gesamt;echo '</font></p>';
?>
Nun ist es mir gestern aber passiert, dass der Counter wieder auf 0 resettet wurde, ohne das ich etwas unternommen habe.
wie kann das sein? kann es Probleme geben wenn 2 user zur exakt gleich Zeit die Seite betreten?
Also die Daten liegen in counter.csv und die Datei wurde auch nicht manuell resettet. Irgendetwas am Programm muss das also gemacht haben.
Vielen Dank.
Gruß HaVoK
Kommentar