Ankündigung

Einklappen
Keine Ankündigung bisher.

$_FILES[ + variables formularfeld

Einklappen

Neue Werbung 2019

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

  • $_FILES[ + variables formularfeld

    Hallo,
    ich möchte über ein Formular Dateien hochladen, jedoch sind die Formularfelder dynamisch aufgebaut, so dass der Name des Feldes im Formular ein Feld aus der DB erhält. Da ich dies ja nicht kenne, wollte ich $_Files so abfangen:

    PHP-Code:
    $_FILES[$type]['name']; 
    Jedoch erhalte ich keine Ausgabe. Habt ihr eine Idee, wie ich das lösen kann. DANKE.

  • #2
    Enthält $type auch das, was Du denkst was es enthalten sollte?
    Ansonsten kann ich bei dem schnipsel nur raten.

    Kommentar


    • #3
      Das sollte helfen: http://de2.php.net/manual/de/function.array-keys.php

      Kommentar


      • #4
        Zitat von RustyXXL Beitrag anzeigen
        Enthält $type auch das, was Du denkst was es enthalten sollte?
        Ansonsten kann ich bei dem schnipsel nur raten.
        Ja, $type enhält den Wert des Feldes aus der DB. Das funktioniert bei normalen Textfeldern auch, jedoch nicht so bei $_FILES.

        Kommentar


        • #5
          Vielleicht kurz zur Erklärung:

          Es sind bestimmte Felder vorgegeben, in die der User Angaben machen soll. Darunter können auch Uploadfelder sein.
          Da ich das alles aber nicht weiss, frage ich die DB nach diesen Feldern ab und gebe diese so im Formular wieder:

          PHP-Code:
          <table class=\"hauptTD\"><tr><td width=30%>$feld($lfdnr):</td><td><input class=textfeldbestellInput type=\"$typ\" name=\"$id\"></td></tr></table> 
          Macht der Kunde die Angaben und sendet diese, frage ich im Folgescript alle Variablen so ab:

          PHP-Code:
          foreach($_POST as $type => $value
          und mache einen update in der DB. Nachdem $type die id der Tabelle ist, funktioniert die Eintragung wunderbar und ich bin flexibel. Er macht auch alle Einträge in der DB, jedoch wird das File nicht hochgeladen.

          Kommentar


          • #6
            jedoch wird das File nicht hochgeladen.
            Wie von Zauberhand geschieht auch nichts.

            http://www.php.net/manual/de/feature...ost-method.php

            Das Design hört sich auch nicht ordentlich durchdacht an.
            [URL]http://hallophp.de[/URL]

            Kommentar


            • #7
              Zitat von Asipak Beitrag anzeigen
              Wie von Zauberhand geschieht auch nichts.

              http://www.php.net/manual/de/feature...ost-method.php

              Das Design hört sich auch nicht ordentlich durchdacht an.
              Ich wollte eigentlich nur wissen ob $_FILES[$typ... überhaupt funktioniert, da mir nichts ausgegeben wird. Normalerweise gibt man ja $_FILES['NAME'... and und keine Variable. Über Google hab ich dazu nichts finden können, deshalb frage ich hier nach. Danke.

              Kommentar


              • #8
                Dann ist die Antwort "ja".

                Und du hast woanders einen Fehler, wo das Problem liegt können wir aufgrund dieser Informationen nur raten.
                [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
                [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

                Kommentar


                • #9
                  Hier weitere Informationen, da ich leider nicht weiterkomme:

                  Formular (type und name sind variablen, die ich aus der tabelle ziehe):
                  Code:
                   
                  <form name="Formular" method="post" action="kddaten_speichern.php" class="textfeldBestell" style="margin-left:20" enctype="multipart/form-data">
                                <table class="hauptTD"><tr><td width=30%>Vorname(1):</td><td><input class=textfeldbestellInput type="text" name="1"></td></tr></table>
                                <table class="hauptTD"><tr><td width=30%>Nachname(1):</td><td><input class=textfeldbestellInput type="text" name="2"></td></tr></table>
                                <table class="hauptTD"><tr><td width=30%>Geburtsdatum(1):</td><td><input class=textfeldbestellInput type="text" name="3"></td></tr></table>
                                <table class="hauptTD"><tr><td width=30%>Bild(1):</td><td><input class=textfeldbestellInput type="file" name="4"></td></tr></table>
                  datei kd_speichern.php:
                  PHP-Code:
                  foreach($_POST as $type => $value
                  {
                   
                  //Dateien speichern
                   
                  $att $_FILES[$type]['name'];
                   if(
                  $att != '')
                   {
                     
                  $pfad 'kddaten/'.$bestellnummer.'/'.$type.'/';
                     echo 
                  $pfad;
                     if (!
                  is_dir($pfad))
                     {
                      
                  mkdir($pfad0777);
                     }
                    
                  move_uploaded_file($_FILES[$type]['tmp_name'], $pfad $_FILES[$type]['name']);
                    
                  $sqlab "UPDATE $table set kdangabe = '$_FILES[$type][name]'";  
                    
                  mysql_db_query($dbase$sqlab);
                   }
                   
                  $sqlab "UPDATE $table set kdangabe = '$value' where id = '$type'";
                   
                  mysql_db_query($dbase$sqlab);

                  Kommentar


                  • #10
                    Code:
                    var_dump($_POST);
                    
                    var_dump($_FILES);
                    Beschäftige dich mal mit HTML. Das Formular sieht ja scheußlich aus.
                    [URL]http://hallophp.de[/URL]

                    Kommentar


                    • #11
                      "UPDATE $table set kdangabe = '$_FILES[$type][name]'";
                      Das schreiben wir aber so gell:

                      "UPDATE $table SET kdangabe = '".$_FILES[$type][name]."';";

                      Beschäftige dich mal mit HTML. Das Formular sieht ja scheußlich aus.
                      Kann ich nur zustimmen...

                      Kommentar


                      • #12
                        Zitat von Asipak Beitrag anzeigen
                        Code:
                        var_dump($_POST);
                         
                        var_dump($_FILES);
                        Beschäftige dich mal mit HTML. Das Formular sieht ja scheußlich aus.
                        Wieso dass denn, wegen den einzelnen Tabellen vielleicht?

                        var_dump($_FILES); ergibt folgendes:
                        Code:
                        array(1) {
                          [4]=>
                          array(5) {
                            ["name"]=>
                            string(11) "logo_eg.jpg"
                            ["type"]=>
                            string(11) "image/pjpeg"
                            ["tmp_name"]=>
                            string(25) "/mnt/shared/tmp/phpSWa4Kb"
                            ["error"]=>
                            int(0)
                            ["size"]=>
                            int(43215)
                          }
                        }

                        Kommentar


                        • #13
                          Zitat von phpsecretary Beitrag anzeigen
                          Das schreiben wir aber so gell:

                          "UPDATE $table SET kdangabe = '".$_FILES[$type][name]."';";
                          Nicht zu vergessen, die Anführungszeichen um 'name', du willst hier ja keine Konstante namens name verwenden. [1]

                          und was ergibt var_dump($type) ?


                          [1] Übrigens auch hier nicht zu vergessen: [man]mysql_real_escape_string[/man]
                          [IMG]https://g.twimg.com/twitter-bird-16x16.png[/IMG][URL="https://twitter.com/fschmengler"]@fschmengler[/URL] - [IMG]https://i.stack.imgur.com/qh235.png[/IMG][URL="https://stackoverflow.com/users/664108/fschmengler"]@fschmengler[/URL] - [IMG]http://i.imgur.com/ZEqflLv.png[/IMG] [URL="https://github.com/schmengler/"]@schmengler[/URL]
                          [URL="http://www.schmengler-se.de/"]PHP Blog[/URL] - [URL="http://www.schmengler-se.de/magento-entwicklung/"]Magento Entwicklung[/URL] - [URL="http://www.css3d.net/"]CSS Ribbon Generator[/URL]

                          Kommentar


                          • #14
                            Was ich dir eigentlich mit meinem Codeschnipsel sagen wollte ist, das diese Kombination
                            Code:
                            foreach($_POST as $type => $value) 
                            {
                             //Dateien speichern
                             $att = $_FILES[$type]['name'];
                            totaler Blödsinn ist. Aber du hast ja nicht mal
                            Code:
                            var_dump($_POST);
                            ausprobiert.
                            und was ergibt var_dump($type) ?
                            1, 2 und 3
                            [URL]http://hallophp.de[/URL]

                            Kommentar


                            • #15
                              Zitat von fab Beitrag anzeigen

                              und was ergibt var_dump($type) ?

                              Beim uploadfeld wird $type nicht übermittelt.

                              Kommentar

                              Lädt...
                              X