1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

PHP Upload

Discussion in 'Web-Know-how für die Homepage' started by Halphas, Apr 16, 2009.

Thread Status:
Not open for further replies.
  1. Halphas

    Halphas Byte

    Tag,

    der Titel wird sicher schon ein paar mal vorkommen in vielen Foren, allerdings seh ich mein Problem etwas schwerer an.

    Ich hab einen Server bei Webhoster.de und versuche nun schon ewig einen PHP-Upload für Bilddatein zu realisieren.

    Ich benutz ein einfaches Uploadscript. Ich habe aber schon ewig viele probiert.

    PHP:
    echo"
        <form action='"
    .$_SERVER['PHP_SELF']."' method='post' name='file' enctype='multipart/form-data'>
            <input type='file' name='datei' size='50'>
            <input type='hidden' name='MAX_FILE_SIZE' value='1024'>
            <input type='submit' value='Absenden'>
        </form> 
    "
    ;
     
    $destination="upload/".$_FILES['name']; 
    move_uploaded_file($_FILES['datei']['tmp_name'],$destination);
    Ich habe es mit copy(); und move_uploaded_file(); versucht.

    copy() gibt z.B. folgende Fehlermeldung:

    Warning: copy() [function.copy]: open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/html/web168:/tmp) in /var/www/html/web168/html/NeuesRadio/Test/upload.php on line 17

    Ich benutze error_reporting(E_ALL) was mir nach dem Upload mit dem aktuellen Script sagt:


    Notice: Undefined index: name in /var/www/html/web168/html/NeuesRadio/Test/upload.php on line 14

    Notice: Undefined index: datei in /var/www/html/web168/html/NeuesRadio/Test/upload.php on line 15



    Das Uploadverzeichnis bleibt leer. Wenn ich versuch die Daten auszulesen mit
    PHP:
    print_r($_FILES['Datei']['name']);
    bekomme ich Array( )

    In der php-ini sind soweit ich weis alle Werte korrekt.

    file_uploads On
    open_basedir /var/www/html/web168:/tmp
    upload_tmp_dir /var/www/html/web168/phptmp/
    upload_max_filesize 8M

    safe mode is off kann ich aber jederzeit einschalten wenns sein müsste.

    CHMOD kann ich auf maximal 755 stellen, das sollte aber weniger das Problem sein. Ich kann damit auch Dateien erstellen für Dateioperationen mit fopen();

    Außerdem wollen die Hoster das net ändern. Die einzigste Hilfe die es gab war in etwa "Tja, eigentlich muss es gehn."


    Nun, ich hab schon einige Foren danach gesucht. Keiner meiner Kollegen hatte da einen Einfall und die Hoster wissen glaub net was PHP ist.

    Falls noch Informationen fehlen such ich die gern raus.

    Villeicht ist sogar jemand bei Webhoster angemeldet und weis wie man das dort regelt. Wenns nix hilft versuch ich es auf nem anderen Server.

    Wäre echt froh um ne Lösung.
     
  2. VB-Coder

    VB-Coder Megabyte

    Kann man mal die entsprechenden Zeilen der upload.php sehen, die den Fehler auslösen ? Am besten die komplette Upload Funktion.
     
  3. Halphas

    Halphas Byte

    Natürlich hier:

    PHP:
    <?php

        error_reporting
    (E_ALL);
        echo
    "
            <form action='"
    .$_SERVER['PHP_SELF']."' method='post' enctype='multipart/form-data'>
                <input type='file' name='datei' size='50'>
                <input type='hidden' name='MAX_FILE_SIZE' value='1024'>
                <input type='submit' name='Absenden' value='Absenden'>
            </form> 
        "
    ;
         
        if(isset(
    $_POST['Absenden']))
        {
            echo
    "<div>Datei gesendet</div>";
            
    print_r($_FILES);  
            
    $destination="upload/".$_FILES['name']; 
            
    move_uploaded_file($_FILES['datei']['tmp_name'],$destination);
        }

    ?>
    Ausgabe nach dem Upload:

    Datei gesendet
    Array ( )
    Notice: Undefined index: name in /var/www/html/web168/html/NeuesRadio/Test/upload.php on line 18

    Notice: Undefined index: datei in /var/www/html/web168/html/NeuesRadio/Test/upload.php on line 19
     
  4. kalweit

    kalweit Hüter der Glaskugel

    Handelt es sich um die zentrale php.ini des Servers oder nur um eine lokale im Userverzeichnis? Wenn letzteres, lösche die Einträge zum temporären Speicherort und lasse den von php selbst verwalten. Zweite Fehlerquelle: wurden die temporären Ordner angelegt und hat php dort Schreibrechte? Üblicherweise ist das nicht der Fall, wenn man den Ordner z.B. per FTP angelegt hat, da php unter einem anderen Benutzer als der FTP-Account läuft.
     
  5. Halphas

    Halphas Byte

    Ich hab Parallels Confixx und kann einzelne änderungen für die INI ausführen allerdings kann ich nicht den temporären Speicherort neu bestimmen.

    ich kann aber die Rechte von upload_tmp_dir /var/www/html/web168/phptmp/
    auf 755 stellen, aber selbst dann hab ich keine andern Ergebnisse.
     
  6. kalweit

    kalweit Hüter der Glaskugel

    Ahja... - der PHP-Upload muss im Reseller-Dialog für den entsprechenden Kunden freigeschaltet werden. Aus dem Kundenmenü heraus kannst du das nicht überschreiben. Auch nicht über eine lokale php.ini
     
  7. Halphas

    Halphas Byte

    PHP-Upload werden als aktiv angezeigt

    Aktive Leistungen FTP, PHP, PHP-Upload, Perl, SSI, Wap, AWstats

    und PHP-Upload steht auf ON in der INI
     
Thread Status:
Not open for further replies.

Share This Page