Ich habe hier einen counter, das komische ist er zählt immer um 3 anstatt um eins hoch , warum?
<? // 0 =keine Reloadsperre 1=Reloadsperre $aktiv = 0; //Zeit der Realodsperre in Minuten $zeit = 1; //Ip-Adressen speicherdatei $ipdatei = "ip.txt"; //Counter $counter = "counter.txt"; // Anzahl der führenden nullen $stellen = 5; //Reloadsperre function pruf_IP ($rem_addr) { global $ipdatei,$zeit; @$ip_array = file($ipdatei); $reload_dat = fopen($ipdatei,"w"); $this_time = time(); for ($i=0; $i<count($ip_array); $i++){ list($ip_addr,$time_stamp) = explode("|",$ip_array[$i]); if ($this_time < ($time_stamp+60*$zeit)){ if ($ip_addr == $rem_addr){ $gefunden=1;} else {fwrite($reload_dat,"$ip_addr|$time_stamp"); } } } fwrite($reload_dat,"$rem_addr|$this_time\n"); fclose($reload_dat); return ($gefunden==1) ? 1 : 0; } //counter if (file_exists($counter) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) { $fp=fopen($counter,"r+"); $zahl=fgets($fp,$stellen); $zahl++; rewind($fp); flock($fp,2); fputs($fp,$zahl,$stellen); flock($fp,3); fclose($fp); } else if (!file_exists($counter) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) { $fp=fopen($counter,"w"); $zahl="1"; fputs($fp,$zahl,$stellen); fclose($fp); } else{ $fp=fopen($counter,"r"); $zahl=fgets($fp,$stellen); fclose($fp); } $zahl=sprintf("%0".$stellen."d",$zahl); ?>