Probleme mit Bildern

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #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.

      Comment


      • #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.

        Comment


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

          Comment


          • #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.

            Comment


            • #7
              Array ( )


              wird ausgegeben.

              Comment


              • #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]

                Comment


                • #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]

                  Comment


                  • #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

                    Comment


                    • #11
                      Originally posted by Kropff View Post
                      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]

                      Comment


                      • #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.

                        Comment


                        • #13
                          Übrigens...
                          Originally posted by Miranda View Post
                          [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]

                          Comment


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

                            Comment


                            • #15
                              Originally posted by Miranda View Post
                              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]

                              Comment

                              Working...
                              X