<?
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
Закрыть окно