Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: разработка для Web > авторизация на сайте


Автор: rcdimon 9.9.2004, 15:55
Здравствуйте уважаемые кодеры! Я пишу сайт на CGI. И хочу сделать авторизацию. Что бы можно было зарегиться а потом при входе вводить и входить в основную часть, а после этого можно было бы уже без проблем ходить по всему сайту. Можно конечно скинуть юзеру на комп куку, но у многих они не работают, сайт расчитан на ламаков, поэтому надпись типа "Включите куки файлы" им не о чем не скажет. Как тогда определять вводил ли этот юзер уже пароль или нет?

Автор: GoodBoy 9.9.2004, 16:13
проще всего использовать апачевскую авторизацию через .htaccess

Автор: HalkaR 9.9.2004, 18:04
GoodBoy, не сказал бы что проще, не везде дадут такую возможность.

Автор: korob2001 9.9.2004, 18:34
Помоему, тебе нужны сессии.

Автор: GoodBoy 10.9.2004, 09:54
HalkaR
Практически все хостинги разрешают использование .htaccess. Платные - вообще все!!! Да и зачем изобретать велосипед, если есть возможность воспользоваться хорошим отлаженным механизмом??

:-))))

Автор: HalkaR 10.9.2004, 14:03
GoodBoy
всежки не везде, проще реализовать сессии.

Автор: GoodBoy 10.9.2004, 15:00
Цитата(HalkaR @ 10.9.2004, 15:03)
проще реализовать сессии

А надежнее ли???

Автор: HalkaR 10.9.2004, 15:21
Цитата(GoodBoy @ 10.9.2004, 15:00)
Цитата(HalkaR @ 10.9.2004, 15:03)
проще реализовать сессии

А надежнее ли???

Надежность в простоте biggrin.gif

Вобщем, rcdimon, уточните есть ли у вас доступ до .htaccess и базы данных?

Автор: rcdimon 11.9.2004, 08:30
Спасиба за то что проявили интерес к моей теме. У меня платный хостинг и есть базы данных и даже не одна. А на счет .htaccess не знаю. Но я не умею работать с базами данных. sad.gif

Автор: Secandr 11.9.2004, 10:53
rcdimon День, два и БД станут родными.

Автор: rcdimon 11.9.2004, 16:23
Очень надеюсь. Ведь у меня уже немаленький опыт в программировании. И не только на ПЕРЛ. То есть на перл его почти нет smile.gif Вот только не знаю где найти по MySQL инфу? Не подскажешь?

Автор: Secandr 11.9.2004, 16:50
В разделе БД на форуме есть хорошие примеры и статья пегаса.

Автор: GoodBoy 13.9.2004, 10:13
rcdimon
Раз хостинг платный, то 100% разрешены .htaccess!!!

Автор: rcdimon 14.9.2004, 15:55
Я често скажу, что не знаю что эти файлы могут делать. По моему что то типа запрещать доступ к паролированным директрориям на сервере. Но я видимо не совсем точно сказал что мне нужно. Я знаю где и как будут храниться пароли, меня интересует другое.

Допустим пользователь зашел на сайт, ввел пароль и вошел в систему. Но когда он перейдет на другую страницу по ссылке или откроет этот же сайт паралельно в другом окне то как я узнаю что это он же.?
Может можно как то записывать логин и пароль в текст HTML документа, который бы смотрел пользователь, но тогда его необходимо шифровать, что бы никто не вошел бы так просто, сохранив эту страница на комп и изменив соответсвующие записи и ссылки на глобальные. Но как тогда принимать эти данные? В общем ничего не понятно.
Хотя можно записывать пользователю только логин, а при входе в систему на сервере создавался бы файл в котором записано, какие логины сейчас в OnLine. Но так можно и с другова компа зайти паралельно с тем юзером. Хотя хранить пароль в тексте, отправляемому пользователю не так уж и опасно, ведь что бы его подобрать это нужно его действительно переберать. А это можно сделать и на странице входа в систему.

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

Автор: GoodBoy 14.9.2004, 16:25
Если юзер авторизовался на сайте через .htaccess, то на какую страницу этого сайта он бы не переходил ты везде сможешь через $ENV{REMOTE_USER} узнать его логин.

Автор: Guest 17.9.2004, 13:39
Спасибо, но как тогда их авторизировать через этот htaccess?
И что это такое вообще?

Автор: GoodBoy 17.9.2004, 14:06
Файл .htaccess должен лежать в том каталоге, который нужно запаролить! Содержимое его в общем случае такое:
Код
   AuthName "Административный раздел"
   AuthType Basic
   AuthUserFile /home/site1/htdocs/adminpart/.htpasswd
   require valid-user

где:
AuthName - текст, который будет выведен на панели ввода логина/пароля
AuthType - тип авторизации
AuthUserFile - полный физический путь к файлу с паролями
require - требуемый пользователь (в данном случае любой пользователь, который введет правильный логин и пароль)

файл .htpasswd выглядит так:
Код
karma:Df5948uhfg9e7
slider:Gt545GHTG4gfw
ada:jFE456tgd4gdg
и содержит записи вида логин:зашифрованный_пароль
зашифрованный пароль можно получить из обычного Перловой фeнкцией crypt:
my $crypt_pass = crypt('пароль', 'ключ');,
где ключ - ДВА произвольных символа (лучше из латинского алфавита)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)