Möchten wir in einem Script auf Sessions zurückgreifen, müssen wir, bevor wir irgendeine Ausgabe machen, den Befehl session_start(); aufrufen:
<?php session_start(); ?>
Es empfiehlt sich, diesen Code immer ganz oben der Scripts stehen zu haben. Falls ihr die Fehlermeldung Cannot send session cookie - headers already sent by erhaltet, dann gab es irgendwo vor session_start() eine Ausgabe. Eine leere Zeile oder sogar ein Leerzeichen vor <?php reichen bereits aus.
Möchten wir einen Wert / eine Variable über mehrere Seitenaufrufe hinweg in der Session speichern, dann geht dies wie folgt:
<?php $_SESSION['name'] = "wert"; ?>
Diesen Wert können wir später, auch auf anderen Seiten, wie folgt ausgeben:
<?php $name = $_SESSION['name']; echo $name; ?>
Wichtig, immer wenn ihr irgendwo mit Sessions arbeitet, muss zuvor session_start() ausgeführt worden sein. Probiert es aus, speichert in seite1.php einen Wert in eine Session und gebt dann in seite2.php diesen Wert wieder aus.
Ihr könnt dabei die Session-Variable wie jede andere Variable in PHP verwenden. Ihr könnt darin Zahlen, Zeichenketten oder sogar Arrays abspeichern.
Oft empfiehlt es sich zu überprüfen, ob eine gewisse Session-Variable bereits registriert wurde. Dies geht mittels der Funktion isset($variable)
<?php session_start(); if (!isset($_SESSION['visited'])) { echo "Du hast diese Seite noch nicht besucht"; $_SESSION['visited'] = true; } else { echo "Du hast diese Seite zuvor schon aufgerufen"; } ?>
Hier wird zuerst überprüft ob es die Session-Variable schon gibt. Falls es sie nicht gibt, wird sie registriert.
Würden wir anstatt !isset nur isset schreiben, könnten wir überprüfen, ob die Session registriert wurde. Dies lässt sich bei Logins verwenden:
<?php session_start(); if (isset($_SESSION['username'])) { echo "Herzlich Willkommen ".$_SESSION['username']; } else { echo "Bitte erst einloggen"; } ?>