Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Image Upload

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Image Upload

    hallo leute,

    ich hab ein kleines problem mit einem upload-script.

    hier ist ein kleiner ausschnitt vom script:

    PHP-Code:
    elseif(isset($_POST["submit"]) && $_POST["submit"] == "Weiter" && $_POST['img']=='2' && $_POST["anzahl"] <= "10") {
        echo 
    '<strong>Bitte die Bilder ausw&auml;hlen, die hochgeladen werden sollen?</strong><p>';
        echo 
    '<form action="" method="post">';
        
    $anzahl $_POST['anzahl'];
        for (
    $i=1$i<=$anzahl$i++) {
            echo 
    $i.'.Bild:<br>';
            echo 
    '<input name="bild" type="file" value="'.$i.'" size="60"><p>';
        }
        echo 
    '<center><input name="submit" type="image" value="Weiter" src="img/next_button.gif" alt="Weiter" id="submit"></center>
        <input name="img" type="hidden" value="3">'
    ;
        echo 
    '</form>';
    }
    elseif(isset(
    $_POST["submit"]) && $_POST["submit"] == "Weiter" && $_POST['img']=='3') {
        
    $upload_path '/pfad/uimg/'//Upload-Ordner der Bilder
        
    $filename $_FILES['bild']['name']; //Name des Bildes
        
    $filetmpname $_FILES['bild']['tmp_name']; //Temp-Name des Bildes
        
    if(move_uploaded_file($filetmpname,$upload_path $filename));

    es gibt dann noch einen schritt davor bei dem man die anzahl der bilder festlegt. nachdem man die anzahl gewählt hat, kommt man zum nächsten schritt, bei welchem dann die <input type="file"> kommen. alles soweit ganz gut...wäre da nich der nächste schritt. er ladet mir die bilder nicht hoch und ich weiß nich warum

    hoffe auf eure hilfe

    gruß


  • #2
    da fehlt wo das hinn soll.. action="upload.php"
    PHP-Code:
    <form action="" method="post"

    Kommentar


    • #3
      Zitat von peto1 Beitrag anzeigen
      da fehlt wo das hinn soll.. action="upload.php"
      PHP-Code:
      <form action="" method="post"
      ja das weiß ich schon selber und es funktioniert auch ohne dieser angabe
      außerdem liegt das ganze nicht an dem

      Kommentar


      • #4
        Lass dir vor dieser Zeile

        $filename = $_FILES['bild']['name']; //Name des Bildes

        mal den Inhalt von $_FILES ausgeben.
        PHP-Code:
        if ($var != 0) {
          
        $var 0;

        Kommentar


        • #5
          Zitat von Wolla Beitrag anzeigen
          Lass dir vor dieser Zeile

          $filename = $_FILES['bild']['name']; //Name des Bildes

          mal den Inhalt von $_FILES ausgeben.
          also ich habs probiert mit einem
          PHP-Code:
          echo '<pre>'var_dump($_FILES); echo "</pre>\n"
          aber dann kommt ein leeres array:
          Code:
          array(0) {
          }
          ich weiß überhaupt nich mehr weiter

          Kommentar


          • #6
            Du hast vergessen, das notwendige enctype-Attribut im FORM-Element anzugeben.

            PHP: POST method uploads - Manual

            Kommentar


            • #7
              Zitat von ChrisB Beitrag anzeigen
              Du hast vergessen, das notwendige enctype-Attribut im FORM-Element anzugeben.

              PHP: POST method uploads - Manual
              also jz kommt einmal im array eine ausgabe:
              Code:
              array(1) {
                ["bild"]=>
                array(5) {
                  ["name"]=>
                  string(9) "ics_2.gif"
                  ["type"]=>
                  string(9) "image/gif"
                  ["tmp_name"]=>
                  string(31) "/pfad/temp/phpAnn1TE"
                  ["error"]=>
                  int(0)
                  ["size"]=>
                  int(2578)
                }
              }
              aber es wird kein bild hochgeladen obwohl ich auch die funktion eingebaut habe:
              PHP-Code:
              if(move_uploaded_file($filetmpname,$upload_path $filename)); 

              Kommentar


              • #8
                Zitat von x-muchacho Beitrag anzeigen
                PHP-Code:
                [...]
                        echo 
                '<input name="bild" type="file" value="'.$i.'" size="60">'
                [...] 
                Das value-Attribut hat beim Input-Typ file keine Bedeutung.
                Da alle input Elemente den selben namen haben ("bild") wird immer das als letzte übertragene ins $_FILE Array geschrieben, die anderen verworfen.
                Eine Lösung könnte so aussehen.
                PHP-Code:
                [...]
                        echo 
                '<input name="bild'.$i.'" type="file" size="60">'
                [...] 
                Somit landen alle Dateien im $_FILE Array.
                Beispiel:
                Code:
                array(1) {
                  ["bild1"]=>
                  array(5) {
                    ["name"]=>
                    string(9) "ics_2.gif"
                    ["type"]=>
                    string(9) "image/gif"
                    ["tmp_name"]=>
                    string(31) "/pfad/temp/phpAnn1TE"
                    ["error"]=>
                    int(0)
                    ["size"]=>
                    int(2578)
                  }
                ["bild2"]=>
                  array(5) {
                    ["name"]=>
                    string(9) "ics_2.gif"
                    ["type"]=>
                    string(9) "image/gif"
                    ["tmp_name"]=>
                    string(31) "/pfad/temp/phpAnn1TE"
                    ["error"]=>
                    int(0)
                    ["size"]=>
                    int(2578)
                  }
                [...]
                }
                Eine Auswertung könnte dann mittels einer For-Schleife geschehen.


                Ich hoffe mal das ich mich net vertan habe.

                Kommentar


                • #9
                  PHP-Code:
                  if(move_uploaded_file($filetmpname,$upload_path $filename)); 
                  Warum wurstelst du das in eine if-Abfrage ein, ohne die dann auszuwerten ?

                  Sind die Schreibberechtigungen korrekt gesetzt ?

                  Edit:
                  Warum nicht gleich so:
                  PHP-Code:
                  echo '<input name="bild[]" type="file" size="60">' 
                  Signatur:
                  PHP-Code:
                  $s '0048656c6c6f20576f726c64';
                  while(
                  $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

                  Kommentar


                  • #10
                    also ich hab das ganze jetzt so gelöst:

                    PHP-Code:
                    elseif(isset($_POST["submit"]) && $_POST["submit"] == "Weiter" && $_POST['img']=='2' && $_POST["anzahl"] <= "10") {
                        echo 
                    '<strong>Bitte die Bilder ausw&auml;hlen, die hochgeladen werden sollen?</strong><p>';
                        echo 
                    '<form action="" method="post" enctype="multipart/form-data">';
                        
                    $anzahl $_POST['anzahl'];
                        for (
                    $i=1$i<=$anzahl$i++) {
                            echo 
                    $i.'.Bild:<br>';
                            echo 
                    '<input name="bild'.$i.'" type="file" value="'.$i.'" size="60"><p>';
                        }
                        echo 
                    '<center><input name="submit" type="image" value="Weiter" src="img/next_button.gif" alt="Weiter" id="submit"></center>
                            <input name="img" type="hidden" value="3">
                            <input name="anzahl" type="hidden" value="'
                    .$_POST['anzahl'].'">';
                        echo 
                    '</form>';
                    }
                    elseif(isset(
                    $_POST["submit"]) && $_POST["submit"] == "Weiter" && $_POST['img']=='3') {
                        
                    $upload_path '/pfad/uimg/';
                        
                    $anzahl $_POST['anzahl'];
                        for (
                    $i=1$i<=$anzahl$i++) {
                            
                    move_uploaded_file($_FILES['bild'.$i.'']['tmp_name'],$upload_path $_FILES['bild'.$i.'']['name']);
                        }

                    nun möchte ich das ganze noch in eine db einschreiben nur funktioniert das auch wieder nich.
                    das script sieht im moment so aus:
                    PHP-Code:
                    elseif(isset($_POST["submit"]) && $_POST["submit"] == "Weiter" && $_POST['img']=='2' && $_POST["anzahl"] <= "10") {
                        echo 
                    '<strong>Bitte die Bilder ausw&auml;hlen, die hochgeladen werden sollen?</strong><p>';
                        echo 
                    '<form action="" method="post" enctype="multipart/form-data">';
                        
                    $anzahl $_POST['anzahl'];
                        for (
                    $i=1$i<=$anzahl$i++) {
                            echo 
                    $i.'.Bild:<br>';
                            echo 
                    '<input name="bild'.$i.'" type="file" value="'.$i.'" size="60"><p>';
                        }
                        echo 
                    '<center><input name="submit" type="image" value="Weiter" src="img/next_button.gif" alt="Weiter" id="submit"></center>
                            <input name="img" type="hidden" value="3">
                            <input name="imgid" type="hidden" value="'
                    .$_POST['imgid'].'">
                            <input name="anzahl" type="hidden" value="'
                    .$_POST['anzahl'].'">';
                        echo 
                    '</form>';
                    }
                    elseif(isset(
                    $_POST["submit"]) && $_POST["submit"] == "Weiter" && $_POST['img']=='3') {
                        
                    $upload_path '/pfad/uimg/';
                        
                    $anzahl $_POST['anzahl'];
                        for (
                    $i=1$i<=$anzahl$i++) {
                            
                    move_uploaded_file($_FILES['bild'.$i.'']['tmp_name'],$upload_path $_FILES['bild'.$i.'']['name']);
                            
                    mysql_query("UPDATE newobj SET bild'".$i."'='".$upload_path.$_FILES['bild'.$i.'']['name']."' WHERE id='".$_POST['imgid']."'");
                        }

                    er ladet zwar die bilder hoch aber er schreibt nichts in die datenbank

                    ich bitte nochmal um eure hilfe

                    Kommentar


                    • #11
                      Es wird höchste Zeit für dich, sich mit dem Debugging zu beschäftigen... und benutz endlich mal FEHLERAUSWERTUNG! Du programmierst alles schön runter und fragst nie mal ab "hat das jetzt auch geklappt?"
                      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                      Kommentar


                      • #12
                        Zitat von lstegelitz Beitrag anzeigen
                        Du programmierst alles schön runter und fragst nie mal ab "hat das jetzt auch geklappt?"
                        also nur weil in dem code-teil den ich hier reingestellt habe das nich vorkommt, brauchst du nich annehmen das ich das nich mache

                        das problem liegt hier:
                        PHP-Code:
                        for ($i=1$i<=$anzahl$i++) {
                                
                        mysql_query("UPDATE newobj SET bild'".$i."'='".$upload_path.$_FILES['bild'.$i.'']['name']."' WHERE id='".$_POST['imgid']."'");
                            } 
                        der andere teil des codes funktioniert einwandfrei, nur bekomme ich das mit dem eintragen in die datenbank nicht hin

                        Kommentar


                        • #13
                          hab das problem nun selber gelöst

                          danke an die, die mir weitergeholfen haben =)

                          Kommentar


                          • #14
                            Zitat von x-muchacho Beitrag anzeigen
                            also nur weil in dem code-teil den ich hier reingestellt habe das nich vorkommt, brauchst du nich annehmen das ich das nich mache
                            Woher soll ich wissen, was du in deinem Kämmerlein programmierst?

                            Und ganz ernsthaft - hättest du eine ordentliche Fehlerbehandlung in deinen Scripten, wären alle deine Fragen bereits von vorne herein beantwortet worden... kleines Beispiel:

                            das problem liegt hier:
                            PHP-Code:
                            for ($i=1$i<=$anzahl$i++) {
                                    
                            mysql_query("UPDATE newobj SET bild'".$i."'='".$upload_path.$_FILES['bild'.$i.'']['name']."' WHERE id='".$_POST['imgid']."'");
                                } 
                            der andere teil des codes funktioniert einwandfrei, nur bekomme ich das mit dem eintragen in die datenbank nicht hin
                            Ich seh mit bloßem Auge, das die SQL Anweisung fehlerhaft ist - das hätte dir mysql_error() ebenfalls gesagt, hättest du es nur benutzt.

                            Konstruktive Kritik soll als Hilfe dienen, nicht um dich fertig zu machen oder sowas.
                            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                            Kommentar

                            Lädt...
                            X