heinetz: $_FILES bleibt leer

Hallo Forum,

ich habe ein PHP-Skript geschrieben, dass abgesendete Formulardaten
mit php:mail() verschickt. Das funktioniert. Dann habe ich das Formular
um drei Upload-Felder (type="file") ergänzt. Auch das funktioniert ...
auf meiner Entwicklungsumgebung(xampp), auf dem Liveserver leider noch nicht.

Folgend der (gekürzte) Code:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

html
----

<form enctype="multipart/form-data" method="post">  
...  
<input class="file" type="file" name="1st_Attachement" />  
</form>

php
---

if ($_POST) post2mail();  
  
function post2mail ()  
                  {  
                   global $_POST;  
                   global $_FILES;  
                   echo count($_FILES);  
                   ...  
                  }

Ausgabe
-------
0

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Das Array $_FILES ist leider leer. Woran kann es liegen, dass auf
meiner Entwicklungsumgebung alle funktioniert, aber auf dem Live-
Server nicht ?

danke für Tipps und

beste gruesse,
heinetz

  1. Hallo

    if ($_POST) post2mail();

    function post2mail ()
                      {
                       global $_POST;

    // $_POST und $_FILES sind superglobal. Noch globaler geht nicht.

    global $_FILES;
                       echo count($_FILES);
                       ...
                      }

      
    
    > Das Array $\_FILES ist leider leer. Woran kann es liegen, dass auf  
    > meiner Entwicklungsumgebung alle funktioniert, aber auf dem Live-  
    > Server nicht ?  
      
    an der [fehlenden Fehlerüberprüfung](http://www.php.net/manual/de/features.file-upload.errors.php).  
      
      
    Freundliche Grüße  
      
    Vinzenz
    
    1. Hi,

      an der fehlenden Fehlerüberprüfung.

      Besten Dank für den Tipp, den Zusammenhang verstehe ich
      allerdings nicht. Wenn das Array $_FILES leer ist, kann
      doch in $_FILES['1st_Attachement']['error'] auch nichts
      stehen. Ich hab's dennoch ausprobiert. Allerdings, wie
      erwartet ohne Ausgabe.

      beste gruesse,
      heinetz

      1. Hi heinetz,

        Besten Dank für den Tipp, den Zusammenhang verstehe ich
        allerdings nicht. Wenn das Array $_FILES leer ist, kann
        doch in $_FILES['1st_Attachement']['error'] auch nichts
        stehen. Ich hab's dennoch ausprobiert. Allerdings, wie
        erwartet ohne Ausgabe.

        Das ist richtig.

        Hast du die INI-Einstellungen für Datei-Uploads geprüft?
        upload_max_filesize wird übrigens von post_max_size beschränkt.

        Viele Grüße,
          ~ Dennis.

        1. Hi,

          danke für den Tipp. Ich habe folgende Zeilen in der phpinfo gefunden,
          die mir relevant erschienen:

          Directive  Local Value   Master Value
          --------------------------------------------------------------------
          file_uploads  On    On
          post_max_size  8M    8M
          upload_max_filesize 10000000   2M
          upload_tmp_dir  /home/kunden/argoavia/tmp no value

          Hier gibt es aber nochmal die komplette phpinfo als pdf.

          Was mir an der phpinfo nicht gaz klar ist, ist was 'Local' und was 'Master
          Value' zu bedeuten hat. Daher könnte die 4. Zeile (no value) kritisch sein.

          Ausprobiert habe ich noch folgendes:

          echo is_dir("/home/kunden/argoavia/tmp");
          -> 1 (das Verzeichnis ist existent)

          echo fopen("/home/kunden/argoavia/tmp", "w");
          -> 1 (mein php-script hat schreibrechte)

          Das gif, das ich zum test hochladen will,
          hat übrigens eine Grösse von 102 Byte.

          beste gruesse,
          heinetz

          1. Hi,

            jetzt hab ich's endlich gefunden ! Es hängt irgendwie mit einer
            Domainweiterleitung zusammen. Ich habe das nun mit der Hauptdomain (?)
            probiert:

            Meine Domain 'http://www.example.co.uk' zeigt auf das Verzeichnis
            '/public_html/uk'. Wärend 'http://www.example.de' auf '/public_html'
            zeigt. Von der Domain aus geht es (abgesehen, dass verschiedene
            Pfade zu Bildern und CSS-Files nicht mehr passen) dann auch.

            Nur was muss ich ändern, um den Upload unter 'http://www.example.co.uk'
            zu realisieren. Bzw. geht das überhaupt, ohne die php.ini anfassen zu
            können ?

            danke und

            beste gruesse,
            heinetz