Hauptmenü

Untermenü

PHP/MySQL - Praxistutorial 4 - Grundsätzliches

1. Die Abschnitte

2. Vorbereitung

In der index.php benötigen wir nur zwei kleine Einträge. Packt den folgenden Code direkt an der Anfang der Datei


<?php
  require_once('inc/upload.inc.php');
  if ($_FILES)
  {    
    $msg uploadFile();
  }
?>

und den hier unter das body-Tag.


<?php
  if (!empty($msg))
  {
    echo '<p>'.$msg.'</p>';
  }
?>

Erläuterung

Eigentlich gibt es hier nicht viel zu sagen. Wir rufen eine Funktion namens uploadFile auf. Die wiederum gibt eine Meldung zurück (dazu später mehr) und wirft sie aus. Interessant ist hier nur die Bedingung if ($_FILES). Denn die greift nur, wenn man ein Formular absendet, bei dem man Daten hochladen kann.

3. Der Zugriff

Im Gegensatz zu normalen Formularwerten steuert man Upload-Daten nicht über $_POST sondern über $_FILES an. Mit diesem ebenfalls globalem Array hat man Zugriff auf alle benötigten Informationen zum Dateiupload. Der erste assoziative Index ist immer der Name des Formularfeldes, in unserem Beispiel also datei. In der zweiten Ebene des Arrays befinden sich alle benötigten Informationen.

4. Safe Mode

Das ist eine Einstellung, die immer wieder für Verzweiflung bei Anfängern führt. Dabei ist diese Einstellung meiner Meinung völlig idiotisch! Darum wird sie seit PHP 5.3 auch zu Recht als "deprecated" (missbilligt) eingestuft und verschwindet mit PHP 6 endgültig.

Das Problem

Wir laden unser Upload-Script per FTP auf den Webserver hoch. Somit gehört diese Datei zum Eigentümer FTP-Benutzer. Wenn wir das Script aber im Browser aufrufen und zum Beispiel einen Ordner erstellen, so gehört der zum Eigentümer des Webservers, also zum Beispiel "wwwrun". In dem Fall kann also das Script die hochgeladene Datei nicht in den neuen Ordner verschieben, weil safe_mode das nicht gestattet. Auf dieses Problem gehe ich später ein, ich wollte euch nur schon mal vorwarnen.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt