Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
13.08.2006, 21:51
Cpt. Rick



Also, erstmal Hallo liebe Community!

Ich habe mir ein script gebastelt, mit welchen man Dateien bearbeiten, online.
Soweit so gut!
Jetzt funktioniert das Script zum schreiben in die Datei leider nicht!

Hier der Code:

Quellcode:<?php
    $filename = $_POST["path"];
    $somecontent = $_POST["text"];
    
    if (is_writable($filename)) {
    
      
       if (!$handle = fopen($filename, "w+")) {
             print "Kann die Datei $filename nicht öffnen";
             exit;
       }
    
       if (!fwrite($handle, $somecontent)) {
           print "Kann in die Datei $filename nicht schreiben";
           exit;
       }
    
       print "Fertig, in Datei $filename wurde $somecontent geschrieben";
    
       fclose($handle);
    
    } else {
       print "Die Datei $filename ist nicht schreibbar";
    }
?>
Jetzt erhalte ich die Meldung "Die Datei $filename ist nicht schreibbar".
Ich habe alle Rechte auf 777 gesetzt. Daran kann nicht liegen.

Vllt muss ich ja etwas in der Php.ini einstellen, ich kenne mich auf dem Gebiet, garnicht aus!

Bitte helft mir!

--

zum Seitenanfang zum Seitenende Profil || Suche
001
13.08.2006, 23:44
K-Putt



Vielleicht solltest du vorher prüfen, ob die Datei überhaupt existiert?

Weiters öffnest du die Datei mittels w+ zum Lesen _und_ Schreiben, was in deinem Fall gar nicht notwendig ist; lesen würde ausreichen.

--

Rambo Engineer @ Drippy's 2fort - finest TFC 1.5 || Bild Upload || The world's most advanced open source database

zum Seitenanfang zum Seitenende Profil || Suche
002
14.08.2006, 14:27
Cpt. Rick



Zitat:
K-Putt postete
Vielleicht solltest du vorher prüfen, ob die Datei überhaupt existiert?
Das die Datei existiert ist sichergestellt, da ein vorheriges Script mit dem übergeben Pfadangaben korrekt arbeitet.

Zitat:
K-Putt posteteWeiters öffnest du die Datei mittels w+ zum Lesen _und_ Schreiben, was in deinem Fall gar nicht notwendig ist; lesen würde ausreichen.
w+ setzt die Datei auf 0 Byte und versucht neu zu beschreiben. Falls das nicht geht versucht sie die Datei neu zu erstellen.

--

zum Seitenanfang zum Seitenende Profil || Suche
003
14.08.2006, 23:10
K-Putt



Zitat:
w+ setzt die Datei auf 0 Byte und versucht neu zu beschreiben. Falls das nicht geht versucht sie die Datei neu zu erstellen.
Falsch, "w" macht dies.
W+ öffnet sie zusätzlich zum Lesen, was in deinem Beispiel nicht vonnöten ist.

Wie auch immer, ohne dein Dateisystem inkl. Berechtigungen zu kennen, wird dir da wohl keiner helfen können.

Eine andere Möglichkeit wäre noch, dass bei deiner PHP-Konfiguration der Safe-Mode und/oder open_basedir gesetzt ist, und du auf das Verzeichis keinen Zugriff hast.

Um das zu testen, versuch doch einfach die Datei direkt per fopen zu öffnen, und guck dir die Fehlermeldung an.

--

Rambo Engineer @ Drippy's 2fort - finest TFC 1.5 || Bild Upload || The world's most advanced open source database

zum Seitenanfang zum Seitenende Profil || Suche
004
15.08.2006, 17:44
Cpt. Rick



Hmmm...also mit "w" hatte ich schon ein Script und das hat ebenfalls nicht funtkioniert.

Also die Rechte der schreibenden, sowie der zu schreibenden Dateien setehen auf 777, also alles an!

Dann dürften sie ja auch auf jedes Verzeichnis zugreifen, oder gibt es da auch spezielle Einstellungen?

--

zum Seitenanfang zum Seitenende Profil || Suche
005
15.08.2006, 21:17
Chronial



du musst für jedes Verzeichniss und jede Datei auf die das SCript zugreifen soll gegebenenfalls die richtigen rechte setzen (ja, es gibts auch verzeichnissrechte) - auf was dein script gesetzt ist ist dabei uninteressant.
Hängt aber von der Serverkonfiguration ab, ob das nötig ist.

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren

zum Seitenanfang zum Seitenende Profil || Suche
006
16.08.2006, 17:22
Cpt. Rick



Waren nicht die Rechte!
Ein Freund hat das Script mal durchgeguckt und einen Rechtschreibfehler gefunden.

if (is_writ [e] able($filename))

Nen E wars^^

Danke für eure Bemühungen!

--

zum Seitenanfang zum Seitenende Profil || Suche
007
16.08.2006, 18:33
Chronial



erm... nein.
Das kann es eigentlich nicht sein
http://lu.php.net/manual/de/function.is-writable.php

is_writable ist schon die richtige funktion

http://lu.php.net/manual/de/function.is-writeable.php
is_writeable ist nur ein alias zu is_writable (und eigenltich solltest du nicht die aliase verwenden, sondern die korrekten Funktionsnamen)

--

"tsuji-giri" (japanisch) - ein neues Schwert an einem Passanten ausprobieren

zum Seitenanfang zum Seitenende Profil || Suche
008
17.08.2006, 15:41
Cpt. Rick



Hmm...naja, jetzt funktionierts aber!

--

zum Seitenanfang zum Seitenende Profil || Suche
009
23.08.2006, 22:02
Cpt. Rick



So also das System funktioniert soweit!
Es ist nur leider ein weiterer Ferhelr aufgetaucht!

Wenn ich in die Dtaei schreibe werden vor die " " " automtisch "/" gesetzt!
Genau das selbe ist es mit den " ' "!

Woran kann das leigen, bzw. wie kann ich das verhindern?

--

zum Seitenanfang zum Seitenende Profil || Suche
010
23.08.2006, 23:01
CN



sicher dass das slashes sind? oder sind das eher backslashes?
ansonsten würde ich mir mal entsprechende ersetzungsfunktionen angucken: stripflashes

--


Dieser Beitrag wurde am 23.08.2006 um 23:03 von CN bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
011
24.08.2006, 13:22
Cpt. Rick



Es sind Backslashes.
Ich teste die Funktion mal, danke!

--

zum Seitenanfang zum Seitenende Profil || Suche
012
24.08.2006, 13:27
hausi



magic_quotes ausschalten. Kannst du auch nur für dein Script mit set_magic_quotes_runtime( 0 ); machen.

--

zum Seitenanfang zum Seitenende Profil || Suche
013
24.08.2006, 13:33
Cpt. Rick



Ich habe die funktion jetzt nicht in die SChreibfunktion gepackt (da hats keine Wirkung erziehlt), aber in der Lesefunktion funktionierts Einwandfrei!

Danke!

--

zum Seitenanfang zum Seitenende Profil || Suche
014
01.09.2006, 19:47
K-Putt



Hatte heute ebenfalls ein Problem mit is_writable - mehrere Webseiten sagen, dass die Funktion ein problem mit user/gruppenberechtigungen, sowie den Windows-ACLs hat.

Hab die Funktion danach durch eine eigene ersetzt.

--

Rambo Engineer @ Drippy's 2fort - finest TFC 1.5 || Bild Upload || The world's most advanced open source database

zum Seitenanfang zum Seitenende Profil || Suche