Rozdział 8. ♦ Cookies i sesje 231
Funkcja zwraca wartość true, jeżeli zmienna przekazana w postaci argumentu jest zmienną sesji, lub wartość fal se — w przeciwnym wypadku.
W razie stosowania tablicy $_SESSI0N lub $HTTP_SESSION_VARS do sprawdzenia, czy istnieje zmienna sesji o zadanej nazwie, stosuje się typową funkcję i sSet w postaci: i sSet ($_SESS I ON [' nazwa_zmiennej' ]) lub
i sSet($HTTP_SESSION_VARS[‘nazwa_zmiennej'1)
Zmienne, które zostały zarejestrowane w sesji, należy przed jej zakończeniem wyrejestrować. W przypadku stosowania tablic $_SESSI0N lub $HTTP_SESSION_VARS powinno się skorzystać z funkcji unset w schematycznej postaci: unset(S_SESSION['nazwa_zmiennej']) lub
unset ($HTTP_SESS I0N_VARS [' nazwajmi ennej"])
Nastąpi wtedy wyrejestrowanie z sesji oraz usunięcie zmiennej. W przypadku gdy zmienne były rejestrowane za pomocą funkcji session_register, należy skorzystać z funkcji sessi on_unregi ster w postaci:
session_unregister('nazwa_zmiennej')
Przekonajmy się, jak w praktyce przebiega implementacja sesji z wykorzystaniem omówionych wyżej technik. Napiszemy trzy proste skrypty, które będą wywoływane kolejno w jednej sesji. Treść pierwszego skryptu została przedstawiona na listingu 8.5.
Listing 8.5. Skrypt rozpoczynający sesją
<?php
sessionstartO:
$_SESSION['zmienna_sesji‘] = "abcd”:
<html>
<body>
Witamy na stronie. Została rozpoczęta sesja.<br> Identyfikatorem sesji jest: <?php echo session_id() ?> <br> Została ustawiona zmienna o nazwie: zmienna_sesji <br> Wartością zmiennej zmienna_sesji jest:
<?php echo $_SESSION['zmienna_sesji'] ?xbr>
<a href="index2.php">Następna strona</a>
</body>
</html>
Aby przykład zadziałał prawidłowo, w przeglądarce musi być włączona obsługa cookies lub też, w przypadku gdy przeglądarka nie obsługuje cookies, w pliku konfiguracyjnym php.ini należy włączyć opcję session.use_trans_sid.