Probleme mit Bildern

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit Bildern

    und schon ist das nächste Problem aufgetaucht:

    unter PHP4 hatte ich damit keine Probleme. Unter PHP5 funktioniert es nicht mehr. Warum auch immer

    seite1.php im Formularteil welches auf seite2.php leitet:

    HTML-Code:
    <input type="hidden" name="MAX_FILES_SIZE" value="600000">
          <input name="datei" type="file" id="datei" size="15" maxlength="600000">
    seite1.php außerhalb des Formulars:

    PHP-Code:
    // Dateiinformationen (Ausgabe über Schleife)
    if (isset($_FILES['datei']))
    {
     foreach (
    $_FILES['datei'] as $key=>$element)
     {
      echo 
    '[$key] => $element<br>';
     }

    seite2.php über dem head:

    PHP-Code:
    $datei $_POST['datei'];
    $MAX_FILES_SIZE $_POST['MAX_FILES_SIZE']; 
    seite2.php als Abfrage und speichern:

    PHP-Code:
       if ($datei == '')
       {
        
    $c 'kein Bild';
       }
       else
       {
       echo 
    '<br /><br />Bild 2: '.$datei// als Testausgabe: wird ausgegeben
       
        
    $regExp '/^[A-Za-z0-9_-]([A-Za-z0-9_-]*\.?[A-Za-z0-9_-])*\.[jpg]{3}$/';
        if (
    $_FILES['datei']['size'] > 0)
        {
       echo 
    '<br /><br />Bild 3: '.$datei// als Testausgabe: wird nicht ausgegeben

         
    if ($_FILES['datei']['size'] < 600000)
         {
       echo 
    '<br /><br />Bild 4: '.$datei// als Testausgabe: wird nicht ausgegeben

          
    if (preg_match($regExp,$_FILES['datei']['name']))
          {
           
    $c 'okay';
       echo 
    '<br /><br />Bild 5: '.$datei// als Testausgabe: wird nicht ausgegeben
          
    }
          else
          {
           
    $c 'fehler';
           echo 
    'Test: Fehler: '.$datei// als Testausgabe: wird nicht ausgegeben
          
    }
         }
        }
       }
     
       if (
    $c == 'okay')
       {
           
    $fotopath '../../../images/newsletter/';
        
    $newname $datum.'.jpg';
     
        if (isset(
    $_FILES['datei']))
        {
    //     Upload-Status
         
    if ($_FILES['datei']['error'] == UPLOAD_ERR_OK)
         {
          
    $uploaddir $fotopath;
    //      Temporäre Datei in Zielverzeichnis schreiben
          
    move_uploaded_file($_FILES['datei']['tmp_name'],$uploaddir.$_FILES['datei']['name']);
          
          
    // umbenennen der hochgeladenen Datei   
          
    rename($uploaddir.$_FILES['datei']['name'],$uploaddir.$newname);
         }
        } 
    seite2.php als Ausgabe:

    PHP-Code:
        if ($c == 'okay')
        {
         echo 
    '<img src="'.$foto.'" align="left" /> '.$text;
        } 
    wie in den Kommentaren zu seite2.php ersichtlich, komme ich schon in die 2. IF-Abfrage gar nicht rein.

    Ich verstehe es nicht. Das gleiche Script läuft unter PHP4 problemlos.

    Weiss hier jemand einen Rat?

  • #2
    Und was haben deine Kontrollausgaben der ans Script übermittelten Werte ergeben?

    E_ALL darf wohl als selbstverständlich vorausgesetzt werden.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      PHP-Code:
      echo '<br /><br />Bild 2: '.$datei// als Testausgabe: wird ausgegeben 
      gibt mir

      [COLOR=blue]Bild 2: D:\bilder\alessandro.jpg[/COLOR]

      aus.

      Kommentar


      • #4
        Schön für dich - aber dass dabei das gewünschte herauskommt, das war deiner ursprünglichen Beschreibung ja schon zu entnehmen.

        Das "volle" Programm, also Inhalt von $_FILES und ggf. noch $_POST, per print_r ausgegeben, wäre interessant.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          *schäm* ich weiss nicht wie es geht

          Kommentar


          • #6


            print_r($_FILES);

            An den Anfang setzen, ggf. noch ein <pre> drumherum, damit es in der Anzeige übersichtlicher ist.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Array ( )


              wird ausgegeben.

              Kommentar


              • #8
                Hast du im Formular auch [FONT="Courier New"]method="post" enctype="multipart/form-data"[/FONT] gesetzt?
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  hatte [FONT=Courier New]enctype="multipart/form-data"[/FONT] vergessen. Danke.


                  jetzt kommt als Ausgabe:

                  Array ( [datei] => Array ( [name] => alessandro_mongardin.jpg [type] => image/pjpeg [tmp_name] => /mnt/shared/tmp/phprLays0 [error] => 0 [size] => 26289 ) )

                  und meine Variable [COLOR=#0000cc][FONT=Courier New]$datei gibt keinen Wert mehr aus.[/FONT][/COLOR]

                  Kommentar


                  • #10
                    Wird wohl hier dran liegen:
                    PHP-Code:
                    $datei $_POST['datei']; 
                    Peter
                    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                    Meine Seite

                    Kommentar


                    • #11
                      Zitat von Kropff Beitrag anzeigen
                      Wird wohl hier dran liegen:
                      PHP-Code:
                      $datei $_POST['datei']; 
                      Peter
                      was Peter vermutlich damit sagen will, wenn das Formular als multipart/form-data gesendet wird, sind Upload-Felder nicht mehr im $_POST-Array, sondern nur noch im $_FILES-Array. Ohne multipart/form-data (bzw. mit application/x-www-form-urlencoded) ist es umgekehrt, nur sieht man dann in $_POST nur den Dateinamen, sonst aber nichts (keinen Dateiinhalt).
                      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                      Super, danke!
                      [/COLOR]

                      Kommentar


                      • #12


                        habe jetzt statt
                        PHP-Code:
                        $datei $_POST['datei']; 
                        PHP-Code:
                        $datei $_FILES['datei']; 
                        eingesetzt.

                        Jetzt bekomme ich [COLOR=blue]Bild 2: Array[/COLOR] als Ausgabe, aber er bricht die IF-Abfrage bei der Größe noch immer ab.

                        Ich kapiere es wirklich nicht. Sorry und danke für eure Geduld mit mir.

                        Kommentar


                        • #13
                          Übrigens...
                          Zitat von Miranda Beitrag anzeigen
                          [HTML]<input type="hidden" name="MAX_FILE[COLOR="Red"]S[/COLOR]_SIZE" value="600000">
                          Das heißt MAX_FILE_SIZE (ohne S).
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Kommentar


                          • #14
                            dankeschön
                            habe das [COLOR=blue]S[/COLOR] entfernt, aber mein Problem besteht leider immer noch

                            Kommentar


                            • #15
                              Zitat von Miranda Beitrag anzeigen
                              aber mein Problem besteht leider immer noch
                              Ja ich weiß, das hatte grad nichts mit deinem aktuellen Problem zu tun, wäre aber bestimmt später noch dazugekommen.

                              Hast du dir nochmal das $_FILES-Array angesehen, ob da immer noch alles in Ordnung ist mit size?
                              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                              Super, danke!
                              [/COLOR]

                              Kommentar

                              Lädt...
                              X