php Upload

MalcolmX1

Mitglied
Also ich bastel gerade an einem Datei Upload Script. Mit diesem Script soll ein Produktbild hochgeladen und mit dazugehörigen Informationen sowie der Bildpfad sollen in eine Datenbank geschrieben werden.
Ich hänge noch dabei den Bildupload umzusetzen und bekomme folgende Fehlermeldung:

Warning: move_uploaded_file(): open_basedir restriction in effect. File(/bilder/Kaminöfen/Olsberg/bbcode_spoiler.gif) is not within the allowed path(s): (/var/www/vhosts/OfenRossmeier.de/httpdocs:/tmp) in /var/www/vhosts/OfenRossmeier.de/httpdocs/upload.php on line 36

PHP:
<?php $userfilename = "userfile"; // name das datei-input-felds in der form
    $zielverzeichnis = "/bilder/$_POST[kategorie]/$_POST[hersteller]"; // hierhin wirds gespeichert

if(isset($_FILES[$userfilename])){
    switch($_FILES[$userfilename]['error']){
        case 0: break; // kein fehler
        case 1: die("Datei ist zu groß.");
        case 2: die("Datei ist zu groß.");
        case 3: die("Datei wurde nicht vollständig hochgeladen.");
        case 4: die("Es wurde keine Datei hochgeladen.");
    }

    // ist´s ein bild?
    if(substr($_FILES[$userfilename]['type'], 0, 5) != 'image')
        die("Datei ist kein Bild!");

    // umbennenen, falls datei existiert
    $i = 1;
    $newname = $_FILES[$userfilename]['name'];
    while(is_file("$zielverzeichnis/$newname")){
        $ext = strrchr($_FILES[$userfilename]['name'], '.');
        $newname = substr($_FILES[$userfilename]['name'], 0, -(strlen($ext)+1)) . "_$i.$ext";
        $i++;
    }

    // verschieben
    echo move_uploaded_file($_FILES[$userfilename]['tmp_name'], "$zielverzeichnis/$newname") ? "Datei wurde erfolgreich hochgeladen." : "Speichern der Datei schlug fehl.";
}
?>
<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>">
<table border="0">
    <tbody>
      <tr>
        <td>Bild auswählen:</td>
        <td><input type="hidden" name="MAX_FILE_SIZE" value="400000">
 <input name="userfile" type="file" size=40></td>
      </tr>
      <tr>
        <td>Kategorie:</td>
        <td><select name="kategorie">
      <option>Kaminöfen</option>
      <option>Küchenherde</option>
      <option>Edelsteinschornsteine</option>
      <option>Zubehör</option>
    </select></td>
      </tr>
      <tr>
        <td>Hersteller:</td>
        <td><select name="hersteller">
      <option>Olsberg</option>
      <option>Oranier</option>
      <option>Kleining</option>
      <option>Koppe</option>
      <option>Supra</option>
      <option>Faber</option>
      <option>Wodke</option>
    </select></td>
      </tr>
      <tr>
        <td>Produktbezeichnung:</td>
        <td><input type="text" name="produkt"></td>
      </tr>
    </tbody>
  </table>

<p>Produktbeschreibung:<br>
    <textarea name="beschreibung" cols="50" rows="10">Hier kommt die Produktbeschreibung rein. Mache nur dann einen Zeilenumbruch, wenn du ihn auch später auf der Homepage sehen willst.</textarea><br><br>
<input type="submit" name="Submit" value="Speichern">
</form>

Leider habe ich keine AHnung, wie ich diesen Fehler beheben kann
 
Zuletzt bearbeitet:
PHP:
$zielverzeichnis = $_SERVER['DOCUMENT_ROOT']."/bilder/$_POST[kategorie]/$_POST[hersteller]";

echo move_uploaded_file($_FILES[$userfilename]['tmp_name'], "$zielverzeichnis/$newname") ? "Datei wurde erfolgreich hochgeladen." : "Speichern der Datei schlug fehl.";
 
Also ich hab den Code wie angegeben geändert und nun eine andere Fehlermeldung;)
Warning: move_uploaded_file(/var/www/vhosts/OfenRossmeier.de/httpdocs/bilder/Kaminöfen/Olsberg/bbcode_isbn.gif): failed to open stream: No such file or directory in /var/www/vhosts/OfenRossmeier.de/httpdocs/upload.php on line 36

Warning: move_uploaded_file(): Unable to move '/tmp/php1NiJHB' to '/var/www/vhosts/OfenRossmeier.de/httpdocs/bilder/Kaminöfen/Olsberg/bbcode_isbn.gif' in /var/www/vhosts/OfenRossmeier.de/httpdocs/upload.php on line 36
 
Zurück