Forum Webscript.Ru

Программирование => Perl => Тема начата: qwertyk от 28 Мая 2003, 14:09:43

Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 28 Мая 2003, 14:09:43
Ребят, помогите пожалуйста, я никогда не делал запароленных областей, поэтому даже не представляю с чего начать.

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

Я программу-то саму представляю как написать. Она просто сравнивать слова должна и если совпадут - то пересылать, так? Я вот только не представляю как запаролить директорию и привязать ее к программе. И чтоб сделать так, чтобы в закрытую область например вот так попасть нельзя было набив адресной строке: http://www.server.ru/zakritayaoblast/fail.html

Сервер - Апаче.

Вот. Поиском по форуму пользовался ничего не нашел. В книгах тоже нет. Помогите пожалуйста или на мысль натолкните...
Название: Вход по паролю. Закрытая область.
Отправлено: NeoNox от 28 Мая 2003, 14:26:53
http://195.64.255.164/story/news.php?artc=6
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 28 Мая 2003, 14:36:40
Спасибо. Сейчас почитаю...
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 29 Мая 2003, 10:28:19
А чего делать, если мне windows не позволяет создать .htaccess  - пишет введите имя файла.
Версия Apache 1.3.26 под виндовс.
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 29 Мая 2003, 10:36:44
Все. Создал. Простите за беспокойство.
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 29 Мая 2003, 11:00:28
NeoNox, я сделал все по статье включая пункт 5.

Создал закрытую область, положил туда .htpasswd и .htaccess

Запускаю Апач, пишу http://localhost/zakrobl/1.html

А он мне выдает Internal Server Error 500 вместо окна с логином и паролем...
Название: Вход по паролю. Закрытая область.
Отправлено: NeoNox от 29 Мая 2003, 19:09:13
Что в логах Apache?
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 29 Мая 2003, 19:13:12
access.log:
127.0.0.1 - - [29/May/2003:19:13:51 +0400] "GET /zakrobl HTTP/1.1" 500 613
127.0.0.1 - - [29/May/2003:19:13:56 +0400] "GET /zakrobl/2.html HTTP/1.1" 500 613

error.log:
[Thu May 29 19:13:51 2003] [alert] [client 127.0.0.1] c:/apache/apache/htdocs/zakrobl/.htaccess: AuthName takes one argument, The authentication realm (e.g. "Members Only")
[Thu May 29 19:13:56 2003] [alert] [client 127.0.0.1] c:/apache/apache/htdocs/zakrobl/.htaccess: AuthName takes one argument, The authentication realm (e.g. "Members Only")
Название: Вход по паролю. Закрытая область.
Отправлено: NeoNox от 29 Мая 2003, 19:20:34
Что в строке AuthName в твоем .htaccess?
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 29 Мая 2003, 22:39:48
Я htpasswd.exe утилитой создал которая к апачу прилагается. Потом открыл, проверить, посмотрел - логин и закриптованный пароль через двоеточие.

Далее структура апача моего:
bin
cgi-bin
conf
htdocs
и.т.д

в htdocs лежит папка manual (руководства к апачу вроде) и куча каких-то файлов апачевских. Я сюда еще index.html положил и папку zakrobl. В папку zakrobl я положил .htaccess, несколько файлов и .htpasswd. .htpasswd я положил туда, чтобы не сперли, т.к. запароленная директория же...

Содержание .htaccess:

AuthUserFile /htdocs/zakrobl/.htpasswd
AuthGroupFile /dev/null
AuthName Protected Area
AuthType Basic

require valid-user


попробовал переложить .htpasswd в /bin
AuthUserFile /bin/.htpasswd
Все-равно не работает и окон для ввода пароля не выбрасывает...
Название: Вход по паролю. Закрытая область.
Отправлено: NeoNox от 30 Мая 2003, 12:26:56
Поставь AuthName "Protected Area"
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 30 Мая 2003, 17:21:08
Бааааааааальшое человеческое спасибо :) заработало....
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 30 Мая 2003, 17:55:21
А почему он пароль опознавать не хочет?

access.log:
127.0.0.1 - gena [30/May/2003:17:46:39 +0400] "GET /zakrobl HTTP/1.1" 401 481
127.0.0.1 - gena [30/May/2003:17:46:44 +0400] "GET /zakrobl HTTP/1.1" 401 481
127.0.0.1 - gena [30/May/2003:17:46:49 +0400] "GET /zakrobl HTTP/1.1" 401 481
127.0.0.1 - gena [30/May/2003:17:46:53 +0400] "GET /zakrobl HTTP/1.1" 401 481

error.log:
[Fri May 30 17:44:10 2003] [error] [client 127.0.0.1] user gena not found: /zakrobl
[Fri May 30 17:44:25 2003] [error] [client 127.0.0.1] (2)No such file or directory: Could not open password file: /.htpasswd
[Fri May 30 17:44:25 2003] [error] [client 127.0.0.1] user gena not found: /zakrobl
[Fri May 30 17:44:31 2003] [error] [client 127.0.0.1] (2)No such file or directory: Could not open password file: /.htpasswd

.htpasswd - я создал по всем правилам. Положил в корневую директорию.
htpasswd -c c:\\apache\\apache\\.htpasswd gena
Ввел пароль.
Повторил.

AuthUserFile /.htpasswd
AuthGroupFile /dev/null
AuthName "Protected Area"
AuthType Basic


require valid-user



Запустил апаче, http://localhost/zakrobl - набил.
Выскочило окно ввести логин пароль. Ввожу логин: gena
Ввожу пароль. А он игнорирует, и после третьего окна на страницу с ошибкой Authorization Required
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn\'t understand how to supply the credentials required.

Почему не работает?
Название: Вход по паролю. Закрытая область.
Отправлено: NeoNox от 30 Мая 2003, 18:27:26
No such file or directory: Could not open password file: /.htpasswd
Что это за путь у тебя AuthUserFile /.htpasswd ???
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 30 Мая 2003, 19:58:06
Я поправил на AuthUserFile .htpasswd
(объясни пожалуйста, почему /перед папкой ставится относительно корня, а перед файлом нет - /htdocs/1.html верно, а /.htaccess - нет?)
Название: Вход по паролю. Закрытая область.
Отправлено: qwertyk от 31 Мая 2003, 17:58:19
а ладно, сам понял.