Frage von vurex, 52

PHP fopen Datei erstellen Berechtigung?

Hallöchen.

Mir ist bewusst das die Überschrift nicht die Beste ist, welche mir einfallen hätte können, aber kommen wir erstmal zum Problem.

Undzwar habe ich folgendes Coding:

<?php

$uuid=$_GET['uuid'];
$url="https:/****/img/".$_GET['url'];
$filenames = $uuid.".txt";
$filename = $filenames;

$dateihandle = fopen($filename,"w") or die("can't open file");

fwrite($dateihandle, $url);
fclose($dateihandle);
?>

Undzwar geht es mir hierbei darum, eine ID aus der Webseiten URL auszulesen, was auch ohne Probleme funktioniert, dies ist die UUID.

Ich möchte eine Datei erstellen, welche diese UUID.txt heißt, natürlich soll die UUID welche gesetzt wurde verwendet werden.

Es kommt nur ein can't no open file, wobei diese ja auch erstellt werden soll, was mit dem "w" möglich ist.

Mit einem "error_reporting(E_ALL | E_STRICT);" wird mir jedoch auch kein Fehler ausgegeben, und ich bin Langsam am Verzweifeln. Zum Testen habe ich dem Verzeichnis mal 777 Rechte gegeben, kann es sein das www-data für sowas Spezielle Rechte benötigt?

Server version: Apache/2.4.10 (Debian)

Ich bitte um jede Hilfe, und entschuldige mich dafür, das der Code Bereich bei dem <?php nicht korrekt gesetzt ist, aber der Teil wird immer ausgegrenz.. :c

Vielen dank. <3

Antwort
von mastema666, 17

Also diese Methode mit fopen, fwrite und fclose finde ich persönlich etwas zu umständlich, ich würde da einfach mit "file_put_contents()" arbeiten.

Ungefähr so:

<?php

$filename = 'testdatei.txt';
$content = 'inhalt, der in die datei geschrieben wird';
$path = '/home/user/www/subdir/';

file_put_contents($path . $filename, $content);

Der "$path" darf dabei übrigens keine URL sein, das muss ein lokaler Pfad sein, entweder absolut (wie in obigem Beispiel) oder relativ ausgehend vom aktuellen Verzeichnis (z.B. "foo/bar/").

Siehe auch: http://php.net/file\_put\_contents

Antwort
von happyfish2, 37

Du kannst natürlich keine Dateien remote schreiben, sondern nur auf deinem Server. Dazu solltest du den absoluten oder relativen Pfad zur Datei mit angeben.

Kommentar von vurex ,

Das ganze hat mich auch nicht viel Weitergebracht, was man vielleicht noch sagen sollte, wenn die Datei bereits per FTP erstellt wurde, und 777 Rechte hat, geht es. ;)

Kommentar von happyfish2 ,

Ok hatte den Code nur überflogen, sorry ;-)

Dann liegt es wohl daran, dass - wenn die Datei noch nicht existiert - das Verzeichnis nicht beschrieben werden darf. Also einfach dem übergeordnetem Verzeichnis Schreibrechte geben, dann sollte es klappen.

Kommentar von vurex ,

Kein Problem. c:

Habe ein neues Verzeichnis erstellt, und dort mal Verzeichnis und Datei 777 Rechte erteilt. Dort ging es dann leider gar nicht mehr.

Zurück im Alten Verzeichnis geht es wieder mit der alten Datei und den Rechten. Hast du möglicherweise noch eine andere Idee, wie man das Problem lösen könnte, oder kennst du dort eine Alternative?

Danke. c:

Keine passende Antwort gefunden?

Fragen Sie die Community