Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Удаление переменных сессии



Кроме умения регистрировать переменные сессии (т.е. делать их глобальными на протяжении всего сеанса работы), полезно также уметь удалять такие переменные и сессию в целом.

Функция session_unregister(имя_переменной) удаляет глобальную переменную из текущей сессии (т.е. удаляет ее из списка зарегистрированных переменных). Если регистрация производилась с помощью $_SESSION ($HTTP_SESSION_VARS для версии PHP 4.0.6 и более ранних), то используют языковую конструкцию unset(). Она не возвращает никакого значения, а просто уничтожает указанные переменные.

Где это может пригодиться? Например, для уничтожения данных о посетителе (в частности, логина и пароля) после его ухода с секретной странички. Если правильные логин и пароль сохранятся и окно браузера после посещения сайта не закрыли, то любой другой пользователь этого компьютера сможет прочитать закрытую информацию.

Пример 12.4. Уничтожение переменных сессии

В файл secret_info.php добавим строчку для выхода на главную страницу:

<?php//... php код?><html><head><title>Secret info</title></head>... // здесь располагается // секретная информация:)<a href="index.php">На главную</a></html>

Пример 12.4a. secret_info.php

В Index.php уничтожим логин и пароль, введенные ранее:

<?session_start();session_unregister('passwd'); // уничтожаем парольunset($_SESSION['login']); // уничтожаем логинprint_r($_SESSION); // выводим глобальные переменные сессии?><html><head><title>My home page</title></head>... // домашняя страничка</html>

Пример 12.4b. Index.php

Теперь, чтобы попасть на секретную страницу, нужно будет опять вводить логин и пароль.

Для того чтобы сбросить значения всех переменных сессии, можно использовать функцию session_unset();

Уничтожить текущую сессию целиком можно командой session_destroy(); Она не сбрасывает значения глобальных переменных сессии и не удаляет cookies, а уничтожает все данные, ассоциируемые с текущей сессией.

<?session_start(); // инициализируем сессию$test = "Переменная сессии";$_SESSION['test']= $test; // регистрируем переменную $test.// если register_globals=on, // то можно использовать // session_register('test'); print_r($_SESSION); // выводим все глобальные переменные echo session_id(); // выводим идентификатор сессии echo "<hr>";session_unset(); // уничтожаем все глобальные // переменные сессииprint_r($_SESSION);echo session_id();echo "<hr>";session_destroy(); // уничтожаем сессиюprint_r($_SESSION);echo session_id();?>

Пример 12.5. Уничтожение сессии и глобальных переменных

В результате работы этого скрипта будут выведены три строки: в первой - массив с элементом test и его значением, а также идентификатор сессии, во второй - пустой массив и идентификатор сессии, в третьей - пустой массив. Таким образом, видно, что после уничтожения сессии уничтожается и ее идентификатор, и мы больше не можем ни регистрировать переменные, ни вообще производить какие-либо действия с сессией.





Дата публикования: 2015-01-24; Прочитано: 200 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...