Mailinglisten-Archive |
Hallo Holger, Holger Zengerle schrieb: > ----------- >> anstatt <?php $PHP_SELF; ?> muß da stehen: >> >> <?php echo($_SERVER['PHP_SELF']); ?> > ----------- > Warum ist die andere Variante? Ich habe das obere überall. Wäre es besser > alles auf Deine Variante umzubauen? grundsätzlich war hier falsch, daß das echo() fehlte, also die Ausgabe der Variablen. ;-) Anstatt <?php echo($_SERVER['PHP_SELF']); ?> hättest Du auch <?= $_SERVER['PHP_SELF'] ?> schreiben können, allerdings sind die an ASP angelegten Kurzformen (Short Tags) verpönt. Ihre Funktionsfähigkeit hängt auch davon ab, daß sie in der PHP-Konfiguration vom Administrator überhaupt erlaubt werden. Punkt 2: $PHP_SELF ist eine veraltete Schreibweise. Heute stecken diese ganzen Informationen zum Server aus Sicherheitsgründen in $_SERVER. Daher jetzt die Schreibweise $_SERVER['PHP_SELF']. Zu den Hintergründen dieser Änderung siehe: http://www.php.net/manual/de/language.variables.predefined.php http://www.php.net/manual/de/security.globals.php > ----------- >> if (isset($_POST['ordnername']) && >> !empty($_POST['ordnername'])) { > ----------- > Was ist an dieser Abfragevariante besser als an meiner, wenn ich nur eine > normale if-Abfrage mache: "if ($ordnername) {...}"? Du möchtest ja einen Ordner anlegen. Dazu verwendest Du ein Formular, wo man den Verzeichnisnamen frei eintragen kann. Um den Ordner anlegen zu können, ist entscheidend, daß ein Ordnername eingetragen und abgeschickt wurde. Und wenn Du einen Ordnernamen übergeben bekommen hast, weißt Du automatisch, daß das Formular abgeschickt wurde. Du hast nur darauf abgefragt, ob das Formular abgeschickt wurde. Damit weißt Du aber noch nicht, ob Du auch einen verwertbaren Ordnernamen übergeben bekommen hast. :-) Daher ist die von mir vorgeschlagene Abfragevariante besser. > Und vorallem, warum das "$_POST['ordnername']" und nicht nur die Variable > $ordnername? Mit $_POST['ordnername'] und $ordnername verhält es sich so, wie mit $_SERVER['PHP_SELF'] und $PHP_SELF, d.h. siehe obige Links. :-) Die neue Schreibweise schließt eine Sicherheitslücke (wenn register_globals auf OFF steht). > Jetzt können wir die validierung einbauen. Genau. Du mußt nämlich sicherstellen, daß keine ungültigen Zeichen und sonstiger illegaler Kram in der Variable $_POST['ordnername'] übergeben wird. > Allerdings hab ich nun folgendes Problem, dass zwar der Ordner angelest > wird, aber nicht mit den Schreibrechten 0777 versehen wird sondern nur mit > 0755. Wenn ich das aber mit dem FTP-Programm noch ändere, werden diese > aber > nicht übernommen. Der Hostingsupport sagte mir irgendwas davon, dass beim > Anlegen des Ordners die Zugriffsrechte des root-serves oder so übernommen > werden, und dafür habe ich keine Rechte. > Kann das so sein? Kann ich da im Script was machen oder muss der Hoster da > was ändern? Du solltest das Verzeichnis nur mit den nötigen Rechten versehen. Wenn 0755 ausreicht, dann belasse es dabei. :-) Der Eigentümer des Verzeichnisses hat ja volle Rechte. Der Rest der Welt kann immerhin lesend zugreifen. Das sollte doch ausreichen. :-) Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive