Sitzungen und Formulare in PHP
Nehmen wir an, wir haben zwei PHP-Dateien. Lassen Sie uns in
der Datei test1.php ein Formular platzieren, das den
Benutzer nach zwei Zahlen fragt:
<form method="GET">
<input name="num1">
<input name="num2">
<input type="submit">
</form>
In derselben Datei platzieren wir den Code zur Formularverarbeitung. In diesem Code schreiben wir die Daten der Eingabefelder in die Sitzung:
<?php
session_start();
if (!empty($_GET)) {
$_SESSION['num1'] = $_GET['num1'];
$_SESSION['num2'] = $_GET['num2'];
}
?>
Wichtiger Nuance: In der Datei muss der Code zur Formularverarbeitung vor dem Formular selbst stehen. Warum: Weil wir in diesem Code mit der Sitzung arbeiten, und daher darf vorher keine Ausgabe auf den Bildschirm erfolgen.
Lassen Sie uns nun in der Datei test2.php die
Summe der in der Sitzung gespeicherten Zahlen ermitteln:
<?php
if (!empty($_SESSION)) {
echo $_SESSION['num1'] + $_SESSION['num2'];
}
?>
In welcher Reihenfolge soll das alles
funktionieren? Zuerst ruft der Benutzer die
Seite test1.php auf, füllt das Formular aus
und klickt auf den Button. Danach gelangt er wieder
auf test1.php, aber nun mit den gesendeten
Formulardaten. Dabei gelangt er in die Bedingung,
in der wir die Formulardaten in die Sitzung schreiben.
Anschließend muss der Benutzer manuell auf die
Seite test2.php gehen - und dort wird er die
Summe der eingegebenen Zahlen sehen.
Sie könnten fragen: Warum so umständlich? Man
konnte das Formular doch direkt an die Seite
test2.php senden. Die Sache ist die, dass der Vorteil in diesem
Fall darin liegt, dass das Formular selbst und der Code
zu seiner Verarbeitung auf einer Seite platziert werden.
Das ist natürlich nicht immer vorteilhaft, aber manchmal
wird es benötigt.
Fragen Sie auf einer Seite mithilfe eines Formulars den Benutzer nach Nachname, Vorname und Alter. Speichern Sie diese Daten in der Sitzung. Geben Sie beim Aufruf einer anderen Seite diese Daten auf dem Bildschirm aus.