Xampp und die Ordner- & Datei-Rechte?

Alles, was PHP betrifft, kann hier besprochen werden.

Xampp und die Ordner- & Datei-Rechte?

Postby BartTheDevil89 » 12. May 2009 08:30

Hallo,

ich habe ein Script, was ich auf meinem localhost laufen lasse und dann eben auch online.

Ein Problem hab ich jedoch. Denn das Script benötigt einige Rechte, also zum Beispiel chmod 0777. Und dafür gibts eine Rechteüberprüfung, die überprüft, ob der Ordner, die Datei die Rechte hat und wenn nicht, versucht er die über chmode() die Rechte zu ändern. Das scheint auch zu funktionieren, aber danach kann ich die Datei vergessen, weil dann xampp meldet, dass er die Datei nicht beschreiben kann.

Aber wie kann ich denn das am besten abändern, dass es sowohl aufm localhost läuft, als auch auf nem Online-Server?

Danke
BartTheDevil89
 
Posts: 32
Joined: 01. August 2008 12:42

Re: Xampp und die Ordner- & Datei-Rechte?

Postby Wiedmann » 12. May 2009 08:33

Das scheint auch zu funktionieren, aber danach kann ich die Datei vergessen, weil dann xampp meldet, dass er die Datei nicht beschreiben kann.

Dann scheint es wohl eher doch nicht zu funktionieren...

Aber wie kann ich denn das am besten abändern, dass es sowohl aufm localhost läuft, als auch auf nem Online-Server?

Dazu müsste man ja wissen, wie der Code bisher aussieht.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Xampp und die Ordner- & Datei-Rechte?

Postby BartTheDevil89 » 12. May 2009 08:51

Hi,
dann hier mal mein Code:

Code: Select all
   function check_rechte($name,$rechte) {   //Überprüft Chmod-Rechte
   //$name gibt den Ordner, bzw. Dateinamen an; $rechte hat den Wert der Rechte, bsp.0777
                $errorlist = 0;
      $recht = fileperms("$name");
      $octal = true;
      $cut = $octal ? 2 : 3;
      $recht = substr(decoct($recht), $cut);

      if($recht != $rechte){//wenn Rechte nicht passen
         if(@chmod("$name", $rechte)){//Versucht rechte durchs System zu setzen
         }else{
            $errorlist = 1;//wenn Rechte nicht gesetzt werden können und auch nicht passen, dann Rückgabe = 1
         }
      }
   
      return $errorlist;
   }


Danke für die Hilfe....
BartTheDevil89
 
Posts: 32
Joined: 01. August 2008 12:42

Re: Xampp und die Ordner- & Datei-Rechte?

Postby Wiedmann » 12. May 2009 09:00

weil dann xampp meldet, dass er die Datei nicht beschreiben kann.

Wie sieht denn diese Meldung genau aus? Bzw. an welcher Stelle im Code kommt diese (und welches OS)?
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Xampp und die Ordner- & Datei-Rechte?

Postby BartTheDevil89 » 12. May 2009 09:07

Wiedmann wrote:
weil dann xampp meldet, dass er die Datei nicht beschreiben kann.

Wie sieht denn diese Meldung genau aus? Bzw. an welcher Stelle im Code kommt diese (und welches OS)?


Beim ändern direkt kommt keine Meldung...also da gibts keine Problem, wenn diese Funktion durchläuft. Aber danach beim ändern einer Datei zum Beispiel kommt halt Permission Denied.
OS offline ist Vista. Und denke, dass ich da mal was gehört hab, dass chmod auf Windows nicht vorhanden ist.
BartTheDevil89
 
Posts: 32
Joined: 01. August 2008 12:42

Re: Xampp und die Ordner- & Datei-Rechte?

Postby Wiedmann » 12. May 2009 09:15

Beim ändern direkt kommt keine Meldung...

Du unterdrückst ja auch erfolgreich alle möglichen Meldungen...

Aber danach beim ändern einer Datei zum Beispiel kommt halt Permission Denied.

Dann wird wohl das in $rechte nicht stimmen. bzw. dürfte dein Vergleich von $rechte mit $recht schon nicht passen.
(oder du (Apache) hast keine Rechte um Rechte für die angegebene Datei zu ändern.)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Xampp und die Ordner- & Datei-Rechte?

Postby BartTheDevil89 » 12. May 2009 09:46

Wiedmann wrote:
Du unterdrückst ja auch erfolgreich alle möglichen Meldungen...



Ja, aber wenn da was schief laufen würde, würde die Funktion ja 1 zurückgeben und das passiert nicht. Aber jetzt mal ganz anders gefragt...wie würdest du denn so ne Funktion aufbauen?

Hab das ganze nochmal überprüft. Und es ist so, dass bei Dateien, wenn ich sage es soll 0777 - Rechte haben, dann per chmod() aber auf 0444 geändert wird.
BartTheDevil89
 
Posts: 32
Joined: 01. August 2008 12:42

Re: Xampp und die Ordner- & Datei-Rechte?

Postby Wiedmann » 12. May 2009 15:57

Und es ist so, dass bei Dateien, wenn ich sage es soll 0777 - Rechte haben, dann per chmod() aber auf 0444 geändert wird.

Also 0666 hätte ich verstanden. 0444 grad nicht wirklich (bei Windows).

wie würdest du grad denn so ne Funktion aufbauen?

Zumindest sollte man in chmod() octdec() auf $recht anwenden.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Xampp und die Ordner- & Datei-Rechte?

Postby BartTheDevil89 » 12. May 2009 22:43

Wiedmann wrote:Also 0666 hätte ich verstanden. 0444 grad nicht wirklich (bei Windows).

Zumindest sollte man in chmod() octdec() auf $recht anwenden.


Habs nochmal überprüft, aber ist wirklich 0444.

Und warum octdec()? Denn 0777 als Rechte ist nunmal 0777 und doch nicht octdec(0777) oder?
BartTheDevil89
 
Posts: 32
Joined: 01. August 2008 12:42

Re: Xampp und die Ordner- & Datei-Rechte?

Postby Wiedmann » 12. May 2009 23:08

Und warum octdec()?

Weil ein String "0777" etwas anderes ist als ein oktaler Wert 0777.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Xampp und die Ordner- & Datei-Rechte?

Postby BartTheDevil89 » 14. May 2009 08:14

Ah, dankeschön....mit octdec() kommt es dann dazu, dass 0666 erreicht wird. Aber warum wird das 0777 nicht erreicht?

Danke
BartTheDevil89
 
Posts: 32
Joined: 01. August 2008 12:42

Re: Xampp und die Ordner- & Datei-Rechte?

Postby Wiedmann » 14. May 2009 08:36

Aber warum wird das 0777 nicht erreicht?

Weil es das "7" so in den Dateiattributen von Windows nicht gibt, sondern nur in den ACLs, die PHP nicht kennt und setzt.

kommt es dann dazu, dass 0666 erreicht wird

Auch werden bei Windows die Bits für owner/group/other immer gemeinsam gleich "gesetzt", immer nach dem, was du für den "owner" angibst. Eben aus dem dem selben Grund wie oben: So eine Unterscheidung macht man bei Windows mit ACLs.

Ansonsten gibt es bei Windows nur 2 mögliche Werte: 0666 oder 0444. Oder anders:
- PHP wertet unter Windows nur das read-only Dateiattribute aus
- Die anderen Attribute "Archiv", "System", "Versteckt" kennt PHP nicht.

(Auch wird dir PHP sagen, dass du eine Datei lesen ,bzw. beschreiben, kannst, obwohl dir die ACLs das möglicherweise verbieten...)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: Xampp und die Ordner- & Datei-Rechte?

Postby BartTheDevil89 » 14. May 2009 08:49

Hallo,
danke für die Hilfe.
BartTheDevil89
 
Posts: 32
Joined: 01. August 2008 12:42


Return to PHP

Who is online

Users browsing this forum: No registered users and 9 guests