php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.12.2011, 15:07  
Neuer Benutzer
 
Registriert seit: 24.08.2011
Beiträge: 19
PHP-Kenntnisse:
Anfänger
phpameise befindet sich auf einem aufstrebenden Ast
Standard 2 Submit in einem Formular

Habe ein langes Fomular über 3 Seiten. Möchte dem User die Möglichkeit bieten, dass er von Seite2 zurück auf Seite1 kann, ohne dass er evtl bereits eingegebene Daten aus Seite2 verliert und natürlich auf Seite1 auch die alten Daten angezeigt bekommt. Ist das vereinfacht so möglich, oder ist das unsicher oder einfach schlecht so???

seite1.php
Code:
<?php session_start();
?>
<form action="seite2.php" method="post" name="myform" id="myform">
<input name="Name" type="text" id="Name" value="<? echo $_SESSION['Name']; ?>">
<input name="weiter" type="submit" id="weiter" value="weiter" />
seite2.php
Code:
<?php session_start();
$_SESSION['Name'] = $_POST['Name'];
?>
<form action="weiche.php" method="post" name="myform" id="myform">
<input name="Farbe" type="text" id="Farbe" value="<? echo $_SESSION['Farbe']; ?>">
<input name="weiter" type="submit" id="weiter" value="weiter" />
<input name="zurück" type="submit" id="zurück" value="zurück" />
weiche.php
Code:
<?php session_start();
$_SESSION['Farbe'] = $_POST['Farbe'];

if(isset($_POST['weiter']))
{
    //weiter Button wurde gedrückt
    include_once('seite3.php');
}
else
{
    //zurück Button wurde gedrückt
    include_once('seite1.php');
} 
?>
phpameise ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.12.2011, 15:15  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Sieht soweit ok aus.

Wenn du die Weiche allgemeingültig einsetzen willst, schick noch einen "hidden" Parameter mit, der die aktuelle Seite enthält. Dann weisst du, welches die "vorherige" bzw. "nächste" Seite sein soll.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 08.12.2011, 15:30  
Neuer Benutzer
 
Registriert seit: 24.08.2011
Beiträge: 19
PHP-Kenntnisse:
Anfänger
phpameise befindet sich auf einem aufstrebenden Ast
Standard

Sorry, bin Anfänger und versteh Deinen Hinweis nicht ganz. Hidden-Feld - klar. Du meinst, wenn ich die weiche.php auch aus der seite3.php ansteure? Kannst Du es etwas leichter kurz erklären?
phpameise ist offline   Mit Zitat antworten
Alt 08.12.2011, 15:44  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Code:
<form action="weiche.php" method="post" name="myform" id="myform">
<input type="hidden" name="current_page" value="[aktuelle Seite, z.B. 2]">

...

<input name="weiter" type="submit" id="weiter" value="weiter" />
<input name="zurück" type="submit" id="zurück" value="zurück" />
vereinfacht
PHP-Code:
<?php 
$current_page 
$_POST['current_page'];

if(isset(
$_POST['weiter']))
{
    
//prüfe noch, ob es nach der aktuellen Seite eine weitere Seite gibt
    
if ($current_page 3// z.B. 3. Seite ist letzte Seite - kein "Weiter" möglich
        
$_page "seite". ($current_page 1) .".php"
}
else
{
    
// vorher: prüfe noch, ob es vor der aktuellen Seite eine Seite gibt
    
if ($current_page 1// vor der 1. Seite gibts keine weitere Seite
        
$_page "seite". ($current_page 1) .".php";


if (!empty(
$_page)) 
    include_once(
$_page);
?>
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 08.12.2011, 16:04  
Neuer Benutzer
 
Registriert seit: 24.08.2011
Beiträge: 19
PHP-Kenntnisse:
Anfänger
phpameise befindet sich auf einem aufstrebenden Ast
Standard

Das ist einfach und genial! Heißt das, dass ich im Grunde alle Post-Variablen in die Session auf der weiche.php anmelden könnte und nichtmal auf der Seite2, wie in meinem Beispiel
Code:
 $_SESSION['Name'] = $_POST['Name'];
oder später auf Seite3 die Variablen in die Session aufnehmen muss??
phpameise ist offline   Mit Zitat antworten
Alt 08.12.2011, 16:09  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Wenn ich es richtig verstanden habe: Ja

$_POST ist "nur" ein Array, das kannst du auch allgemeingültig durchlaufen:
PHP-Code:
foreach($_POST as $key => $value) {
    
$_SESSION$key ] = $value;

Wobei natürlich Vorsicht geboten ist, denn eigentlich möchtest du die POST Parameter validieren, was bei einer allgemeinen Lösung schwierig wird.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 08.12.2011, 17:06  
Neuer Benutzer
 
Registriert seit: 24.08.2011
Beiträge: 19
PHP-Kenntnisse:
Anfänger
phpameise befindet sich auf einem aufstrebenden Ast
Standard

Erstmal ein Super Danke, läuft bestens. Durch das 'include_once' wird zwar in der Browser url-Zeile jetzt nach dem ersten 'weiter' der Seite1 'weiche.php' angezeigt, aber kann ich ja auch besser benennen.
Das mit der Session wollte ich umständlicher (weil Anfänger )machen. Einfach alle Variablen auf der weiche.php nach dem Muster anmelden.
PHP-Code:
//Daten aus Seite1
$_SESSION['Name'] = $_POST['Name'];
$_SESSION['Telefon'] = $_POST['Telefon'];
//Daten aus Seite2
$_SESSION['Sprache'] = $_POST['Sprache'];
$_SESSION['Schule'] = $_POST['Schule'];
//Daten aus Seite2
$_SESSION['Ort'] = $_POST['Ort'];
$_SESSION['Lehrer'] = $_POST['Lehrer']; 
Bevor ich die Variablen in eine Datenbank speichere, sollten sie noch durch einen Filter - á la
PHP-Code:
foreach($_POST as $key => $value) {
    
$data[$key] = filter($value);

Kann ich da dann die Sessionvariablen alle mit einem Schlag einlesen?
So vielleicht?
PHP-Code:
foreach($_SESSION as $key => $value) {
    
$data[$key] = filter($value);

phpameise ist offline   Mit Zitat antworten
Alt 08.12.2011, 17:11  
Erfahrener Benutzer
 
Registriert seit: 03.04.2010
Beiträge: 191
PHP-Kenntnisse:
Anfänger
Suralc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von phpameise Beitrag anzeigen
Kann ich da dann die Sessionvariablen alle mit einem Schlag einlesen?
So vielleicht?
PHP-Code:
foreach($_SESSION as $key => $value) {
    
$data[$key] = filter($value);

Ja könntest du, allerdings fehlt dir dann die Möglichkeit die Daten Zielgenau zu validieren. Eine Telefonnummer muss logischerweise nach einem anderen Schema validiert werden, als eine E-Mail Adresse.
__________________
Zitat:
Zitat von nikosch Beitrag anzeigen
Naja, anscheinend spricht die Steckdose kein HTTP. LOL
Suralc ist offline   Mit Zitat antworten
Alt 08.12.2011, 17:15  
Neuer Benutzer
 
Registriert seit: 24.08.2011
Beiträge: 19
PHP-Kenntnisse:
Anfänger
phpameise befindet sich auf einem aufstrebenden Ast
Standard

Hab die Validierung auf jeder einzelnen Formularseite mit Java Script realisiert. JavaScript ist also Pflicht und wird am Anfang durch mich abgefragt. Danke für alle Tips, mein Tag ist gerettet.
phpameise ist offline   Mit Zitat antworten
Alt 08.12.2011, 17:22  
Neuer Benutzer
 
Registriert seit: 24.08.2011
Beiträge: 19
PHP-Kenntnisse:
Anfänger
phpameise befindet sich auf einem aufstrebenden Ast
Standard

Ach eine Frage hätte ich noch. Wenn ich dann von Seite1 über den Post-Befehl die Variablen auf die 'weiche.php' übertrage und dort in die Session anmelde, aber dort auch schon die Post-Variablen von den anderen 2 späteren Seiten auf die Anmeldung warten, gibt es da Probleme - heißt, muss ich da irgend einen String dazugeben, der nur die Post-Variablen in die Session schreibt, die auch wirklich übergeben werden??? (kompliziert ausgedrückt, ich weiß)
phpameise ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Formular mehrere Submit Buttons - Safari LarsVern PHP-Fortgeschrittene 5 13.05.2010 19:15
Formular 1 wurde verändert, Formular 2 Submit muss dies erkennen smilla JavaScript, Ajax und mehr 2 28.03.2010 21:26
Formular wird nach submit nicht abgeschickt Ebin PHP Tipps 2010 9 08.03.2010 17:36
[Erledigt] Get Formular Daten in neues Fenster per Image Submit übermitteln Rutor PHP Tipps 2010 1 21.02.2010 15:30
Formular nach SUBMIT nicht leeren?? Dome90 PHP Tipps 2010 11 29.01.2010 13:47
Formular nach Submit ausblenden? t-stude PHP Tipps 2009 14 14.12.2009 21:32
[Erledigt] Submit Formular über Frame - Daten kommen nicht an timok PHP Tipps 2009 3 05.10.2009 16:15
[Erledigt] Formular Submit, Variable laden krackmoe PHP Tipps 2009 5 01.07.2009 15:57
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
JS: Action von Formular bei Submit in neuem Fenster PsychoEagle HTML, Usability und Barrierefreiheit 7 14.12.2006 09:28
Formular abschiken ohne Submit Button shocky HTML, Usability und Barrierefreiheit 10 02.11.2006 21:53
Variable aus Formular ohne submit Button übergeben PHP Tipps 2005-2 3 24.06.2005 17:08
Formular Submit in eigenem Browserfenster oder Popup Bronks HTML, Usability und Barrierefreiheit 4 04.11.2004 17:43
[Erledigt] Formular, Submit, PHP - Hab ein kleines Problem PHP Tipps 2004 2 10.07.2004 13:50
Formular per image (Submit) abschicken... 18inch PHP Tipps 2004 1 26.06.2004 12:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
$_post foreach submit ausblenden, php 2 form post

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:29 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum