Запрос к БД из РНР. Авторизация

 

В файле Рисунок 7 login.php переменным $user и $password присваивается значение полей формы с помощью функции $_GET(). Данная функция возвращает значения переменных, переданных из формы методом GET. Если метод передачи не указан, то по умолчанию содержимое передается методом GET. Далее, если содержимое переменных не пусто, следует проверка наличия такого пользователя, если пусто, то возвращение на исходную страницу:

header(Location: main.php);

Проверка делается в несколько этапов. Сначала формируется строка запроса в базу данных к таблице g8206_muhortova_users с выбором всех полей по имени пользователя $user. Переменная $query содержит эту строку. Затем включение файла dbconnect.php, назначение данного файла уже было описано. Затем переменной $result присваивается результат обращения к БД с запросом $query с помощью функцииmysql_query($query) из РНР.

Функция из РНР

mysql_fetch_array($result)извлекает результирующий ряд как ассоциативный массив.

Ассоциативный массив (словарь, хэш) — абстрактный тип данных, позволяющий хранить пары (ключ, значение). Ассоциативный массив с точки зрения интерфейса удобно рассматривать как обычный массив, в котором в качестве индексов можно использовать не только целые числа, но и значения других типов, например, строки.

В данном случае индексами к массиву $row будут служить имена полей таблицы g8206_muhortova_users. Поэтому, если в БД нашелся пользователь с именем $user, то сработает цикл и переменным $pass, $id и $email присвоятся соответствующие значения из таблицы.

Использование параметров сессии

Следующим шагом в освоении разработки WEB программирования является использование параметров сесии. Обращаясь к тому же примеру Рисунок 7 login.php, следует, если пароль пользователя совпадает с тем паролем, что хранился в БД, к сессии добавляются три параметра, которые будут доступны в любом месте текущей сесии.

Чтобы поместить переменную в сессию, достаточно присвоить ее элементу массива $_SESSION[]:

$_SESSION[‘idd’] = $id;.
Чтобы получить ее значение – достаточно обратиться к тому же элементу. Пример использования Рисунок 10 userroom.php.

 

Передача идентификатора

Далее строка

header(‘Location: userroom.php?PHPSESSID=’.session_id());

из файла login.php Рисунок 7 login.php передает управление в файл userroom.php и содержит явную передачу идентификатора. При этом «?PHPSESSID=» – ключевой набор слов, а PHPSESSID ключевая переменная РНР. Функция session_id()возвращает ID текущей сессии. Точка в РНР является оператором конкотинации (слияния) строк.

Если дописывать все ссылки подобным образом, то все последующие скрипты получат идентификатор.

 

Реализация сценария

 

Под сценарием РНР понимается различная реакция системы, в зависимости от входных параметров.

В личный кабинет пользоватея Рисунок 10 userroom.php можно попасть с разных страниц: после авторизации либо после регистрации, или с главной страницы сайта.

Если пользователь оказался администратором, управление передается файлу admihroom.php иначе выводится HTML документ «Личный кабмнет». Если пользователь не установлен, то предлагается авторизоваться, либо зарегистрироваться , иначе открывается личный кабинет пользователя Рисунок 9 Личный кабинет пользователя.

Рисунок 8 Не авторизованный личный кабинет

Рисунок 9 Личный кабинет пользователя

Личный кабинет пользователя содержит личное приветствие с именем пользователя и кнопку «Выход» с завершением сессии.


Рисунок 10 userroom.php