Dateizugriff

sunflower84

Erfahrenes Mitglied
Hallo

Ich habe mir für meine Webseite einen Counter gemacht der unsichtbar ist.
Ich zähle in einer schleife einen Wert hoch der dann in eine Textdatei geschrieben
wird. Lokal funktioniert auch alles. Aber sobald ich es auf den FTP lade bekomme
ich einen Haufen Fehlermeldungen. Immer in den Zeilen wo ich auf die Datei
zugreifen will. Er nimmt auch einen Pfad der bei mir auf der Platte ist. Klar das er
die txt dann nicht finden kann. Hab aber den Pfad nirgends eingegeben. Hoffe ihr könnt mir helfen. Hier mein Code:
PHP:
  <?php
  $datei = fopen("counter.txt","r+");
  $counterstand = fgets($datei, 10);
  if($counterstand == "")
    {
    $counterstand = 0;
    }
  $counterstand++;
  //echo $counterstand;
  rewind($datei);
  fwrite($datei, $counterstand);
  fclose($datei);
  ?>

Die counter.txt liegt im gleichen Ordner wie die index.

Lg
Sunflower84
 
Hallo, ich mutmaße mal drauf los.

Schon mal auf dir Rechts der Datei geschaut. Wenn du keine Rechte hast in die datei zu schreiben kannst du das auch nicht :-)

Vielleicht bringt es mehr wenn du die Fehlermeldung postest.

Und versuche es mal so.

PHP:
$datei = fopen("./conter.php","r+");
 
Zuletzt bearbeitet:
Ich habe doch Rechte. Lokal funktioniert doch alles.
Dein Vorschlag klappt leider auch nicht.
Hier meine Fehlermeldungen:
Warning: fopen(./counter.txt) [function.fopen]: failed to open stream: Permission denied in /is/htdocs/.../www/index.php on line 2

Warning: fgets(): supplied argument is not a valid stream resource in /is/htdocs/.../www/index.php on line 3

Warning: rewind(): supplied argument is not a valid stream resource in /is/htdocs/.../www/index.php on line 10

Warning: fwrite(): supplied argument is not a valid stream resource in /is/htdocs/.../www/index.php on line 11

Warning: fclose(): supplied argument is not a valid stream resource in /is/htdocs/.../www/index.php on line 12

Warum sagt er kein gültiger stream?

Lg
Sunflower84
 
Warning: fopen(./counter.txt) [function.fopen]: failed to open stream: Permission denied in /is/htdocs/.../www/index.php on line 2

Da ist es.

Permission denied = Erlaubnis zurückgewiesen

Du hast keine Rechte die datei zu beschreiben.

Schreibrechte für die Datei vergeben und nochmal probieren. Sollte dann gehen

PHP:
chmod ("./counter.txt", 0777);

ich bin mir aber nicht sicher ob das geht! Kommt wohl auf einen Versuch drauf an

Achso, er sagt es ist kein gültiger stream weil er die Datei nicht öffnen konnte. (Fragen sollen ja immer beantwortet werden)
 
Zuletzt bearbeitet:
Danke.
Hab jetzt schreibrechte folgendermaßen vergeben. Geht aber immer noch nicht.

$datei = fopen("./counter.txt","w+");

Oder habe ich was vergessen?

Lg
Sunflower84
 
Wenn ich dein Beispiel versuche bekomm ich folgende Fehlermeldung:
Warning: chmod() [function.chmod]: Operation not permitted in /is/htdocs/.../www/index.php on line 3

Lg
Sunflower84
 
@Sunflower84

Die Schreib rechte mußt du am Server vergeben nicht in der php datei!
Wenn ein linux Server ist dann kanste das Direkt im Ftp Programm machen fals deines das unterstütz ansonsten nimm filezilla und setze die Schreib rechte auf 755 dann sollte es auf jedenfall gehen.

http://www.contrexx.com/docs/wiki?title=Handbuch:Installation
Unter Titel Schreibrechte anpassen findest einen screen dazu.

Mfg Splasch
 
Zuletzt bearbeitet:
mit fopen öffenest du eine Datei zum schreiben oder lesen (w,r,r+,w+).

Ich vermute du nutzt Windows als Betriebssystem. Das heist, das skrip oben läuft auf deinem Rechner zu Hause. Wenn du es auf deine Webpage hochlädst, geht es nciht mehr.

Alle Dateien die du hohlädst werden mit rechten versehen.

index.php dar jeder aufmachen und anschauen aber nicht ändern (text hinzufügen, oder entfernen)

ist ja auch nciht sinnvoll. Du willst jetzt aber das man die Counter.txt ändern kann. und zwar jeder. Das must du der Datei expitziet sagen.

Versuche mal den Code

PHP:
chmod ("./counter.txt", 0777);
über fopen einzufügen. Vielleicht klapp das.
 
Zurück