11.10.4. Ограничение доступа на страницы

Страницы регистрации и доступа работают как нужно. Но поскольку доступ к страницам не ограничен, приложение для регистрации и получения доступа остается бесполезным.

442. Откройте файл profiles.php. Щелкните в любом месте страницы и вставьте серверную модель поведения Restrict Access to Page (Ограничить доступ на страницу), расположенную в категории User Authentication на панели Server Behaviors. В группе Restrict based on включите Username, password, and access level.

Диалоговое окно дает возможность не просто ограничить доступ на страницу. Оно позволяет вводить ограничения в зависимости от уровня доступа пользователя.

443. В области Select level(s) не указано ни одного уровня. Нажмите Define. В окне Define Access Levels поместите курсор в поле Name, введите имя visitor и нажмите кнопку со знаком плюс. Повторите операцию, чтобы добавить имя admin. Нажмите OK.

444. В диалоговом окне Restrict Access to Page, удерживая клавишу Ctrl, выделите имена visitor и admin, добавленные в область Select level(s). В поле If access denied, go to (Если права доступа определены, перейдите к) укажите страницу login.php. Нажмите OK.

На этом шаге решены еще две задачи. Обеспечен доступ на страницы пользователям, которые относятся к группе visitor или admin.  Другая – это перенаправление посетителя на страницу login.php в случае, если доступ будет отклонен.

445. Повторите шаги с 442 по 444 для каждого из приведенных ниже файлов:

profiles_detail.php

tourprice.php

tourprice_processor.php

tours.php

tours_detail.php

Для доступа на каждую из этих страниц требуется аутентификация.

446. Сохраните и загрузите на сервер все страницы, над которыми работали сегодня. Окройте в браузере главную страницу index.php, попытайтесь получить доступ на страницы с описаниями путешествий и информацией о странах.

Теперь приложение для аутентификации полностью функционирует. При попытке попасть на закрытую страницу появляется окно доступа. Если при тестировании приложения ранее была зарегистрирована учетная запись, сейчас самое время ей воспользоваться. Для тестирования также подходят адрес электронный почты osiris@allectomedia.com и пароль osiris. После получения прав доступа автоматически загрузится страница, которая была запрошена изначально.

447. При использовании PHP версии 4.2 и выше окажется, что после ввода данных доступа вместо запрошенной изначально страницы загружается главная страница. Причина заключается в том, что для работы серверной модели поведения, которая переводит посетителя на запрошенную ранее страницу, требуется включенная настройка register_globals. В PHP 4.2 настройка register_globals отключена.

448. Отредактируйте  файл: выберите php.ini, М2. Следует изменить значение настройки register_globals с off на on, после чего сайт будет работать надлежащим образом.  Сделайте так register_globals = On  

Однако настройка отключена не зря, поскольку она создает потенциальную брешь в безопасности PHP.

449. Откройте страницу index.php и в нижнюю часть навигационной панели добавьте ссылки на страницы регистрации и доступа: register.php и login.php

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