Сессии в PHP
Рассмотрим пример простой сессии, работающей с четырьмя страницами. Первая страница (page1.php) представляет собой простенькую формочку, где пользователь вводит имя, которое потом “запоминается”.
После того, как пользователь нажал “Enter”, он попадает на страницу page2.php, при посещении которой открывается сессия и регистрируется переменная $username.
После этого, пользователь нажимает на ссылку и попадает на страницу page3.php, при этом, как видно, его имя “не забыто”, т.е. переменная сессии не уничтожается, когда пользователь перешел на другую страницу сайта.
При нажатии на ссылку, пользователь попадает на страницу page4.php, в результате чего происходит разрегистрация сеансовой переменной и уничтожение сессии.
После разрегистрации сеансовой переменной значение массива $_SESSION[‘username’] уже недоступно.
Более подробно о работе с сессиями вы можете почитать в нашем учебнике по языку PHP в разделе – Сессии и cookie в PHP
Первая страница (page1.php)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<html> <body> <h1> Страница регистрации </h1> <form method="post" action="page2.php"> <table> <tr><td>Имя:</td> <td><input type="text" name="name" value="<?php echo $name; ?>"></td></tr> <tr><td colspan="2"><input type="submit" value="Enter"> </td></tr> </table> </form> </body> </html> |
Открывается сессия и регистрируется переменная $username.
1 2 3 4 5 6 |
<?php session_start(); $_SESSION['username'] = $_POST['name']; echo "Привет, ".$_SESSION['username']."<br>"; ?> <a href="page3.php">На следующую страницу</a> |
Сессия сохранена. Имя пользователя не забыто.
1 2 3 4 5 6 |
<?php session_start(); echo $_SESSION['username'].", вы пришли на другую страницу этого сайта!"; echo "<br>"; ?> <a href="page4.php">Уничтожить сессию</a> |
Разрегистрация сеансовой переменной и уничтожение сессии.
1 2 3 4 5 6 7 8 9 |
<?php session_start(); unset($_SESSION['username']); // разрегистрировали переменную echo "Привет, ".$_SESSION['username']; // теперь имя пользователя уже не выводится session_destroy(); // уничтожаем сессию ?> |