11.10.2. Создание страницы доступа

425. Используя в качестве основы generic_template.php, создайте login.php. На панели инструментов присвойте ему заголовок Enisey Tours: Log In. Вместо заменителя заголовка на странице введите текст Зарегистрируйтесь, пожалуйста.

426. На место первой строки текста вставьте форму. Присвойте форме имя frm_login. Добавьте к ней таблицу со следующими параметрами: Rows: 3, Columns: 2, Width: 95%, Border thickness: 0, Cell padding: 3, Cell spacing: 0.

427. Вставьте два текстовых поля и кнопку Submit. Текстовому полю рядом с надписью Email Address присвойте имя username, а текстовому полю рядом с надписью Парольpwd. На панели Property Inspector для текстового поля pwd выберите тип Password.

428. Щелкните на кнопке Submit, затем в панели Server Behaviors выполните команды User Authentication\Log In User.

Эта модель поведения проверяет, есть ли в БД пара значений, соответствующая введенным данным доступа; устанавливает переменную сессии в случае успешного получения доступа и в зависимости от результата аутентификации переводит посетителя на соответствующую страницу.

429. В верхней четверти окна Log In User выберите форму frm_login, в поле со списком Username field выберите username, а в поле со списком Password fieldpwd.

430. Во второй четверти окна в качестве соединения укажите conn_enisey, задайте таблицу tbl_users. В поле со списком Username column укажите username, а в поле со списком Password column – pwd.

431. В третьей четверти окна Log In User в качестве страницы, на которую посетитель переводится в случае успешного доступа, укажите страницу index.php, а в качестве страницы, загружаемой после неудачного доступа – login_failed.php. Флажок Go to previous URL должен быть установлен.

432. В четвертой четверти окна выберите Username, password and access level, а в списке Get level from выберите userGroup. Нажмите OK.

На этом шаге решаются две задачи. Во-первых, указывается, на какую страницу должен быть переведен пользователь в зависимости от результата получения доступа.

Настройка Go to previous URL требует некоторого объяснения. Посетители попадают на страницу доступа двумя способами. Первый способ – это прямой переход по ссылке Log In, расположенной на главной странице. Но та же самая страница доступа загрузится и в том случае, если посетитель, который не ввел данные доступа, пытается зайти на закрытую страницу. Таким образом, страница доступа может задерживать перемещение посетителей по сайту. При вводе данных доступа посетитель не обязательно хочет попасть на главную страницу, например, если ранее он щелкнул на ссылке для просмотра информации о странах или путешествиях. Эта настройка добавляет в сценарий специальный код: после того, как посетитель введет данные доступа, он переводится на страницу, которую до этого пытался загрузить.Во-вторых, другая задача, которая решается на этом шаге, – это разделение пользователей, о котором говорилось ранее на группы. Это позволит различить зарегистрированных пользователей и сотрудников компании. Поскольку уровни доступа хранятся в поле userGroup таблицы tbl_users, эта информация задается в меню Get level from (Получить уровень от).

433. Щелкните на кнопке Submit и выберите Window, Behaviors, добавьте модель поведения Form Validation, которая делает обязательным заполнение обоих полей. К каждой форме рекомендуется прикреплять сценарий для проверки заполнения. В области NameFields выберите UserName и нажмите Required,  выберите pwd и нажмите Required, OK.

431. Ниже формы добавьте абзац с текстом: Если у вас еще нет учетной записи, введите ее. К слову введите прикрепите ссылку на страницу register.php. Сохраните страницу и загрузите ее на сервер.

432. На основе шаблона generic_template.php создайте страницу login_failed.php. На панели инструментов присвойте ей заголовок enisey Tours: Неудачная попытка регистрации. Вместо заменителя заголовка, расположенного на странице, введите текст Login Failed. Ниже введите следующий текст: Веденные Вами имя пользователя и пароль не опознаны. Повторите ввод еще раз. Прикрепите к словам Повторите ввод ссылку на страницу login.php.