AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP+HTML] Mehrseitige Formulare mit Session
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP+HTML] Mehrseitige Formulare mit Session

Ein Thema von Alexander · begonnen am 31. Mär 2004 · letzter Beitrag vom 31. Mär 2004
Antwort Antwort
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, 15: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
Alexander

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

Re: [PHP+HTML] Mehrseitige Formulare mit Session

  Alt 31. Mär 2004, 15:24

So ich habe es.
Ich wusste nicht dass man die Variabeln nicht nur über $HTTP_SESSION_VARS['var'] verfügbar sind, sondern auch über $var selber.
Hier wurden natürlich alle Variabel überschrieben...
So damit wäre das Problem gelöst...
Alexander
  Mit Zitat antworten Zitat
Alexander

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

Re: [PHP+HTML] Mehrseitige Formulare mit Session

  Alt 31. Mär 2004, 15:37
So.
Jetzt weiß ich zwar wo der Fehler ist, aber ich habe immer noch Probleme es zu beheben.
Ich könnte die Variabel zwar beim Anzeigen der Seite wieder killen (session_unregister), aber wenn man dann Aktualisieren drückt ist alles weg. Außerdem ist das sicherlich nicht die feinste Art...

Meine Frage wie bekomme ihc die Variabel: $HTTP_POST_VARS['var'] in session_register(); rein?
Sesison_register braucht ja nicht die Variabel selber, sondern den Namen der Variabel.
Kurz:
Code:
  session_register($HTTP_POST_VARS['var']);
funktioniert nicht!

Gibt es da eine saubere Lösung (außer die Session-Variabel zu löschen)?
Vielen Dank schon mal!
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: [PHP+HTML] Mehrseitige Formulare mit Session

  Alt 31. Mär 2004, 18:03
weise doch einfach einer anderen variable den $HTTP_POST_VARS['var'] wert zu und schreibe diese in die session?!
  Mit Zitat antworten Zitat
czapie

Registriert seit: 17. Nov 2002
Ort: Berlin
384 Beiträge
 
Delphi 5 Standard
 
#5

Re: [PHP+HTML] Mehrseitige Formulare mit Session

  Alt 31. Mär 2004, 18:09
Ja das geht relativ gut.

BTW:
Delphi-Quellcode:
$_POST
$_SESSION
$_GET
$_FILES
Ist aktueller und wird empfohlen.

Czapie.
Was man zu verstehen gelernt hat, fürchtet man nicht mehr.
(Marie Curie)
http://www.cafes-in-berlin.com
  Mit Zitat antworten Zitat
Alexander

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

Re: [PHP+HTML] Mehrseitige Formulare mit Session

  Alt 31. Mär 2004, 18:34
Zitat von Meflin:
weise doch einfach einer anderen variable den $HTTP_POST_VARS['var'] wert zu und schreibe diese in die session?!
Ja klar, das geht auch. HAbe ich mir auch schon überlegt...
Aber irgendwie ist das nur ein (dreckiger) Workaround.

Aber mit $_session geht das wie ich jetzt herausgefunden habe viel besser.
Code:
$_SESSION['var'] = $var;
Ist wohl hier die beste Lösung
Alexander
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz