Erstellen von Datei mit PHP funktioniert nicht

PHP: Hypertext Preprocessor

Erstellen von Datei mit PHP funktioniert nicht

Beitragvon marco am Do 6. Mär 2008, 13:22

Hallo zusammen,

viele Topics habt ihr ja noch nicht! :D Hoffe, dass ich trotzdem eine Antwort bekomme.
Hier mein Problem: Beim Versuch mit PHP eine Datei in einem Verzeichnis zu erzeugen bekomme ich immer folgende
Fehlermeldungen:
Code: Alles auswählen
Warning: fopen(inhalte/inhalt.txt): failed to open stream: Permission denied in /srv/www/htdocs/dateitest.php on line 26
Warning: fwrite(): supplied argument is not a valid stream resource in /srv/www/htdocs/dateitest.php on line 27
Warning: fclose(): supplied argument is not a valid stream resource in /srv/www/htdocs/dateitest.php on line 28


Ich verstehe das nicht! Das Unterverzeichnis mit Namen inhalt habe ich vorher angelegt.

Hier die Zeilen im Script, die den Fehler auslösen:
Code: Alles auswählen
$f = fopen ("inhalte/inhalt.txt", "w");
fwrite ($f, "blablablabla");
fclose ($f);


Weiss nicht mehr weiter...
Grüße
Marco
marco
 
Beiträge: 12
Registriert: Do 6. Mär 2008, 13:18
Posts

Beitragvon alm am Do 6. Mär 2008, 13:57

Hallo Marco,

das liegt daran, dass dieses Forum gerade mal ein paar Tage Online ist. Hoffe aber, dass sich mit der Zeit
der ein oder andere anmelden wird und das Forum mit Leben füllt...

Zum Thema: Das von Dir angelegte Verzeichnis muss auch für den schreibenden Zugriff freigegeben werden.
Bedeutet, dass die Verzeichnisrechte (unter einer Unix-Shell mit dem Befehl "chmod 777 inhalte") gesetzt
werden müssen. Im FTP-Client können Datei- und Verzeichnisrechte über die Eigenschaften von Dateien
und Verzeichnissen über das Kontextmenü (rechte Maustaste auf Datei-/Verzeichniselement und dann auf
Eigenschaften) geändert werden.

Sicherheitshalber solltest du auch die in diesem Verzeichnis enthaltenen Dateien gegen den Zugriff
von außen schützen. Das geht mit Hilfe einer .htaccess-Datei, die im Verzeichnis inhalte gespeichert
werden muss.
.htaccess-Datei in Unterverzeichnis mit folgendem Inhalt erstellen:
Code: Alles auswählen
<Files *>
        Order Allow,Deny
        Deny from All
</Files>


Dies verhindert, dass auf die Dateien zugegriffen werden kann. Der Webserver selbst wird bei lesenden
sowie schreibenden Zugriffen aber nicht beeinflusst. Dies wirkt sich auf ALLE im Verzeichnis enthaltenen
Dateien aus. Wenn einzelne Dateien von außen (nicht per Zugriff auf Dateien über ein PHP-Skript, welches
auf dem gleichen Webserver läuft) erreichbar sein sollen, dann muss der Schutz auf bestimmte Dateien
beschränkt werden.

Der folgende Inhalt einer .htaccess-Datei schützt nur die Datei inhalt.txt gegen Zugriffe von außen:
Code: Alles auswählen
<Files "inhalt.txt">
        Order Allow,Deny
        Deny from All
</Files>


Wünsche weiterhin gutes Gelingen
Alex
EvoComp.de
Beachten Sie unsere Beispiele zu JavaScript, PHP und Ajax, sowie unser PHP MySQL Tutorial
alm
 
Beiträge: 81
Registriert: Do 21. Feb 2008, 16:22
Posts

Beitragvon marco am Do 6. Mär 2008, 14:19

Hallo Alex,

danke für die schnelle Antwort und den Tipp mit der .htaccess-Datei! Habe mir über solche Sachen noch gar keine Gedanken
gemacht... aber direkt ausprobiert und das klappt! Fange gerade erst an mich mit PHP zu befassen aber auf die Dateirechte
hätte ich eigentlich auch kommen können... :roll:

Grüße
Marco
marco
 
Beiträge: 12
Registriert: Do 6. Mär 2008, 13:18
Posts


Zurück zu PHP

cron