Einzelnen Beitrag anzeigen

Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#1

[PHP+HTML] Mehrseitige Formulare mit Session

  Alt 31. Mär 2004, 16:09
Hi,
ich habe ein mehrseitiges HTML-Formular mit verschiedenen Input-Feldern. Die Werte der Input-Felder werden in Sessions gespeichert. Das funktioniert auch wunderbar.
Doch jetzt will ich, dass der User nicht nur das Formular abschicken kann, sondern auch zum vorherigen zurückkehrern kann, natürlich müssen die letzten Eingaben wieder ins Input-Feld aus der Session zurückgeschrieben werden.
Auch das funktioniert auch recht gut. Ich schreibe einfach die entsprechende Session-Variabel ins VALUE rein.
Doch wenn ich dann das Formular noch einmal abschicke, kommt nicht der richtige Wert an, sondern immer nur der Value-Wert, der zuvor angegeben wurde.
Ich verstehe das irgendwie überhaupt nicht, da es bisher an anderen Stellen immer geklappt hat (zwar nicht mit Session, aber ich denke hier handelt es sich um ein HTML-Problem).

Könnt ihr mir das erklären und vielleicht auch Lösungsansätze geben?
Quellcodes:
HTML-Template (verkürzt):
Code:
<html>
 <head>
  <link rel=stylesheet type="text/css" href="style.css">
  <title>Webbaukasten</title>
 </head>
 <body>
  <h1>Webbaukasten</h1>
  <h2>Kontaktdaten des Auftraggebers:</h2>
  <form method="post" name="kontaktdaten" action="serverauswahl.php">
  <center><table style="border-style: dotted; border-width: 1px; border-color: darkgray;" cellpadding="1" cellspacing="1">
    <tr>
     <td class="zeile1" width="150">Branche:</td>
     <td class="zeile2" width="150"><input type="text" name="auftraggeber_branche" value="<%auftraggeber_branche%>"></td>
    </tr>
    <tr>
     <td class="zeile1" width="150">Vorname:</td>
     <td class="zeile2" width="150"><input type="text" name="auftraggeber_vname" value="<%auftraggeber_vname%>"></td>
    </tr>
    <tr>
     <td class="zeile1" width="150">Nachname:</td>
     <td class="zeile2" width="150"><input type="text" name="auftraggeber_name" value="<%auftraggeber_name%>"></td>
    </tr>
    <tr>
     <td class="zeile1" width="150">Telefon:</td>
     <td class="zeile2" width="150"><input type="text" name="auftraggeber_telefon" value="<%auftraggeber_telefon%>"></td>
    </tr>
    <tr>
     <td class="zeile1" width="150">Durchwahl:</td>
     <td class="zeile2" width="150"><input type="text" name="auftraggeber_durchwahl" value="<%auftraggeber_durchwahl%>"></td>
    </tr>
    <tr>
     <td class="zeile1" width="150">Telefax:</td>
     <td class="zeile2" width="150"><input type="text" name="auftraggeber_telefax" value="<%auftraggeber_telefax%>"></td>
    </tr>
    <tr>
     <td class="zeile1" width="150">E-Mail:</td>
     <td class="zeile2" width="150"><input type="text" name="auftraggeber_mail" value="<%auftraggeber_mail%>"></td>
    </tr>
  </table>
  </center>
  <div align="right"><input type="submit" value="weiter"></div>
  </form>
 </body>
</html>
Zu gehörige PHP-Seite:
Code:
<?php
  include("klassen.php");
  include("templateparser.php");
  @session_start();
  // Daten in aktuelle Seite einfügen...
  $static['auftraggeber_branche'] = $HTTP_SESSION_VARS['auftraggeber_branche'];
  $static['auftraggeber_vname'] = $HTTP_SESSION_VARS['auftraggeber_vname'];
  $static['auftraggeber_name'] = $HTTP_SESSION_VARS['auftraggeber_name'];
  $static['auftraggeber_telefon'] = $HTTP_SESSION_VARS['auftraggeber_telefon'];
  $static['auftraggeber_durchwahl'] = $HTTP_SESSION_VARS['auftraggeber_durchwahl'];
  $static['auftraggeber_telefax'] = $HTTP_SESSION_VARS['auftraggeber_telefax'];
  $static['auftraggeber_mail'] = $HTTP_SESSION_VARS['auftraggeber_mail'];
  $static['ansprechpartners_vname'] = $HTTP_SESSION_VARS['ansprechpartners_vname'];
  $static['ansprechpartners_name'] = $HTTP_SESSION_VARS['ansprechpartners_name'];
  $static['ansprechpartners_telefon'] = $HTTP_SESSION_VARS['ansprechpartners_telefon'];
  $static['ansprechpartners_mail'] = $HTTP_SESSION_VARS['ansprechpartners_mail'];

  $tpl= new templateparser("templates/index.tpl");


  @$tpl->addStaticValues($static);
  echo $tpl->getparsedTemplate();
?>
Und die PHP-Seite auf die weitergeleitet wird beim Abschicken des Forms
Code:
<?php
<?php
  include("klassen.php");
  include("templateparser.php");
  @session_start();

  $tpl= new templateparser("templates/serverauswahl.tpl");
 
  // Kontaktdaten in Session sichern:
  session_register('auftraggeber_branche');
  session_register('auftraggeber_vname');
  session_register('auftraggeber_name');
  session_register('auftraggeber_telefon');
  session_register('auftraggeber_durchwahl');
  session_register('auftraggeber_telefax');
  session_register('auftraggeber_mail');
  session_register('ansprechpartners_vname');
  session_register('ansprechpartners_name');
  session_register('ansprechpartners_telefon');
  session_register('ansprechpartners_mail');

  // aktuelle Seite mit Daten fuellen:
  //[...]
  @$tpl->addStaticValues($static);
  echo $tpl->getparsedTemplate();
?>
Vielen Dank schon einmal!
Alexander
  Mit Zitat antworten Zitat