Иллюстрированный самоучитель по PHP

Авторизация средствами Web-сервера

Создав файл .htaccess, загрузите программу для создания файла паролей и поработайте с нею. После этого загрузите оба файла на свой сайт: .htaccess – в закрываемую папку, а файл с паролями – в соответствии с прописанным в .htaccess путем к нему (рис.8.1).

Иллюстрированный самоучитель по PHP › Авторизация доступа › Авторизация средствами Web-сервера
Рис. 8.1. Пароль на папку средствами web-сервера? Достаточно двух файлов – .htaccess и .htpasswd…

Вот и все! Теперь при попытке запроса любого ресурса из защищенной папки (в том числе и картинок, включенных в другие страницы тэгом < img…>) посетителю будет выдан стандартный запрос логина и пароля (рис. 8.2). Если логин и пароль совпадают с хранящимися в файле паролей (по умолчанию есть три попытки ввода), то доступ разрешается, если нет – средствами web-сервера выводится соответствующее сообщение.

Иллюстрированный самоучитель по PHP › Авторизация доступа › Авторизация средствами Web-сервера
Рис. 8.2. Запрос на вход в папку

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

Использовать данный способ удается не всегда – администрация сервера иной раз не позволяет это делать посетителям, да и программа для создания файла паролей не всегда под рукой. Однако средства РНР позволяют обойтись без применения файлов .htaccess.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.