PHP speicher prob!?

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_speicher_prob_47459/page_1 - zur Vollversion wechseln!


realRP schrieb am 07.09.2002 um 12:47

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!";
?>


Philipp schrieb am 07.09.2002 um 13:05

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 schrieb am 07.09.2002 um 13:14

jo counter.txt sorry verwexlt und schon editied! rechte schreibsln keine ahnung werd i glei mal probieren!


DAO schrieb am 07.09.2002 um 13:21

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 schrieb am 07.09.2002 um 14:30

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 schrieb am 07.09.2002 um 16:11

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 schrieb am 07.09.2002 um 17:32

Code: PHP
<?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 schrieb am 09.09.2002 um 10:17

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 schrieb am 09.09.2002 um 15:17

nur weils dos kann heissts noch lang nicht das php das feature dort das unterstuetzung




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025