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


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


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


Использование сессий в 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-->

 

Интересное

Своя система голосования
Вы когда-нибудь хотели узнать мнение своих посетителей по тому или иному поводу?Например, «что Вы хотите видеть на сайте» или «нравиться ли Вам наш новый дизайн» ?Уверен, что...
Подробнее...
Откат обновлений драйверов...
Обновляя драйвер, чтобы решить существующие проблемы или улучшить работу устройства, не стоит забывать, что установка нового драйвера может привести к неожиданным результатам или воспрепятствовать...
Подробнее...
Firefox: Настройка RSS
Много слышал об RSS и даже несколько раз пытался пользоваться специальными программами для чтения. Но устанавливать дополнительное ПО не хочется, тем более что в Firefox есть встроенный клиент...
Подробнее...
GSM – шлюз: Как через...
У меня возникла необходимость по нескольку раз в день принимать и отправлять фак- сы на даче, где нет городского телефона. Слышал, что для таких целей можно каким-то образом приспособить мобильный...
Подробнее...
Unix-сервер: Установка и...
Несмотря на то, что для полного описания установки и настройки операционной системы и серверного ПО нужна целая книга, эта статья поможет вам увидеть основные сложности процесса и покажет...
Подробнее...
Проблема медленного...
Кто бы чего не говорил, но операционная система Windows XP, зарекомендовала себя как достаточно надежная (при надлежащем отношении). Моя копия Windows XP SP1, в последующем обновленная до SP2,...
Подробнее...
Динамика украинских...
Первое полугодие 2007 характеризуется позитивной динамикой развития домена .UA – сообщает администратор домена .UA ООО «Хостмастер». За период с 01.01.07 по 01.07.07 количество...
Подробнее...
Сертифицированные для...
Задавались ли вы вопросом, как можно узнать, совместимо ли то или иное программное обеспечение или устройство с основными возможностями Windows Vista? Вы можете легко определить такие изделия, ища...
Подробнее...
Используем Cron
Данная заметка предназначенна для тех, кто собирается работать с cron, но еще не знает как все это делается. Я в кратце попробую объяснить что такое cron, для чего он нужен да и как вообще с ним...
Подробнее...
Шаги по увеличению...
Этот документ является списком параметров защиты для применения на FreeBSD серверах.Существует огромное количество статей, обзоров и инструкций в которых описаны методы защиты вашей FreeBSD...
Подробнее...