Дано: Apache/2.2.6, apache-mod_auth_mysql-3.0.0, PHP 4.4.1, mysqld 5.0.45
Решения:
На изучении данного момента решения данной задачи рисуется два пути.
Первый из них заключается если нет возможности поставить дополнительный модуль apache-mod_auth_mysql к Апачу , к примеру в случае хостинга у провайдера) тогда нам поможет скриптик Симдянова И.В. "Система авторизации HTTP-Basic авторизации". О нём подробно расписано всё по данной ссылке http://www.softtime.ru/info/authorization.php.
Второй путь, владельцу сервера хостинга, дополнительно поставить модуль apache-mod_auth_mysql, благо через urpmi в Mandrive вытянулось и успешно установилось. К слову, Apache после установки модуля автоматом ребутнулся, если не заметили данного обстоятельства, не забудьте это сделать вручную.
Далее проверяем наличие модуля в конфигах апача
# grep mod_auth_mysql /etc/httpd/conf/httpd.conf
LoadModule
mysql_auth_module extramodules/mod_auth_mysql.so
Если нет такого результат, проверим
#ls /etc/httpd/modules.d/ grep mod_auth_mysql
xx_mod_auth_mysql.conf
далее идем в каталог хоста в котором нужно осуществить авторизацию, к примеру
#cd /var/www/hosts/host1.local/www/test
создадим файл .htaccess
#touch .htaccess
правим его, каму как удобней, добавив строки и не забыв заменить значение некоторых из них:
AuthName "Enter login and password"
AuthType Basic
AuthMYSQLAuthoritative on
AuthMySQLHost localhost
AuthMySQLDB DB_Name
AuthMySQLUser User_Name
AuthMySQLPassword User_Password
AuthMySQLUserTable Table_Users
AuthMySQLNameField FildNameUser
AuthMySQLPasswordField FildNamePassword
AuthMySQLPwEncryption none
Require valid-user
localhost, DB_Name, User_Name, User_Password – параметры подключения к БД,
Table_Users - соответствует названию таблицы где лежат логины и пароли к ним,
FildNameUser – название поля логинов,
FildNamePassword - название поля паролей.
Стоит отнестись с вниманием к следующему параметру AuthMySQLPwEncryption, в данном случае пароли в БД лежат в открытом виде (не самый лучший способ, знаю, как тестовая заведена была) соответственно стоял параметр none, в случае если пароли в хэше MD5, тогда так и указываем: AuthMySQLPwEncryption md5.
Список поддерживаемых хэшей данного параметра: crypt, scrambled, md5, aes, sha1.
Вот и всё, осталось обнавить страницу в Вашем браузере и протестить. =)
Описания параметров для данного модуля можно посмотреть тут:
http://modauthmysql.sourceforge.net/CONFIGURE
После успешной авторизации, пользователь и пароль передается в глобальной переменной $_SERVER.
Создадим в той же папке index.php, добавив строки
Ужасно секретная страница!
Вы тут как пользуватель
<?
print $_SERVER['PHP_AUTH_USER'];
?>
Примечание: Остался открытым вопрос, как после успешной авторизации прервать сессию пользователя по требованию клиента …
Комментариев нет:
Отправить комментарий