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


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


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


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

 

Интересное

Пошаговое руководство по...
В этом пошаговом руководстве представлены инструкции по балансировке сетевой нагрузки (Network Load Balancing, NLB) в среде служб терминалов, что позволяет получить такие преимущества, как...
Подробнее...
Наиболее распространенне...
Количество случаев похищения идентификационных данных все растет. Нашла ли ваша организация решение этой проблемы или она остается для вас по-прежнему актуальной? Личные идентификационные данные...
Подробнее...
Безопасная настройка PHP...
ПредисловиеПриходится признать, что операционные системы Windows не собираются уходить в небытие. Игнорировать этот факт нельзя, поэтому нужно научиться мирно сосуществовать с таковыми. Как...
Подробнее...
Delphi и Flash. Совмещение...
Разве возможно совместить Флэш-ролики и Дельфи-приложения. Раньше я думал что НЕТ. Но теперь я знаю не только, что это возможно, но и знаю как это делается!!! И сейчас я вам расскажу об этом....
Подробнее...
Я работаю с Windows Vista....
Шаг за шагом знакомимся с Windows Vista. Сегодня — подробно о том, сколько и какого «железа» требуется для работы с разными версиями новой операционной системы.
Подробнее...
Выпадающие меню с помощью CSS
Каждый, кому хоть раз приходилось создавать выпадающие меню, знаком с тем, какое количество скриптов требуется для этого. Между тем, используя грамотно структурированный HTML-код и несложные...
Подробнее...
CSS дизайн: с учетом контекста
Веб-стандарты обещают нам улучшенную поддержку мультимедиа: возможность оптимизировать контент под возможности компьютерных экранов, портативных устройств, принтеров, проекторов, и подобных...
Подробнее...
Как выбрать телевизор?
Плазменная панель уже давно перестала быть роскошью. И в эпоху технического прогресса, многие выбирают именно этот вид телевизоров. Конечно, плазма значительно дороже, но у нее есть немало...
Подробнее...
Основы позиционирования блоков
Блоки — прямоугольные области, используемые в CSS для формирования и отображения документов. Это упрощенно, очень сильно упрощенно, но на первом этапе вполне может и хватить.С появлением нового...
Подробнее...
Эксплойты
Эксплойт (англ. exploit — использовать) — это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода который, используя возможности предоставляемые...
Подробнее...