- •Введение
- •Создание базы в среде MySql
- •Краткий обзор языка запросов sql Основные типы данных
- •Создание таблиц
- •Заполнение таблиц
- •Выбор из таблиц
- •Использование языка html
- •Алгоритмы программирования на рнр Связь html и рнр
- •Соединение с сервером
- •Сессии в рнр
- •Пересылка данных из форм
- •Запрос к бд из рнр. Авторизация.
- •Использование параметров сессии
- •Передача идентификатора
- •Реализация сценария
- •Использование языка JavaScript Основные элементы языка js
- •Создание переменных
- •Объектная модель языка js
- •Пример использования js
Сессии в рнр
Предположим, что у каждого посетителя есть некая область памяти (у каждого - своя), в которую наша программа может что-то записывать и читать. Наша программа не должна заботиться о ней. И все это можно сделать. Эта абстрактная область памяти имеет идеальный интерфейс. Вернее, не имеет его. К примеру, если бы данная область хранилась в файлах, нам надо было бы файлы читать и анализировать. Для записи - надо было бы записывать туда данные в каком-то формате. При хранении в базе данных - нам пришлось в начале программы выполнять SQL-запрос, чтобы извлечь все данные и в самом конце выполнения программы записать их обратно. Все это (затраты на чтение файла или базы данных) - называется интерфейс. Как я сказал, наше общение с базой данных вообще не имеет интерфейса. Это значит, что любые переменные, которые мы пожелаем, будут с некоторого момента считаться областью памяти посетителя. При каждом запуске программы, от разных посетителей, она будет иметь доступ через какие-то переменные только к персональным настройкам.
С помощью чего PHP-процессор различает пользователей? С помощью идентификатора. Он является 128 битным числом. Если человек пришел на сайт впервые и PHP-процессор это видет, то данному посетителю присваивается какое-то случайное число, не присвоенное еще никому. В дальнейшем, при повторном заходе, посетитель будет ассоциирован с его личным числом (идентификатором), из-за чего программе будет предоставлена персональная область памяти.
По умолчанию, PHP хранит все в файлах (в своем формате) и сам достает из них сохраненные данные. После работы каждого скрипта PHP сам все записывает обратно в личный файл из переемнных, помеченных для хранения в сессии.
Старт сессии нужно вызывать в начале каждого РНР файла:
bool session_start (void).
session_start() создаёт сессию (или продолжает текущую на основе session id, переданного через GET-переменную или куку).
На следующем рисунке изображен код верхнего фрэйма стартовой страницы интернет-магазина Рисунок 2 Главная страница интернет-магазина с приветствием и кнопками-ссылками на три другие страницы Рисунок 4 topframe.php.
Рисунок 4 topframe.php
После окончания сеанса пользователя нужно закрыть сессию с помощью функции:
bool session_destroy (void)
session_destroy() разрушает все данные, ассоциированные с текущей сессией.
int header (string string [, bool replace])
header() используется для отправки необработанных HTTP-шапок.
В примере, приведенном ниже Рисунок 5 logout.php происходит закрытие сесии и перенапра-вление на страницу main.php.
Рисунок 5 logout.php
Пересылка данных из форм
На следующем рисунке изображен код нижнего фрэйма стартовой страницы интернет-магазина Рисунок 2 Главная страница интернет-магазина с двумя ссылками и формой авторизации Рисунок 6 main.php.
Рисунок 6 main.php
Форма содержит два поля ввода: логин и пароль, и кнопку «Вход». В верхней строке формы описано действие:
action = login.php
Это обозначает, что после нажатия кнопки управление будет передано в файл login.php, а содержимое полей будет сохранено под названием ‘login’ и ‘pass’ соответственно.
Рисунок 7 login.php
