Привет всем! Меня зовут Вася
<html> <head><title>My home page</title></head> <body> Привет всем! Меня зовут Вася Петров и это моя домашняя страничка. <a href="secret_info.html">Для Пети</a> </body></html> |
Листинг 12.1. Домашняя страничка Васи Петрова |
Закрыть окно |
<? 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. Уничтожение сессии и глобальных переменных |
Закрыть окно |
<? session_start(); // создаем новую сессию или // восстанавливаем текущую $conn = mysql_connect("localhost", "my_user","my_passwd"); // устанавливаем соединение с БД mysql_select_db("test"); // выбираем рабочую базу данных $SERVER_ROOT = "http://localhost/~nina/tasks/sessions/"; // где находятся наши скрипты /* с помощью регулярного выражения ^$SERVER_ROOT и функции eregi проверяем, начинается ли адрес ссылающегося скрипта, т.е. строка $_SERVER['HTTP_REFERER']) со строки $SERVER_ROOT (как у нас) */ if(eregi("^$SERVER_ROOT", $_SERVER['HTTP_REFERER'])){ // если да, то делаем почти то же, что и // раньше, пароль регистрировать не будем if (!isset($_POST['go'])){ echo "<form method=POST > Login: <input type=text name=login> Password: <input type=password name=passwd> <input type=submit name=go value=Go> </form>"; }else { /* запрос к базе данных: выбираем из таблицы users login, который совпадает с переданным по запросу, причем пароль у него тоже должен совпасть с введенным пользователем. Если этого нет, то считаем, что логин и пароль введены неверно */ $sql = "SELECT login FROM users WHERE login='" . $_POST['login'] . "' AND passwd='" . $_POST['passwd'] . "';"; $q = mysql_query($sql,$conn); // отправляем запрос к БД $n = mysql_num_rows($q); // число строк в ответе на запрос if (!$n==0){ $_SESSION['user_login']=$_POST['login']; // регистрируем переменную login Header("Location: secret_info.php"); // перенаправляем на страницу secret_info.php }else echo "Неверный ввод, попробуйте еще раз<br>"; } print_r($_SESSION); // выводим все переменные сессии } ?> |
Листинг 12.6. authorize.php |
Закрыть окно |
<?php unset($user_login); // уничтожаем переменную session_start(); // создаем новую сессию или // восстанавливаем текущую session_register($user_login); // регистрируем переменную // как уже существующую if (!($user_login=="pit")) // проверяем логин Header("Location: authorize.php"); // если ошибка, то перенаправляем // на страницу авторизации ?> <html> <head><title>Secret info</title></head> ... // здесь располагается // секретная информация :) </html> |
Листинг 12.7. secret_info.php |
Закрыть окно |