20.04.2024

Сессии в PHP

Рассмотрим пример простой сессии, работающей с четырьмя страницами. Первая страница (page1.php) представляет собой простенькую формочку, где пользователь вводит имя, которое потом «запоминается».

После того, как пользователь нажал «Enter», он попадает на страницу page2.php, при посещении которой открывается сессия и регистрируется переменная $username.

После этого, пользователь нажимает на ссылку и попадает на страницу page3.php, при этом, как видно, его имя «не забыто», т.е. переменная сессии не уничтожается, когда пользователь перешел на другую страницу сайта.

При нажатии на ссылку, пользователь попадает на страницу page4.php, в результате чего происходит разрегистрация сеансовой переменной и уничтожение сессии.

После разрегистрации сеансовой переменной значение массива $_SESSION[‘username’] уже недоступно.

Более подробно о работе с сессиями вы можете почитать в нашем учебнике по языку PHP в разделе — Сессии и cookie в PHP

Первая страница (page1.php)
<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>
Вторая страница (page2.php)
Открывается сессия и регистрируется переменная $username.

<?php
session_start();
$_SESSION[‘username’] = $_POST[‘name’];
echo «Привет, «.$_SESSION[‘username’].»<br>»;
?>
<a href=»page3.php»>На следующую страницу</a>
Третья страница (page3.php)
Сессия сохранена. Имя пользователя не забыто.

<?php
session_start();
echo $_SESSION[‘username’].», вы пришли на другую страницу этого сайта!»;
echo «<br>»;
?>
<a href=»page4.php»>Уничтожить сессию</a>
Четвертая страница (page4.php)
Разрегистрация сеансовой переменной и уничтожение сессии.

<?php
session_start();
unset($_SESSION[‘username’]);
// разрегистрировали переменную
echo «Привет, «.$_SESSION[‘username’];
// теперь имя пользователя уже не выводится
session_destroy();
// уничтожаем сессию
?>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *