232 PHP i MySQL dla każdego
Na początku jest wywoływana funkcja session_start, rozpoczynająca sesję, oraz jest tworzona zmienna sesji o nazwie zmienna_sesji, której jest przypisywany ciąg znaków abcd. W dalszej części skryptu kod HTML jest przeplatany z kodem PHP. Wyświetlany jest identyfikator przypisany sesji podczas wywołania funkcji session_start (do pobrania identyfikatora sesji wykorzystuje się funkcję sessionjid) oraz zawartość zmiennej zmienna_sesji. Na końcu witryny umieszczony jest natomiast odnośnik do kolejnej strony: index2.php. Po uruchomieniu skryptu zobaczymy widok taki, jak na rysunku 8.4. Oczywiście identyfikator sesji będzie w każdym przypadku inny.
Rysunek 8.4.
Rozpoczęcie sesji i wyświetlenie jej parametrów
Elik Edycja Widok Przejdź Zakładki Narzędzia Pomot
<P ' : P ’ 0 I§! Ćj) ) U kiep://locałttst/index.php 3
^ Rozpoczrkj przygód... 1 Akiuakx)ści
Witamy na stronie. Została rozpoczęta sesja.
Identyfikatorem sesji jest: 4a40053ea9ebl9428c4f47f4£36c5ae4 Została ustawiona zmienna o nazwie: zmienna_sesji Wartością zmiennej zmienna_sesjijest: abcd Następna strona
Treść skryptu index2.php jest widoczna na listingu 8.6. Kod rozpoczyna się oczywiście od wywołania funkcji session_start. Następnie, podobnie jak w skrypcie z listingu 8.5, wyświetlane są dane sesji. Ponieważ jest to kontynuacja sesji rozpoczętej skryptem indexl.php, zarówno identyfikator, jak i wartość zmiennej zmienna_sesji pozostają niezmodyfikowane, co obrazuje rysunek 8.5. Na końcu kodu jest umieszczony odnośnik do kolejnej strony: index3.php.
Listing 8.6. Skrypt kontynuujący sesję <?php
session startO;
?>
<html>
<body>
Witamy na drugiej stronie sesji.<br>
Trwa sesje o identyfikatorze: <?php echo session_id() ?> <br>
Wartością zmiennej zmienna_sesji jest:
<?php echo $_SESSION['zmienna_sesji'] ?><br>
<a href="index3.php">Nastepna strona</a>
</body>
</html>
Treść skryptu index3.php została przedstawiona na listingu 8.7. Kod rozpoczyna się, tak jak w poprzednich przypadkach, od wywołania funkcji session_start, potem następuje jednak wyrejestrowanie i usunięcie zmiennej zmienna_sesji. Czynność ta jest wykonywana za pomocą funkcji unset. Następnie są wyświetlane dane sesji. Oczywiście próba wyświetlenie wartości zmiennej zmienna_sesji zakończy się niepowodzeniem. Jeśli środowisko PHP jest tak skonfigurowane, aby wyświetlane były ostrzeżenia i komunikaty o błędach, odpowiedni komunikat pojawi się również na ekranie (rysunek 8.6). Ostatecznie sesja jest kończona za pomocą funkcji session_destroy.