script soll automatisch einem ordner chmod = 777 geben, aber wie?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
achtung
ahnung
befehl
bit
datei
formen
funktion
manual
mode
null
ordner
prinzip
recht
rekursiven algorithmus
skript
syntax
target
test
verzeichnis
vielen dank
-
hi, ich habe ein script, wo man auch bilder hochladen kann in den unterordner pictures... aber damit das geht muss man ja dem ordner den chmod auf 777 setzen.. dieses script soll extra f?r leute sein, die von sowas und php keine ahnung haben.... bei der installation des script soll also auch der ordner gleich die chmod rechte 777 bekommen... mit welchem php code bekomm ich das hin? ich denk mir mal, dass das m?glich ist, denn mit php ist ja vieles m?glich :D
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
thx ich warte lieber auf noch mehr antworten, denn damit kann ich nur wenig anfangen :(
-
Wenn du den ordner kennst und du auf nem unix-system bist:
php_exec('chmod -R 777 /var/www/ordner');
(ich kann kein php, also stimmt die syntax ned, aber das prinzip ^^)
also das m?sste gehen, wenn du php_exec durch exec ersetzt ;)
aber guck mal unter den tuts, da is eins dabei wie man die chmods setzten kann
edit :
http://www.lima-city.de/tutorials?m=show&id=43
<?
<?
if(isset($_GET['target'])) // da dieses skript auf einer Datei basiert muss zuallererst geprüft werden ob bereitz eine Datei/Ordner angegeben wurde!
{ // falls bereits eine Datei/Ordner angegeben wurde kommt folgendes:
chmod ("./$target", 0777); // mit diesem Befehl wird die Datei/Ordner mit dem namen $target, welche sich im gleichen Verzeichniss wie die ftpperm.php befinden muss, auf die rechte 777 gesetzt! (Um sie auf andere rechte zu setzten, ein die 777 durch etwas ersetzen z.b. 555 aber immer die 0 vorangestellt lassen
echo "Der Ordner/Datei $target wurde durch <a href=\"http://www.forum.zansinger.de.vu\" target=\"blank\">IZSkiSurfers</a> Skript ftpperm.php © 2004 auf die FTP Recht 0777 gesetzt!<br />"; // hier wird ein kurzer text ausgegeben der auch bitte im skript bleiben sollte
?>
<a href="ftpperm.php">Noch ein(e) Ordner/Datei!</a>
<? // in der vorherigen zeile wird ein link ausgegeben, mit dem man eine weitere Datei/Ordner auf 777 setzen kann!
}
else
{ // falls noch keine datei/ordner angegeben wurde wird folgendes ausgegeben (ein kleines html formular mit einem textfeld, das den namen target erhält! target deshlab, da oben im skript mit dieser Variablen gearbeitet wird!
?>
<form name="Permissions" method="get" action="ftpperm.php">
Ordner/Datei:
<input name="target" type="text" id="target" size="50" maxlength="70">
<br />
<input type="submit" name="aktion" value="Setzen">
</form>
<?
}
?>
?>
-
Am einfachsten ist es sicherlich, wenn du f?r Dateirechte die PHP-Funktionen chmod() und chown() benutzt:
int chown (string filename, mixed user)
Setzen des Dateieigent?mers
int chmod (string filename, int mode)
Setzen der Dateirechte
Die Funktionen funktionieren ?hnlich wie die gleichnamigen UNIX-Kommandos.
Achtung: Den mode musst du als Oktalzahl angeben, also mit einer f?hrenden Null (Das ist das Sticky-Bit, musst du aber nicht wissen).
Willst du meinetwegen die Datei "test.txt" f?r alle voll zug?nglich (Lesen, Schreiben, Ausf?hren) machen, geht das mit
chmod("test.txt",0777);
HTH,
thw -
Joa, ich hab' mir gedacht, dass es so was f?r php gibt.
Nur hab' ich halt keine Ahnung, ob das auch f?r Ordner geht. Ausserdem is das nich rekursiv, das heisst, es gilt nur f?r den Ordner, nicht f?r die Dateien, die da drin sind. (Ich wei? ned genau, aber ich glaube, du willst das rekursiv).
Meine Option f?hrt auf dem Server selbst den Befehl (das Programm chmod) aus. Das is dann wegen dem "-R" auch rekursiv (=gilt f?r alle Unterordner und alle Dateien in diesem Ordner+ Unterordner).
Wenn du das mit dem "exec" nich genau vestehst: das is, wie wenn du bei Windows in der "command" (der DOS-Konsole) einen Befehl eintippst und "ENTER" dr?ckst. Nur, dass dieser Befehl beim Ausf?hren die Rechte ?ndert. -
Hallo jannis!
Ich glaube nicht, dass specialdune einen rekursiven Algorithmus ben?tigt. Da er ja gleich nach Erstellung des Ordners dessen Rechte setzen will, sollte der Ordner noch leer sein.
Tats?chlich schweigt sich das PHP-Manual ?ber die Art der Filesystemeintr?ge aus (man spricht immer von "Datei"), die mit chmod(), chown() und chgrp() manipuliert werden k?nnen. In solchen F?llen ist aber anzunehmen, dass sowohl richtige Dateien als auch Verzeichnisse bearbeitet werden k?nnen.
Online-Manual:
http://de.php.net/manual/de/function.chown.php
usw. f?r die anderen Funktionen
Die Seite f?r chown() enth?lt aber ein Beispiel f?r ein rekursives chown(). Sucht mal nach "recurse_chown_chgrp".
MfG
alopex -
danke danke, das riehct mir shcon ;) vielen dank mehr als "chmod("datei",0777);" brauch ich nciht.. ahja.. wof?r die 0???? weil rechte sind doch 777 wof?r is die 0?
-
specialdune schrieb:
danke danke, das riehct mir shcon ;) vielen dank mehr als 'chmod('datei',0777);' brauch ich nciht.. ahja.. wof?r die 0???? weil rechte sind doch 777 wof?r is die 0?
lesen...
[...]
Achtung: Den mode musst du als Oktalzahl angeben, also mit einer f?hrenden Null (Das ist das Sticky-Bit, musst du aber nicht wissen).
Willst du meinetwegen die Datei "test.txt" f?r alle voll zug?nglich (Lesen, Schreiben, Ausf?hren) machen, geht das mit
chmod("test.txt",0777);
[...]
-
Warning: chmod(): Operation not permitted in /home/htdocs/web27/html/XN/fore/clanmanager/install.php on line 168
sch?n... das hei?t???? -
Das Script "install.php" oder, besser gesagt, der Webserver hat keine Rechte, die Datei (oder den Ordner) mit chmod() zu ver?ndern.
Wo befindet sich dieser Ordner ("pictures"?) ?berhaupt?
MfG
alopex -
unter ordner ...
also das script hat den ordner /script/ und der pictures ordner ist: /script/pictures/ -
Kannst du dieses Verzeichnis mit opendir() ?ffnen, oder kommt da auch eine Fehlermeldung?
-
<?php
$ordner = opendir("grafik");
while($datei = readdir($ordner))
{
if(! is_file("grafik/$datei"))
continue;
print "$datei<br>";
}
closedir($ordner);
?>
ausgabe geht, alles wird aus dem ordner ausgelesen
hmm... muss wohl am server liegen, auf lima gehts, naja mein problem^^ ( wenn jemand trotzdem ne l?sung findet, sagen ( au?er sowas wie, machs mitm ftp prog :D ) ) -
Jetzt kannst du h?chstens mal jannis um Hilfe anPiNen. Der schien mir etwas kompetenter (als meine Wenigkeit) was den Umgang mit UNIX-Filesystemen angeht. Oder du fragst den Hoster. Der muss doch auch sowas wie einen Kundenservice, Support o.?. haben.
*ratlos_dreinguck*
MfG
alopex -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage