Halle Leute ich habe vor einen counter in PHP zu schreiben. ich weiss das das nix besonders späktakuläres ist aber seis drum...

ich will kein MySQL verwenden deswegen weden alle daten in 2 txt dateien gespeichert.
geplant ist das ganze wie folgt.:
es gibt ein php script das beim seitenaufruf gestartet wird. das guckt sich dann die IP der Person an, die die seite aufruft und guckt dann ob die schon in der lsite ist. wenn ja vergleicht das script das datum. wenn es noch derselbe tag ist, passiert nix. wenn das datum allerdings vom vortag ist, soll der eintrag gelöscht werden und ein neuer geschrieben und der counter um 1 erhöht werden und der neue wert dann in eine andere txt datei geschrieben werden. so hatte ich mir das überlegt.^^
PHP-Code:
<?php
$count = 0;
$ip_aktuell = $_SERVER['REMOTE_ADDR'];
$date = date(ydm);
$dateiname_ip_liste = "ip2.txt";
$dateiname_counter = "counter.txt";
if(!file_exists($dateiname_ip_liste))
{
$test = fopen ($dateiname_ip_liste,"w");
fclose($test);
}
//sorgt dafür das nicht 10^n IPs geschrieben werden beim reloaden
if(filesize($dateiname_ip_liste) < 1){
$rad = rand(0 , 20);
while($count < 20)
{
if($count == 5)
{
$min_day = 01;
$max_day = 30;
$min_month = 01;
$max_month = 12;
$min_year = 01;
$max_year = 99;
$rand_day = rand($min_day , $max_day);
$rand_month = rand($min_month , $max_month);
$rand_year = rand($min_year , $max_year);
$rand_date = "$rand_year$rand_day$rand_month";
$ip_datei = fopen("ip2.txt", "a");
fwrite($ip_datei, $rand_date."|".$ip_aktuell."\n");
fclose($ip_datei);
$count++;
}
else
{
//erzeugen der random ips
$min = 0;
$max = 255;
$min2 = 0;
$max2 = 255;
$min3 = 0;
$max3 = 255;
$min4 = 0;
$max4 = 255;
$rand = rand($min , $max);
$rand2 = rand($min2 , $max2);
$rand3 = rand($min3 , $max3);
$rand4 = rand($min4 , $max4);
$rand_ip = "$rand.$rand2.$rand3.$rand4";
$ip_datei = fopen($dateiname_ip_liste, "a");
fwrite($ip_datei, $date."|".$rand_ip."\n");
fclose($ip_datei);
$count++;
}
}
}
//darf nicht vor der while schleife stehen da sonst die datein eiglesen wird bevor sei ein inhalt hat :)
$datei = file($dateiname);
$array = array();
$count = 0;
$_nicht_mehr_weitersuchen = 0;
foreach($datei as $Zeile)
{
$zerlegen = explode("|", $Zeile);
$array[] = $zerlegen;
/*so hier möchte ich jetzt das array durchsuchen
damit ich auch nachher weiss an welcher stelle
die gefundene ip steht lass ich gleichzeitig ne counter mitlaufen
der counter geht auch aber das durchsuchen nicht :(*/
$search = array_search($ip_aktuell, $zerlegen);
if($_nicht_mehr_weitersuchen == 0)
{
if($serach == 1)
{
$platz = $count;
$_nicht_mehr_weitersuchen = 1;
}
else
{
$count++;
}
}
}
echo "<pre>";
print_r( $array );
echo "</pre>";
echo"$count";
echo"$platz";
//wenn die ip nicht gefunden wurde
if($_nicht_mehr_weitersuchen == 0)
{
//neue daten dem array hinzufügen
$teilarray = array();
$teilarray[] = $ipaktuell;
$teilarray[] = $date;
$array[] = $teilarray;
//daten wieder ins txt schreiben
foreach($array as $teilarray)
{
$ip_datei = fopen($dateiname_ip_liste, "a");
fwrite($ip_datei, $teilarray[0]."|".$teilarray[1]."\n");
fclose($ip_datei);
}
//pagecounter um 1 erhöhen
if(!file_exists($dateiname_counter))
{
$test = fopen ($dateiname_counter,"w");
fclose($test);
}
$_counterdatei = fopen($dateiname_counter,"r+");
$_counterstand = fgets($_counterdatei,10); //datei wird gelesen bis zur 10. stelle
if(empty($_counterstand)){$_counterstand = 0;}
$_counterstand++; //+1
echo("Besucher:$_counterstand");
rewind($_counterdatei); // damit der dateizeiger wieder auf platz 1 springt
fwrite($_counterdatei, $_counterstand);
fclose($_counterdatei);
}
//vergleich von den datums hmm was ist die mehrzahl ¿? daten¿?
//wenn die ip gefunden wurde das datum aber nicht gleich ist:
if(array[$platz][0]-$date != 0)
{
//neue daten hinzufügen
unset($array[$platz])
$teilarray = array();
$teilarray[] = $ipaktuell;
$teilarray[] = $date;
$array[] = $teilarray;
//daten wieder ins txt schreiben
foreach($array as $teilarray)
{
$ip_datei = fopen($dateiname_ip_liste, "a");
fwrite($ip_datei, $teilarray[0]."|".$teilarray[1]."\n");
fclose($ip_datei);
}
//pagecounter um 1 erhöhen
if(!file_exists($dateiname_counter))
{
$test = fopen ($dateiname_counter,"w");
fclose($test);
}
$_counterdatei = fopen($dateiname_counter,"r+");
$_counterstand = fgets($_counterdatei,10); //datei wird gelesen bis zur 10. stelle
if(empty($_counterstand)){$_counterstand = 0;}
$_counterstand++; //+1
echo("Besucher:$_counterstand");
rewind($_counterdatei); // damit der dateizeiger wieder auf platz 1 springt
fwrite($_counterdatei, $_counterstand);
fclose($_counterdatei);
}
?>
so das ist der code den ich bis jetzt habe. am anfang wird eine liste mit random ips+ daten generiert. die wird dann in eine txt datei geschrieben und dann im nächsten schritt in ein array gelesen wird.
ich wil nun in der foreach schleife gleich überprüfen ob sich in dem unter array die aktuele ip befidnet weil das die einziege möglichkeit ist die mir eingefallen ist ein mehrdimensionales array zu durchsuchen.
das klappt aber nicht
EDIT: ach aj hab ich ganz vergessen fals sich jemand frag was der komische counter in der foreach schleife zu suchen hat. der sit dafür das das ich nachher weiss welche nr das array mit der selben ip hat damit ich das datum vergleichen kann und das gegebenenfalls rauslöschen kann.
lg aus Uruguay crow
