variable (integer) um eins erhöhen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
addition
background
datei
dateiname
daten
dokumentation
ergebnis
fehler
fragment
gel
hallen
info
inhalt
nochmal
problemchen
routine
variable
vorschlag
zeile
zusammen
-
nochmals hallo zusammen, ich hab da ein Problemchen, irgendwie funnzt das net so wie ichs im web gelesen hab....
$anzahl_dat="anzahl_wrong.dat";
$anzahl_info=fopen($anzahl_dat,"a");
$anzahl_falsch=fread($anzahl_info, filesize($anzahl_dat));
$anzahl_falsch=$anzahl_falsch++;
fwrite($anzahl_info,$anzahl_falsch);
fclose($anzahl_info);
die datei anzahl_wrong.dat enthielt vorher die Zahl 1
wenn ich die routine hab durchlaufen lassen, sollte sie eigentlich die Zahl 2 enthalten aber nix is.....
Inhalt war: 11
ich hab es auch mit ++$anzahl_falsch versucht aber bin wohl irgendwie doch zu doof...dachte PHP erkennt das es ein Integer wert ist -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hall regia!
Ich w?rde die Variable $anzahl_falsch probeweise mal mit print() ausgeben. Auch hilft eine ?berpr?fung mit is_integer(): Sollte $anzahl_falsch n?mlich keine Ganzzahl sein, meldet diese Funktion als Ergebnis FALSE. Ansonsten hilft vor der Addition vielleicht eine Zwangskonvertierung nach Integer mit
(integer) $anzahl_falsch.
MfG
alopex -
danke ich werds mal antesten, es geht um nen counter, wie oft versucht wurde sich einzuloggen und das Passwort falsch war...nur als Background-Info
mal testen mit (integer davor) -
hmpf mit integer davor funnzt das net........ anderen vorschlag?
-
Wenn ich mir das Code-Fragment genau betrachte, enth?lt es einen Fehler: Man kann nicht eine Datei mit fopen($dateiname, 'a') ?ffnen und dann mit fread() etwas daraus lesen. Der Modus 'a' steht f?r "append", also "Anh?ngen" von Daten an die schon bestehende Datei. Verwende besser 'w' oder, wenn du lesen und schreiben willst 'w+'.
Durch diesen Fehler kann es passieren, dass fread() nicht den Inhalt einer Zeile zur?ckgibt, sondern einen Fehlercode, wahrscheinlich FALSE oder EOF, Genaueres finde ich momentan nicht in der PHP-Dokumentation, aber man kann das pr?fen:
$bla = fread(...);
if($bla === FALSE) print("Fehler: FALSE");
if($bla === EOF) print("Fehler: EOF");
MfG
alopex -
so hab ich das Problem gel?st:
$anzahl_dat="anzahl_wrong.dat";
$anzahl_info=fopen($anzahl_dat,"r");
$anzahl_falsch=fread($anzahl_info, filesize($anzahl_dat));
$anzahl_neu= ++$anzahl_falsch;
fclose($anzahl_info);
$anzahl_info=fopen($anzahl_dat,"w");
fwrite($anzahl_info,$anzahl_neu);
fclose($anzahl_info);
ich danke euch...... -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage