Du bist nicht angemeldet.
aja
also voll danaben getippt.
Naja, ich hätte grad zwei andere Ideen:
Variante 1: die Tilde mit Klammern noch vom umask() abtrennen.
also aus dem
if (!isset($dirpermission)) {
$dirpermission = (function_exists('umask')) ? (0777 & ~umask()) : 0755;
}
if (!isset($filepermission)) {
$filepermission = (function_exists('umask')) ? (0666 & ~umask()) : 0644;
}
mach dies:
if (!isset($dirpermission)) {
$dirpermission = (function_exists('umask')) ? (0777 & (~(umask()))) : 0755;
}
if (!isset($filepermission)) {
$filepermission = (function_exists('umask')) ? (0666 & (~(umask()))) : 0644;
}
Variante 2: Vielleicht kennt der Interpreter die Tilde als unären Operator für den Rückgabewert von umask() nicht.
Füge irgendwo ziemlich weit am Anfang des Skripts diese neue Funktion ein:
function negation($num) {
$world = $num % 8;
$num = floor ($num / 8);
$group = $num % 8;
$num = floor ($num / 8);
$owner = $num;
$res = $owner * 64 + $group * 8 + $world;
return $res;
}
und mach wieder aus dem hier
if (!isset($dirpermission)) {
$dirpermission = (function_exists('umask')) ? (0777 & ~umask()) : 0755;
}
if (!isset($filepermission)) {
$filepermission = (function_exists('umask')) ? (0666 & ~umask()) : 0644;
}
nun das da:
if (!isset($dirpermission)) {
$dirpermission = (function_exists('umask')) ? (0777 & negation(umask())) : 0755;
}
if (!isset($filepermission)) {
$filepermission = (function_exists('umask')) ? (0666 & negation(umask())) : 0644;
}
Funktioniert leider auch nicht.
Da kommt dann wieder der selbe Fehler
wie im Ausgangsposting.
ups nicht dran gedacht, aber ~umask hat mir vorher eh noch nix gesagt.
Dann sei doch so nett und bastel dem soli das script um (anscheinend sollte man dann die maske vorher auslesen und entsprechend "umbasteln", damit die Rechtevergabe wie gewuenscht verdreht wird).
bye Ron
Äh. Ja. Ich hab nicht wirklich Ahnung von php...
So als Schuss ins Blaue würde ich tippen, dass der Interpreter etwas buggy ist.
Ich vermute, er versucht 0777 & ~ auzuwerten anstatt erst ~umask(). Die Präzedenz wäre also anders. (php ist da wohl auch nicht so genau dokumentiert)
Es wäre daher m. E. einen Versuch wert, einfach das ~umask() in Klammern zu setzen.
Das heißt, aus
if (!isset($dirpermission)) {
$dirpermission = (function_exists('umask')) ? (0777 & ~umask()) : 0755;
}
if (!isset($filepermission)) {
$filepermission = (function_exists('umask')) ? (0666 & ~umask()) : 0644;
}
wird
if (!isset($dirpermission)) {
$dirpermission = (function_exists('umask')) ? (0777 & (~umask())) : 0755;
}
if (!isset($filepermission)) {
$filepermission = (function_exists('umask')) ? (0666 & (~umask())) : 0644;
}
Ich glaube das funktioniert sowieso nicht.
Die lassen es einfach nicht zu das man Ordner erstellt.
Ich konnte noch nicht mal eine bestehende Ordnerstrukur
mit unzip.php entpacken.
War alles sofort weg.
Aber ist alles nicht so sehr wichtig.
Ich hab ausreichend Webspace.
Mir ging es nur darum das zur Funktion zu bringen,
und hab ja immerhin schon etwas dabei gelernt.
ups nicht dran gedacht, aber ~umask hat mir vorher eh noch nix gesagt.
Dann sei doch so nett und bastel dem soli das script um (anscheinend sollte man dann die maske vorher auslesen und entsprechend "umbasteln", damit die Rechtevergabe wie gewuenscht verdreht wird).
bye Ron
*räusper*
ich kenne das Skript zwar nicht, aber wenn man aus einem
0777 & ~umask()
ein
0777 & umask()
macht und das als Rechte setzt, dreht man die Rechte genau rum. Wenn umask als Standardmaske 0022 zurückgibt, so wird daraus ~0022 = ?755 und 0777 & ?755 = 0022 - Du darfst nichts, deine Gruppe und der Rest der Welt bekommen Schreibrechte.
Danke, webadmin funktioniert jetzt.
Nur schade das man keine Ordner erstellen oder umbenennen kann.
Proxys hatte ich auch schon ausprobiert,
wurden aber alle abgelehnt.
Kenn wohl keine gescheiten.
entferne mal bei den beiden ~umask() die tilde
aus:
if (!isset($dirpermission)) {
$dirpermission = (function_exists('umask')) ? (0777 & ~umask()) : 0755;
}
if (!isset($filepermission)) {
$filepermission = (function_exists('umask')) ? (0666 & ~umask()) : 0644;
}
wird
if (!isset($dirpermission)) {
$dirpermission = (function_exists('umask')) ? (0777 & umask()) : 0755;
}
if (!isset($filepermission)) {
$filepermission = (function_exists('umask')) ? (0666 & umask()) : 0644;
}
dann funzt es auch auf free.fr ;D
ps: noe hab schon laenger nix bei free.fr registriert - notfalls muss man halt risikoreich ueber franzoesische proxys gehen ;D
bye Ron
Hier mal ein kleiner Ausschnitt:
$words = getwords($lang);
if ($site_charset == 'auto') {
$site_charset = $word_charset;
}$cols = ($win) ? 4 : 7;
if (!isset($dirpermission)) {
$dirpermission = (function_exists('umask')) ? (0777 & ~umask()) : 0755;
}
if (!isset($filepermission)) {
$filepermission = (function_exists('umask')) ? (0666 & ~umask()) : 0644;
}if (!empty($_SERVER['SCRIPT_NAME'])) {
$self = html(basename($_SERVER['SCRIPT_NAME']));
} elseif (!empty($_SERVER['PHP_SELF'])) {
$self = html(basename($_SERVER['PHP_SELF']));
} else {
$self = '';
}
Das gesamt Script findest du hier:
-->Linktitel:
-->Linktitel: http://wacker-welt.de/webadmin/ (Links sind aus rechtlichen Gründen nicht klickbar)
-->Link: 'http://wacker-welt.de/webadmin/'
(Links sind aus rechtlichen Gründen nicht klickbar)
-->Link: 'http://wacker-welt.de/webadmin/'
Aber Achtung falls das jemand testen will.
Die ganze Sache funktioniert ohne LogIn.
Wer es auf seinem Webspace vergisst,
gibt Hin und Kunz Zutritt zu seinen Dateien.
Hast du übrigens in letzter Zeit mal einen Account auf free.fr registriert?
Bei den neuen funktioniert der ftp nur noch von Frankreich aus.
kannste zusaetzlich auch mal die vorherige zeile posten ?
zwecks chmod ... probiers doch einfach mal per Einfachst-Script, per Chmod nen Dateiattribut zu aendern.
Denke mal aber, das umask macht probs, dazu wirste bei free.fr nich die Rechte haben (das aendert die allgemeinen Attribute von Dateien die durch diesen Prozess (also das Script in dem Fall) erstellt werden).
bye Ron
Es geht um webadmin.php, das ist ein kleiner Filemanager.
Auf localhost läuft er bei mir ohne Probleme.
Auf free.fr bekomme ich allerdings folgenden Fehler
Unsupported operand types on line 256
Die Zeile sieht so aus.
$dirpermission = (function_exists('umask')) ? (0777 & ~umask()) : 0755;
Ich tippe mal der Fehler ist das "~" weil das vorher im Code nicht auftaucht.
Was bedeutet dieses und warum könnte das mokiert werden?
Oder kommt der Fehler vielleicht doch an fehlenden chmod Rechten?
bin etwas ratlos,
soli