• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit fwrite

Status
Für weitere Antworten geschlossen.

RaZ0oR

Neues Mitglied
Hi,
ich hab folgenden Code
PHP:
$filename = $datei.".txt";
			$exist = file_exists("klick/".$filename);
			
		if($exist) {
			
			$grosse = filesize("klick/".$filename);

					
			$handle = fopen ("klick/".$filename, "r+");
			$counter = fread($handle, $grosse);
			$writen = fwrite($handle, $counter++);
					  fclose($handle);
					 
					 } else {
			$handle = fopen ("klick/".$filename, "w+");
			$writen = fwrite($handle, "1");
					  fclose($handle);
			}

Am Anfang überprüft er, ob die jeweilige datei existiert,wenn es sie nicht gibt erstellt er sie mit dem Wert 1. Wenn es sie gibt, soll er sie um 1 erhöhen, allerdings erhöht er die nicht um 1....
1
11
1111
11111111
sondern wie ihr oben sehen könnt, wird das ganze um verdoppelt :-(.
was mach ich den falsch
 
Ou du hast recht, hab da wohl weng was mit den "r" "w" .... falsch gemacht, habs so abgeändert und es klappt
PHP:
$grosse = filesize("klick/".$filename);

					
			$handle = fopen ("klick/".$filename, "r");
			$inhalt = fread($handle, $grosse);
					  fclose($handle);
					  
			$handle = fopen ("klick/".$filename, "w");
			$inhalt = $inhalt + 1;
			$writen = fwrite($handle, $inhalt);
					  fclose($handle);
					 
					 } else {
			$handle = fopen ("klick/".$filename, "w+");
			$writen = fwrite($handle, "1");
					  fclose($handle);
 
Da hast jetzt aber irgendwo das if unterschlagen. Du hättest im if-Teil auch so vorgehen können.

Code:
[COLOR=#000000][COLOR=#0000bb]
$handle [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fopen [/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"klick/"[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$filename[/COLOR][COLOR=#007700], [/COLOR][COLOR=#dd0000]"w"[/COLOR][COLOR=#007700]); 
[/COLOR][COLOR=#0000bb]$writen [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fwrite[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$handle[/COLOR][COLOR=#007700], ++[/COLOR][COLOR=#0000bb]$inhalt[/COLOR][COLOR=#007700]); 
[/COLOR][COLOR=#0000bb]fclose[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$handle[/COLOR][COLOR=#007700]); [/COLOR][/COLOR]
Gruß thuemmy
 
Da hast jetzt aber irgendwo das if unterschlagen. Du hättest im if-Teil auch so vorgehen können.

Code:
[COLOR=#000000][COLOR=#0000bb]
$handle [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fopen [/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"klick/"[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]$filename[/COLOR][COLOR=#007700], [/COLOR][COLOR=#dd0000]"w"[/COLOR][COLOR=#007700]); 
[/COLOR][COLOR=#0000bb]$writen [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fwrite[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$handle[/COLOR][COLOR=#007700], ++[/COLOR][COLOR=#0000bb]$inhalt[/COLOR][COLOR=#007700]); 
[/COLOR][COLOR=#0000bb]fclose[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$handle[/COLOR][COLOR=#007700]); [/COLOR][/COLOR]
Gruß thuemmy

Versteh gerade nicht was du meinst
 
Du hast die Variable $inhalt händisch um 1 erhöht. Das hättest Du auch innerhalb der fwrite-Funktion machen können, mit dem inkrement-Operator, das ++ aber vor der Variable.

Gruß thuemmy
 
Du hast die Variable $inhalt händisch um 1 erhöht. Das hättest Du auch innerhalb der fwrite-Funktion machen können, mit dem inkrement-Operator, das ++ aber vor der Variable.

Gruß thuemmy

Jap ich weiß, mhm ka wieso ich das jetzt anders gemacht hab.....
naja hauptsach es funkt jetzt, und noma thx für dein hinweis....
 
Wozu einfach, wenns auch kompliziert geht?


PHP:
$filename = "klick/".$datei.".txt";
if(file_exists($filename) {
    $handle = fopen ($filename, "r+");
    $counter = fread($handle, filesize($filename));
    rewind($handle);
    fwrite($handle, ++$counter);
} else {
    $handle = fopen($filename, "w");
    fwrite($handle, "1");
}
fclose($handle);
(ungetestet)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben