Benjamin: Formulardaten übergeben

Hallo,

ich möchte Folgendes realisieren:

1. Der Benutzer soll über ein Formular eine Datei hochladen können
2. Nach dem Hochladen und Auswertung der Datei (durch das Skript) soll ein angepasstes (neues) Formular angezeigt werden, in dem weitere Angaben (über Checkboxen, Selects usw.) zur Weiterverarbeitung der Datei vom Nutzer erfragt werden
3. das Ergebnis der Weiterverarbeitung soll nach einem weiteren "Submit" präsentiert werden

Große Teile der Logik sind schon fertig. Allerdings weiß ich beispielsweise nicht, wie ich nach einmaligen "Submit" die Daten (Variablen) z.B. in $_FILES['file']['name'] "rette", um sie für ein weiteres Submit zu nutzen.
Kann mir jemand helfen? Ich habe gelesen, daß es mit Session funktionieren soll, habe hier aber keinen konkreten Ansatz.

Vorab vielen Dank und viele Grüße
Benjamin

  1. Wenn ich dich richtig verstehe willst du Formulardaten aus der ersten Seite bei der Verarbeitung der Formulardaten aus der zweiten Seite dabei haben.
    Eine simple Möglichkeit wäre beim Erstellen der zweiten Seite einfach die Daten aus der ersten in versteckte Formularfelder <input type="hidden" value="wert aus erstem Formular"> zu schreiben.

    1. Moin!

      Eine simple Möglichkeit wäre beim Erstellen der zweiten Seite einfach die Daten aus der ersten in versteckte Formularfelder <input type="hidden" value="wert aus erstem Formular"> zu schreiben.

      Das funktioniert nur beim Dateiupload per Formular nicht. Zum einen ist das file-Feld nicht vorbelegbar, zum zweiten wäre es, selbst wenn es ginge, reichlich blöd, die Datei zweimal hochzuladen, und zum dritten muß das Skript, welches die Datei entgegennimmt, diese umkopieren, damit die temporäre Datei nicht am Skriptende wieder gelöscht wird.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. Das funktioniert nur beim Dateiupload per Formular nicht.

        richtig, ist aber völlig irrelevant, da

        »»»» 2. Nach dem Hochladen und Auswertung der Datei (durch das Skript) soll ein angepasstes (neues) Formular angezeigt werden

        mit anderen Worten: allenfalls der Dateiname und was das Skript sonst so auswertet wird übergeben, der Upload ist schon abgeschlossen.

      2. Hallo,

        wenn das Formular mit dem upload per action="script2.php" und method="post"
        an das Script übergeben wird, stehen dann nicht die Inhalte im $_POST-Array
        zur Verfügung und können jederzeit via $_REQUEST abgefragt und verarbeitet werden?

        Grüße, dicon

      3. Hello,

        [...] und zum dritten muß das Skript, welches die Datei entgegennimmt, diese umkopieren, damit die temporäre Datei nicht am Skriptende wieder gelöscht wird.

        Das ist überhaupt nicht trivial.

        Das Umkopieren alleine reicht nicht, wenn man keine Vermüllung der Festplatte riskieren will.
        Da die endgültige "Verarbeitung" erst nach dem dritten Form stattfinden soll, muss eine Methode gefunden werden, mit der die sekundar-temporäre Datei kontrolliert werden kann.

        Sollte der User den Vorgang mittendrin abbrechen, muss gewährleistet sein, dass die Datei irgendwann wieder verschwindet, am besten sofort nach dem Abbruch...

        Harzliche Grüße vom Berg
        http://bergpost.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. he

    Ich habe gelesen, daß es mit Session funktionieren soll, habe hier aber keinen konkreten Ansatz.

    Inwiefern keinen konkreten Ansatz? Die Verwendung von SESSIONS ist grundsätzlich sehr einfach und überaus praktisch.

      
    <?php  
    session_start();  
      
    $_SESSION['filename'] = $_FILES['file']['name'];  
    
    

    Eine sehr ausführliche Beschreibung findet sich unter php.net.

    gruß bascombe

    1. Hello,

      <?php
      session_start();

      $_SESSION['filename'] = $_FILES['file']['name'];

        
      Und was soll das bewirken?  
        
      Würdest Du dann auch  
      $\_SESSION['tmpname'] = $\_FILES['file']['tmpname'];  
        
      schreiben, oder wie müsste diese Zeile sinnvollerweise ergänzt werden?  
      Da liegt doch wohl der Knackepunkt...  
        
      Die Sicherung transienter Daten im verbindungslosen System ist überhaupt nicht trivial.  
      Die Sessiondatei ist i.d.R. in der Größe beschränkt, nicht sie selbst, aber ihre Einbindung in das Script...  
        
        
        
        
        
        
      Harzliche Grüße vom Berg  
      <http://bergpost.annerschbarrich.de>  
        
      Tom
      
      -- 
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen  
      Nur selber lernen macht schlau  
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)  
        
      ![](http://bitworks.de/~selfHTML/Virencheck.gif)