| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

22-11-2009, 21:31
|
|
BattleMaster246
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 20
|
|
fileperms() - Windows
Hi,
unter Linux funktioniert das, aber bei Windows Systemen kommt bei diesem hier immer etwas ganz anderes raus. Ich habe selbst keinen Windows server und kann es nicht testen, ich weis aber von anderen, dass es unter Windows nicht geht (Windows hat kein CHMOD oder?).
PHP-Code:
if(substr(decoct(fileperms("install.php")),2) != 777 && substr(decoct(fileperms("install.php")),2) != 0777)
Also dass ist nur die Abfrage ob eine Datei CHMOD 0777 hat.
Wie kann man das machen, dass es unter Windows funktioniert???
|

22-11-2009, 21:41
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Unter Windows bekommt man entweder 0100444 (read-only Flag gesetzt) oder 0100666 (kein Schreibschutz) von fileperms zurück. Diese Angaben sind bereits in oct umgerechnet, eigentlich kommt 33060 oder 33206 (dec) zurück.
Gruß,
Amica
|

23-11-2009, 13:14
|
|
BattleMaster246
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 20
|
|
Also muss ich zu meiner abfrage das dazuschreiben damit es für windows und linux geht?
PHP-Code:
&& decoct(fileperms("install.php") != 0100666
|

23-11-2009, 13:21
|
unset
 Moderator
|
|
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.778
|
|
Warum arbeitest du nicht mit is_writeable?
|

23-11-2009, 13:23
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Windows und auch einige Unixartige arbeiten mit einem ACL Rechte System. Mit Oktalzahlen kommst du da nicht weit.
Reichen dir nicht is_readable() und seine Brüder?
|

23-11-2009, 13:26
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Also ich würde mit Bitmasken arbeiten, aber ohne zu wissen, was du genau vorhast, kann ich dir kein genaueren Infos geben. Dass dein Code funktioniert, kann ich mir auch nur schwer vorstellen. Wenn ich mir das so ansehe, wird die Bedingung immer erfüllt:
decoct(fileperms(...)) liefert z. B. "777"
substr("777", 2) liefert "7"
und "7" ist niemals 777 oder 0777
|

23-11-2009, 17:33
|
|
BattleMaster246
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 20
|
|
Hmm, stimmt, ist mir garnicht in denn sinn gekommen die Funktion zu benutzen. Dann nehm ich lieber die. Das funktionier aber auf allen Systemen, oder?
Danke.
|

23-11-2009, 17:35
|
|
combie
PHP Expert
|
|
Registriert seit: May 2006
Beiträge: 2.925
|
|
Zitat:
|
Das funktionier aber auf allen Systemen, oder?
|
Was sagt denn das Handbuch dazu?
|

23-11-2009, 17:38
|
|
BattleMaster246
Registrierter Benutzer
|
|
Registriert seit: Nov 2009
Beiträge: 20
|
|
Zitat:
Gibt TRUE zurück, wenn die Datei existiert und nicht schreibgeschützt ist. Das Dateinamen-Argument filename kann ein Verzeichnisname sein. So können Sie überprüfen, ob in ein Verzeichnis geschrieben werden kann.
Bedenken Sie, dass PHP mit der Benutzer ID auf die Datei zugreift, unter welcher der Webserver läuft (oftmals ist dieses 'nobody'). Beschränkungen durch safe_mode werden nicht berücksichtigt.
Das Ergebnis dieses Funktionsaufrufes wird zwischengespeichert. Siehe auch clearstatcache() für weitere Einzelheiten.
Diese Funktion ist nicht für remote Dateien geeignet, die zu prüfende Datei muss über das Dateisystem des Servers verfügbar sein.
Siehe auch is_readable().
|
Steht nichts, also denke ich mal, dass es geht.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|