"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

PHP speicher prob!?

realRP 07.09.2002 - 12:47 514 8
Posts

realRP

wheel it baby
Avatar
Registered: Feb 2002
Location: Vienna
Posts: 730
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
Registered: Jul 2001
Location: Wien
Posts: 1924
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
Avatar
Registered: Feb 2002
Location: Vienna
Posts: 730
jo counter.txt sorry verwexlt und schon editied! rechte schreibsln keine ahnung werd i glei mal probieren!

DAO

Si vis pacem, para bellum
Avatar
Registered: Mar 2001
Location: Austria
Posts: 4964
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
Registered: Jul 2001
Location: Wien
Posts: 1924
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)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
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
Avatar
Registered: Jul 2002
Location: STMK/Judenburg
Posts: 164
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

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
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)
Registered: Sep 2000
Location: Vienna / SF
Posts: 6131
nur weils dos kann heissts noch lang nicht das php das feature dort das unterstuetzung
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz