Du bist nicht angemeldet.
Seiten: 1
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
http://www.andsa.de
Offline
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
Offline
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.
http://www.andsa.de
Offline
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
Offline
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.
http://www.andsa.de
Offline
*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.
Erst wenn der letzte Informatiker eingesperrt und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
Offline
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
Offline
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.
http://www.andsa.de
Offline
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;
}
Erst wenn der letzte Informatiker eingesperrt und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
Offline
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;
}
Erst wenn der letzte Informatiker eingesperrt und die letzte Idee patentiert ist, werdet ihr merken, dass Anwälte nicht programmieren können.
Offline
Seiten: 1