PHP speicher prob!?
realRP 07.09.2002 - 12:47 514 8
realRP
wheel it baby
|
HELP! hab gerade einen kleinen einfachen counter probiert! bitte net schlagen ist mein 1ster php versuch es wird die counter.txt nicht erstellt! wenn ich sie erstell wird sie ausgelesen um 1nes erhöht aber NICHT abgespeichert! wo liegt mein fehler!? danke realRP -- <? if (file_exists("counter.txt")) { $datei=fopen("counter.txt","r"); $zaehler=fgets($datei,255); fclose($datei); } $zaehler++; $datei=fopen("counter.txt","w"); fputs($datei,"$zaehler"); fclose($datei); echo "Sie sind der <b>$zaehler.</b> Besucher!"; ?>
Bearbeitet von realRP am 07.09.2002, 13:13
|
Philipp
Here to stay
|
Ich sehe hier keine gbuch.txt sondern nur counter.txt Verwendest du einen Unix Server? Dann musst du der Datei erst Schreibrechte geben. Das kannst du z.B. mit deinen FTP Client bzw. über Shell mit chmod 777 counter.txt machen.
|
realRP
wheel it baby
|
jo counter.txt sorry verwexlt und schon editied! rechte schreibsln keine ahnung werd i glei mal probieren!
|
DAO
Si vis pacem, para bellum
|
ich habs so geloest meinen ersten counter <? $file = fopen ("count.dat","rw+"); $count = fgets ($file,10); $count++;
rewind ($file); fwrite ($file,$count); fclose ($file); ?> <? echo $count; ?>
|
Philipp
Here to stay
|
Da fällt mir noch ein: Man sollte generell die flock (File Locking) Funktion verwenden wenn man in Dateien schreibt, sonst kann es leicht passieren das der Counter wieder bei 0 anfängt.
|
funka
Legend ex-prophet(down below)
|
Warning:flock() is not supported on antiquated filesystems like FAT and its derivates and will therefore always return FALSE under this environments (this is especially true for Windows 98 users). wennst dich beim @home testen maybe wunderst warum nix geht
|
XaTeeM
Big d00d
|
<?php
$file = "counter.txt";
$fh = @fopen($file, "r+") or
die("<br>Öffnen von <i>$file</i> gescheitert");
@flock($fh, LOCK_SH) or
die("<br>Sperren von <i>$file</i> gescheitert");
$s = @fgets($fh, 6);
$count = (int) $s + 1;
$count = str_pad($count, 6);
@rewind($fh) or
die("<br>Rücksetzen von <i>$file</i> gescheitert");
if (@fwrite($fh, $count) == -1)
{
die("<br>Schreiben in <i>$file</i> gescheitert ");
}
echo "$count";
@flock($fh, LOCK_UN) or
die("<br>Unlock von <i>$file</i> gescheitert");
fclose($fh) or
die("<br>Schließen von <i>$file</i> gescheitert");
?>
So würe ich das lösen. MfG XaTeeM
|
Ringding
Pilot
|
Hmm, File Locking hat's schon unter DOS gegeben mit SHARE.EXE, also versteh ich nicht ganz, wieso's jetzt nicht mehr gehen soll.
|
funka
Legend ex-prophet(down below)
|
nur weils dos kann heissts noch lang nicht das php das feature dort das unterstuetzung
|