Ошибка: Failed to parse the Currency Converter XML document.
$2 005.13


Ошибка: Failed to parse the Currency Converter XML document.
$14 456.27


Ошибка: Failed to parse the Currency Converter XML document.
$1 124.94


Использование сессий в PHP

Очень часто при написании скриптов на php необходимо хранить некоторую информацию о посетителе в течение всего сеанса его работы. Типичным примером такой ситуации является необходимость «помнить» логин и пароль пользователя при его нахождении в закрытой части сайта (например, на форуме). Собственного говоря, именно для этого и существует механизм сессий, реализованный в php, однако давайте все по порядку.

Для того, чтобы в скрипте можно было работать с сессиями, необходимо сначала инициализировать механизм сессий. Делается это с помощью функции session_start(). При этом будет создана новая сессия или восстановлена уже существующая. Как сервер узнает что ему делать: создавать или восстанавливать? Очень просто. Дело в том, что когда посетитель заходит на сайт, ему присваивается 32-х разрядный идентификатор вида: abcd1efgh2ijkl3mnop4qrs5tuv6wxyz, который «следует» за ним при всех перемещениях по сайту. «Следование» обеспечивается либо по средствам cookies, либо, если они отключены у пользователя, добавлением ко всем адресам GET-запроса вида: PHPSESSID=идентификатор, т.е. адрес myscript.php превратиться в myscript.php?PHPSESSID=идентификатор. При обработке запроса на сервере движок php ищет идентификатор в переданных ему данных и, если находит и сессия не устарела, то обновляет ее. В противном случае создается новая. Кстати, идентификатор сессии можно получить с помощью функции session_id();



После того, как механизм сессий был инициализирован в скрипте мы можем сохранять любую информацию в ассоциативном массиве $_SESSION. Этот массив является глобальной переменной сессии. Таким образом, сохранив в нем, к примеру, значения переменных login и password на странице авторизации мы можем использовать их на всех остальных страницах защищенной части сайта.

Завершение сессии происходит либо автоматически по истечению определенного промежутка времени, либо принудительно при использовании функции session_destroy().

Ну вот, с теорией мы разобрались, теперь настало время применить ее на практике. Для этого напишем 3 скрипта: login.php — авторизация посетителей, protected.php — закрытая страница и logout.php — завершение работы.
login. php
<?session_start(); //инициализирум механизм сесссийif(!isset($_POST[«ok»])) {// если форма не заполнена, то выводим ее    echo«            Страница авторизации            Login:    
Password:    

            »;}else{        //предполагается, что информацию о пользователях вы    //храните в базе данных, в таблице users, содержащей поля id, login, pass    $db=mysql_connect(«host», login«, »password«);    mysql_select_db(»db_name«, $db);        //проверяем есть ли пользователь с таким login»ом и password«ом    $res=mysql_query(«SELECT * FROM users WHERE login=»«.$_POST[«login»].»«        AND pass=»«.$_POST[«pass»].»«», $db);    if(mysql_num_rows($res)!=1){    //такого пользователя нет        echo «Введены не верные логин или пароль»;    }    else{    //пользователь найден        $_SESSION[»login«]=$_POST[»login«];    //устанавливаем login & pass        $_SESSION[»pass«]=$_POST[»pass«];        Header(«Location: protected.php»);    // еренаправляем на protected.php    }        mysql_close();}
protected.php
<?session_start(); //инициализирум механизм сесссий//начинаем проверку логина и пароля$db=mysql_connect(»host«, »login«, »password«);mysql_select_db(»db_name«, $db);$res=mysql_query(«SELECT * FROM users WHERE login=»«.$_SESSION[«login»].»«    AND pass=»«.$_SESSION[«pass»].»'«, $db);if(mysql_num_rows($res)!=1){    //такого пользователя нет    Header(»Location: login.php«);    //перенаправляем на login.php    }else{    //пользователь найден, можем выводить все что нам надо    echo »Текст закрытой страницы
Выход»;}mysql_close();?>
logout. php

Ну вот, и все. Надеюсь, эта статья кому-нибудь поможет.
google_ad_section_end-->

 

Интересное

Добавление CSS
Таблицы стилей могут быть добавлены на веб-страницу тремя разными способами, которые различаются по своим возможностям.Таблицы связанных стилейСамый мощный и удобный способ определения стилей и...
Подробнее...
Как пользоваться модулем...
Наверное, все из вас знают что такое интернет, сайт и Apache (веб-сервер). Немного углубившись в структуру веб-сервера скажу, что у апача есть еще и много модулей, которые обеспечивают...
Подробнее...
Java обгоняет по...
Одним из главных недостатков языка Java традиционно считается невысокая скорость работы программ по сравнению с приложениями на языке С++. И для приложений, где переносимость между платформами или...
Подробнее...
Outlook Express,...
Для этого нужно сохранить в другом месте файлы с нужной корреспонденцией (например, Входящие.dbx и другие с таким же расширением) и гдебы даже и на бумажке. После того как вы переустановите...
Подробнее...
Каскадные таблицы стилей,...
Русская часть Интернета растет день ото дня. За последние год-два суммарный объем русскоязычных страниц увеличился более чем в два раза. Сегодня в России уже никого не удивишь словосочетанием или...
Подробнее...
Обзор игровых...
Если ваш стаж общения с компьютерами достаточно велик, то весьма вероятно, что вы помните то знаменательное событие — превращение ПК в мультимедийное устройство. Для России, да и для значительной...
Подробнее...
Стилистическое ядро сайта...
Многие оптимизаторы прекрасно знают о таком понятии, как семантическое ядро сайта, термин достаточно устоялся. Тут никаких особых проблем нет, хотя некоторые разночтения все же встречаются. Одни...
Подробнее...
Открытие XP Pro x64
Как энтузиаст новых технологий, я с нетерпением ждал возможности запустить на своем настольном компьютере Windows XP Professional x64 Edition. Недавно я собрал новую машину с процессором AMD...
Подробнее...
Отдых
Отпуск: как не пожалеть о потраченном времени Для большинства людей отпуск – желанное и долгожданное событие, к тому же длится он сравнительно недолго, что делает его еще более ценным....
Подробнее...
FAQ по методам...
Многие, насмотревшись фильмов про «хакеров», где половина вымысла имеют искаженное представление про взломы удаленных компьютеров. Скажу сразу, что не каждый камп можно ломануть. Хотя, может я...
Подробнее...