Россия, Москва, РЭА им. Плеханова, 2004 |
Аутентификация пользователей
Создание файла application.cfm (только пользователям ColdFusion)
Одной из функций серверной модели поведения Log In User (Регистрация пользователя) в случае успешного доступа является создание переменной сессии. Проблема заключается в том, что по умолчанию область видимости сессии отключена, а, следовательно, страница доступа не будет работать. Для активации управления сессиями в приложении ColdFusion требуется просто создать новый файл ( application.cfm ) и ввести в него единственную строку кода.
-
Создайте новую страницу. В режиме Code (Код) удалите со страницы весь код, в том числе теги HTML, XML и прочие.
Файл application.cfm не является простой веб-страницей, но при создании он должен быть пустым.
-
В первой строке введите следующий код:
<cfapplication sessionmanagement="yes" setclientcookies="yes" name="newland_tours" sessiontimeout="#CreateTimeSpan(0, 0, 20, 0)#">
Тег <cfapplication> эффективно создает приложение и обеспечивает его работу. В нем содержится несколько атрибутов, многие из которых не-обязательны. Единственным обязательным атрибутом является name, значением которого может быть любое имя, присвоенное приложению. Остальные атрибуты, присутствующие в приведенном коде, активируют управление сессиями, позволяют создавать файлы cookie и задают время окончания сессии.
Как можно понять из кода, атрибут sessiontimeout, задающий период времени, содержит функцию CreateTimeSpan(). Эта функция имеет четыре параметра, соответствующих количеству дней, часов, минут и секунд. Таким образом, в данном случае значение sessiontimeout равно 20 мин. Другими словами, если пользователь не проявляет активности на сайте в течение 20 мин или покидает сайт и не возвращается в тот же промежуток времени, все переменные сессии, связанные с этим пользователем, удаляются. На практике это означает, что посетителю придется снова вводить данные доступа.
-
Сохраните файл application.cfm , закройте и загрузите на сервер.
После этого можно тестировать созданное приложение. Как говорилось выше, рекомендуется проверить реакции приложения на различные ошибки в заполнении формы.
Активация управления сессиями (только пользователям PHP с Windows)
Когда PHP устанавливается с настройками по умолчанию, управление сессиями включено. Когда код PHP действительно начинает использовать сессии, он сохраняет информацию о производимых посетителем операциях в текстовом файле. Этот текстовый файл устанавливается во время установки PHP или, по крайней мере, должен. К сожалению, в некоторых версиях PHP для Windows по умолчанию присутствует неправильный путь к этому файлу. В результате появляются неприятные сообщения об ошибках (см. рис. вверху следующей страницы).
Если при тестировании страницы login.php сообщение об ошибке не появляется, значит, все в порядке и следует перейти к разделу "Ограничение доступа на страницы".
Если присмотреться к сообщению об ошибке более внимательно, станет очевидно, что страница пытается открыть файл с неправильным путем, – что-то вроде /tmp\sess_sess_6002c7a1f3cba0838a25d6e86e596b15, 0_RDWR). Путь необычен тем, что начинается с косой черты ( / ), в то время как для записи пути для Windows применяется символ обратной косой черты ( \ ). Скорее всего, эта ошибка происходит из PHP для Unix, поскольку все пути в Unix-системах (в том числе, и в Mac OS X) обозначаются косыми чертами. Но хуже всего то, что папки, поиск которой проводит сценарий ( tmp ), не существует.
Исправить эту проблему относительно просто. Для этого требуется выполнить два шага:
- изменить .ini -файл, в котором указан путь, используемый PHP для подключения к каталогу сессии;
- создать каталог, на который будет указывать .ini -файл.
-
Найдите файл, расположенный по адресу C:\windows\php.ini . Дважды щелкните на нем, чтобы открыть его в программе NotePad (Блокнот).
В файле содержится множество указаний по настройке PHP. Как известно, в Unix наиболее распространенным интерфейсом является не диалоговое окно или Мастер, а текстовый файл.
-
При помощи функции поиска (при выполнении команд Edit\Find [Правка\Найти]) найдите надпись session.save_path . В той же строке найдите путь, определяющий расположение каталога для сохранения данных.
Все строки, в начале которых присутствует точка с запятой, закомментированы. В большинстве таких строк содержатся инструкции и описания. Таким образом, скорее всего, первый найденный экземпляр session.save_path будет содержаться в составе комментария, а не в самом коде.
В нужной строке после разыскиваемого экземпляра указан путь. Путь может отличаться от указанного на рисунке. Тем не менее, проблема заключается именно в нем.
-
Измените путь так, чтобы он соответствовал указанной записи:
C:\php-[номер_версии]-Win32\temp\
Этот адрес следует ввести без изменений, но вместо [номер_версии] нужно задать номер используемой версии PHP.
Если версия PHP неизвестна, следует перейти в каталог C:\ и посмотреть имя папки, в которой хранятся файлы PHP. Как правило, в имени папки содержится и номер версии.
-
Сохраните и закройте файл php.ini.
Информация о месте хранения данных сессии будет обновлена.
-
При помощи значка Apache, расположенного на панели задач, остановите и снова запустите Apache.
При этом информация из файла php.ini. будет перезагружена, и новые данные вступят в силу.
-
Откройте окно Windows Explorer (Проводник) (или другой менеджер файлов), перейдите в папку C:\php-[номер_версии]-Win32\ и убедитесь, что внутри нее содержится папка под названием temp.
Если такой папки не существует, следует ее создать.