PHP-Skript funktioniert nicht...

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
nehcregit
Mitglied
Beiträge: 599
Registriert: 11.07.2002 20:59
Wohnort: Egelsbach
Kontaktdaten:

PHP-Skript funktioniert nicht...

Beitrag von nehcregit »

Hallo, ich möchte allen Dateien in dem Verzeichnis "downloads" auf meinem Server die Rechte 644 per Cronjob geben. Mit dem Cronjob rufe ich derzeit die Datei "downloadrechtesetzen.php" auf, die im übergeordneten Verzeichis zum Downloadverzeichnis liegt und folgenden Inhalt hat:

Code: Alles auswählen

<?php
chmod ("/downloads/*.*", 0644);
?>
Irgendwie klappt es aber nicht. Kann mir jemand sagen, wo mein Fehler ist?
SMFPortal.de - Deutscher Simple Machines Forum Support
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Vermutlich weil chmod() keine Platzhalter unterstützt :roll:
http://www.php.net/chmod/

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Benutzeravatar
nehcregit
Mitglied
Beiträge: 599
Registriert: 11.07.2002 20:59
Wohnort: Egelsbach
Kontaktdaten:

Beitrag von nehcregit »

Ja, soweit bin ich inzwischen ja auch. Aber wie kann ich denn damit mehrere Dateien chmodden? Im Netz finde ich immer nur Beispiele für eine explizite Datei...

Sorry für den falschen Bereich :oops:

Edit: Wobei ich anmerken muss, dass es nicht reicht, die Dateien einzeln im Skript aufzuführen, da das Verzeichnis "lebt" und ständig Dateien hinzukommen.
SMFPortal.de - Deutscher Simple Machines Forum Support
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Banger »

nehcregit hat geschrieben:Ja, soweit bin ich inzwischen ja auch. Aber wie kann ich denn damit mehrere Dateien chmodden? Im Netz finde ich immer nur Beispiele für eine explizite Datei...
Das halte ich für eine glatte Lüge.
http://de3.php.net/manual/de/function.chmod.php#47744
Benutzeravatar
nehcregit
Mitglied
Beiträge: 599
Registriert: 11.07.2002 20:59
Wohnort: Egelsbach
Kontaktdaten:

Beitrag von nehcregit »

Warum denn so unfreundlich? :-?

Ich kenne mich damit nicht wirklich aus, deswegen konnte ich diesen Code in dem Kommentar auch nicht als für mich passend erkennen. Ihr habt es hier mit einem Frischling zu tun :lol:

Kann mir freundlicherweise jemand sagen, wie ich den Code nun für mich passend editieren muss? Wo muss ich z.B. meinen Pfad zum Verzeichnis "downloads" einsetzen?
SMFPortal.de - Deutscher Simple Machines Forum Support
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Banger »

nehcregit hat geschrieben:Ich kenne mich damit nicht wirklich aus, deswegen konnte ich diesen Code in dem Kommentar auch nicht als für mich passend erkennen.
Wie kommst Du dann zu der Aussage, Du hättest nur Beispiele für eine explitzite Datei gefunden?
Ejal, lassen wir das.
nehcregit hat geschrieben:Kann mir freundlicherweise jemand sagen, wie ich den Code nun für mich passend editieren muss? Wo muss ich z.B. meinen Pfad zum Verzeichnis "downloads" einsetzen?
Den Code kannst Du 1:1 übernehmen (es sei denn, Du hast in /downloads/ weitere Unterverzeichnisse, die nicht berücksichtigt werden sollen) und mit

Code: Alles auswählen

chmod_R('/downloads', 0644);
aufrufen. Et voilà :)
Benutzeravatar
nehcregit
Mitglied
Beiträge: 599
Registriert: 11.07.2002 20:59
Wohnort: Egelsbach
Kontaktdaten:

Beitrag von nehcregit »

Vielen Dank! :grin:

Es gibt ein Unterverzeichnis, welches "upload" heißt und eigentlich nicht mitberücksichtigt werden sollte. Wird das schwierig?

Edit: Heißt das, ich muss in jeder Zeile $path und $filemode mit diesen Angaben ersetzen?
SMFPortal.de - Deutscher Simple Machines Forum Support
Benutzeravatar
Banger
Ehemaliges Teammitglied
Beiträge: 375
Registriert: 03.05.2005 21:53
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von Banger »

nehcregit hat geschrieben:Es gibt ein Unterverzeichnis, welches "upload" heißt und eigentlich nicht mitberücksichtigt werden sollte. Wird das schwierig?
Ich hab die Funktion mal so umgeschrieben, dass Wildcards berücksichtigt werden:

Code: Alles auswählen

function chmod_bissimehr($path, $filemode, $recursive) {
    if(is_file($path))
        return chmod($path, $filemode);

    if(is_dir($path))
        return $recursive ? chmod($path, $filemode) && chmod_bissimehr($path.'/*', &$filemode, TRUE) : chmod($path, $filemode);

    if(!$buf = glob($path))
        return TRUE;

    foreach($buf as $fd)
        if(!chmod($fd, $filemode))
            return FALSE;
        if(is_dir($fd) && $recursive && !chmod_bissimehr($fd.'/*', &$filemode, TRUE))
            return FALSE;

    return TRUE;
}
Aufruf:

Code: Alles auswählen

chmod_bissimehr('/downloads/*.*', 0644, FALSE);
- der dritte Parameter bestimmt, ob Unterverzeichnisse mit eingeschlossen werden sollen.

EDIT: Aufruf korrigiert, danke easygo :)
nehcregit hat geschrieben:Edit: Heißt das, ich muss in jeder Zeile $path und $filemode mit diesen Angaben ersetzen?
N!E!I!N! Das ist eine Funktion, da musst Du nur den entsprechenden Parameter angeben. Falls Dir das nicht klar ist, lege Dir dringendst PHP-Grundwissen an, bevor Du Dich weiter an Code versuchst.
Zuletzt geändert von Banger am 24.08.2006 01:09, insgesamt 2-mal geändert.
Benutzeravatar
easygo
Mitglied
Beiträge: 2170
Registriert: 03.09.2004 13:45
Kontaktdaten:

Beitrag von easygo »

Banger hat geschrieben:Aufruf:

Code: Alles auswählen

function chmod_bissimehr('/downloads/*.*', 0644, FALSE);
So gibt das keinen Aufruf. easy
Benutzeravatar
nehcregit
Mitglied
Beiträge: 599
Registriert: 11.07.2002 20:59
Wohnort: Egelsbach
Kontaktdaten:

Beitrag von nehcregit »

Ich hatte es mir leichter vorgestellt. Muss ich wohl erstmal ne Weile googeln und mich einlesen... Danke bisher trotzdem...
SMFPortal.de - Deutscher Simple Machines Forum Support
Antworten

Zurück zu „Coding & Technik“