Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Cистема аутентификации пользователей (blazch)
Author Message
blazch
Участник форума



Joined: 31 Jan 2004
Posts: 108
Карма: -4
   поощрить/наказать

Location: Волгоград

PostPosted: Tue Feb 03, 2004 9:11 pm ()
   Post subject: Cистема аутентификации пользователей
Reply with quote

Меня интересует система построения аутентификации пользователей (например forum.dklab.ru :
сколько присутствует зарегистрированных, сколько гостей, приветствие вошедшего пользователя ...) и режим ее работы.
Вопрос 1:
Хочется узнать не код, а принципы работы (пример: 1скрипт делает то-то, другой то-то).
И еще вопрос: Если используется в качестве БД текстовый файл, то как в нем найти данного пользователя и проверить его пароль (сталкиваюсь с проблемой: ищу, например $user = "blazch" в БД с помощью strstr(), но нахожу и "bla", и "blazch", и "blazchen"). Что я делаю не правильно?
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Wed Feb 04, 2004 5:40 pm (спустя 20 часов 29 минут)
   Post subject:
Reply with quote

blazch wrote:
Хочется узнать не код, а принципы работы
Полностью переделан механизм сессий, и одно из преимуществ это то, что если все сессии сохранять скажем в базе данных, то можно получить список активных пользователей всего-лишь посчитав количество активных сессий (...where time>".(time()-600)). Не советую так делать (хотя смотря что является целью. Для форума конечно можно)
blazch wrote:
ищу, например $user = "blazch" в БД с помощью strstr()
А "==" для кого придумали ?
Back to top
View user's profile Send private message Send e-mail
Дмитрий Эсс
Участник форума



Joined: 06 Jul 2003
Posts: 2533
Карма: 3
   поощрить/наказать

Location: Таллинн, Эстония

PostPosted: Wed Feb 04, 2004 5:44 pm (спустя 3 минуты)
   Post subject:
Reply with quote

detail.phpclub.ru/article/?group=4 - статьи не идевльные, но Вы просили принципы работы.
Back to top
View user's profile Send private message Send e-mail
blazch
Участник форума



Joined: 31 Jan 2004
Posts: 108
Карма: -4
   поощрить/наказать

Location: Волгоград

PostPosted: Wed Feb 04, 2004 9:19 pm (спустя 3 часа 35 минут)
   Post subject: Re: Cистема аутентификации пользователей
Reply with quote

Ходил по ссылке - умно, но не вдохновило: 1- уклон на MySQL (а это дорогое удовольствие), 2-много "воды". Хочу уточнить, мне надо даже не так авторизация (в смысле вход на страницу), а
blazch wrote:
сколько присутствует зарегистрированных, сколько гостей
. Может еще куда-нибудь пошлете, ссылочку дадите?
Back to top
View user's profile Send private message Send e-mail
blazch
Участник форума



Joined: 31 Jan 2004
Posts: 108
Карма: -4
   поощрить/наказать

Location: Волгоград

PostPosted: Wed Feb 04, 2004 9:28 pm (спустя 8 минут)
   Post subject:
Reply with quote

blazch wrote:
ищу, например $user = "blazch" в БД с помощью strstr()
А "==" для кого придумали ?
Я имел ввиду
function search_user($login,$pass)
                        {
                         $fp = file("users/users_db.inc.dat");
                         $count = count($fp);
                         for($i=0; $i <= $count; $i++)
                               {
                               if (strstr($fp[$i],$login) && strstr($fp[$i],$pass)) return true;
                                 else return false;
                                }
                        }

приблизительно так...
В чем глупость моей ошибки?
Back to top
View user's profile Send private message Send e-mail
blazch
Участник форума



Joined: 31 Jan 2004
Posts: 108
Карма: -4
   поощрить/наказать

Location: Волгоград

PostPosted: Wed Feb 04, 2004 9:48 pm (спустя 20 минут)
   Post subject:
Reply with quote

И вот еще вопрос как происходит аутентификация зарегистрированного пользователя, если он заходит на сайт и не вводит пароль с логином (задача без использования Cookie)?
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Wed Feb 04, 2004 9:57 pm (спустя 9 минут)
   Post subject:
Reply with quote

blazch wrote:
как происходит аутентификация зарегистрированного пользователя, если он заходит на сайт и не вводит пароль с логином (задача без использования Cookie)?
никак
Back to top
View user's profile Send private message
blazch
Участник форума



Joined: 31 Jan 2004
Posts: 108
Карма: -4
   поощрить/наказать

Location: Волгоград

PostPosted: Wed Feb 04, 2004 10:01 pm (спустя 3 минуты)
   Post subject:
Reply with quote

Странно, свои COOKIE я проверил, вашего ничего нет, но как тогда Ваш форум меня узнает автоматически
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Wed Feb 04, 2004 10:57 pm (спустя 56 минут)
   Post subject:
Reply with quote

В winXP -- файл Documents and Settings\ИМЯ_ПОЛЬЗОВАТЕЛЯ\Cookies\имя_пользователя@forum.dklab.txt

P.S. phpBB, вроде, ещё и по IP может пользователя "узнавать", но я не думаю, что это Ваш случай
Back to top
View user's profile Send private message
Дмитрий Эсс
Участник форума



Joined: 06 Jul 2003
Posts: 2533
Карма: 3
   поощрить/наказать

Location: Таллинн, Эстония

PostPosted: Wed Feb 04, 2004 11:26 pm (спустя 29 минут)
   Post subject:
Reply with quote

baev wrote:
P.S. phpBB, вроде, ещё и по IP может пользователя "узнавать", но я не думаю, что это Ваш случай
Не думаю, опасно это, если ip динамический.
Back to top
View user's profile Send private message Send e-mail
blazch
Участник форума



Joined: 31 Jan 2004
Posts: 108
Карма: -4
   поощрить/наказать

Location: Волгоград

PostPosted: Thu Feb 05, 2004 12:21 am (спустя 55 минут)
   Post subject:
Reply with quote

:-) Ну уж в XP я знаю где куки лежат, но дело в том что я под 98 сижу!!! А куки пустые (специально почистил перед заходом). На счет IP - ерунда (IP он динамический и каждый раз при выходе в инет он разный (в большинстве случаев)).
Back to top
View user's profile Send private message Send e-mail
blazch
Участник форума



Joined: 31 Jan 2004
Posts: 108
Карма: -4
   поощрить/наказать

Location: Волгоград

PostPosted: Thu Feb 05, 2004 12:24 am (спустя 2 минуты)
   Post subject:
Reply with quote

А как узнать ушел ли пользователь с страницы или все еще сидит?
И мне хотелось бы получить более исчерпывающие ответы на мои предыдущие вопросы?
Back to top
View user's profile Send private message Send e-mail
Дмитрий Эсс
Участник форума



Joined: 06 Jul 2003
Posts: 2533
Карма: 3
   поощрить/наказать

Location: Таллинн, Эстония

PostPosted: Thu Feb 05, 2004 12:33 am (спустя 8 минут)
   Post subject:
Reply with quote

blazch:
Странно, у меня (сейчас в Мозилле в cookie manager посмотрел) 6 кук сидит: похоже 3 с оригинального phpBB, а 3 - самодеятельность Дмитрия Котерова =).
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Thu Feb 05, 2004 12:37 am (спустя 4 минуты)
   Post subject:
Reply with quote

Дмитрий Эсс wrote:
Не думаю, опасно это, если ip динамический.
Дмитрий Котеров как раз обратное утверждал, а проверка IP там на самом деле есть.
(см. Имя сессии (forum.dklab.ru/viewtopic.php?p=37400))
Back to top
View user's profile Send private message
Дмитрий Эсс
Участник форума



Joined: 06 Jul 2003
Posts: 2533
Карма: 3
   поощрить/наказать

Location: Таллинн, Эстония

PostPosted: Thu Feb 05, 2004 12:41 am (спустя 3 минуты)
   Post subject:
Reply with quote

xpoint.ru/forums/programming/PHP/thread/24699.xhtml - это ответит на Ваш вопрос?
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Thu Feb 05, 2004 12:44 am (спустя 2 минуты)
   Post subject:
Reply with quote

blazch wrote:
И мне хотелось бы получить более исчерпывающие ответы на мои предыдущие вопросы?
Качайте себе phpBB и смотрите код -- там комментарии довольно подробные.
Back to top
View user's profile Send private message
Дмитрий Эсс
Участник форума



Joined: 06 Jul 2003
Posts: 2533
Карма: 3
   поощрить/наказать

Location: Таллинн, Эстония

PostPosted: Thu Feb 05, 2004 12:44 am (спустя 3 секунды)
   Post subject:
Reply with quote

baev:
Ну там наверно идёт проверка не точного ip, а подсети.
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Thu Feb 05, 2004 12:51 am (спустя 7 минут)
   Post subject:
Reply with quote

Дмитрий Эсс wrote:
Ну там наверно идёт проверка не точного ip, а подсети.
Да:
Code (php): скопировать код в буфер обмена
                        $ip_check_s = substr (www.php.net/substr)($userdata['session_ip'], 0, 6);
                        $ip_check_u = substr (www.php.net/substr)($user_ip, 0, 6);

                        if ($ip_check_s == $ip_check_u)
Back to top
View user's profile Send private message
blazch
Участник форума



Joined: 31 Jan 2004
Posts: 108
Карма: -4
   поощрить/наказать

Location: Волгоград

PostPosted: Thu Feb 05, 2004 11:33 am (спустя 10 часов 41 минуту)
   Post subject:
Reply with quote

baev wrote:
Качайте себе phpBB и смотрите код -- там комментарии довольно подробные.
Все иду смотреть...
Back to top
View user's profile Send private message Send e-mail
blazch
Участник форума



Joined: 31 Jan 2004
Posts: 108
Карма: -4
   поощрить/наказать

Location: Волгоград

PostPosted: Thu Feb 05, 2004 11:38 am (спустя 4 минуты)
   Post subject:
Reply with quote

Дмитрий Эсс wrote:
xpoint.ru/forums/programming/PHP/thread/24699.xhtml - это ответит на Ваш вопрос?
К сожалению не ответило :-). А еще поконкретней можно (только не злитесь на мою бестолковость). А phpBB - занятная вещщщщщь!!!!
Back to top
View user's profile Send private message Send e-mail
Дмитрий Эсс
Участник форума



Joined: 06 Jul 2003
Posts: 2533
Карма: 3
   поощрить/наказать

Location: Таллинн, Эстония

PostPosted: Thu Feb 05, 2004 11:43 pm (спустя 12 часов 5 минут)
   Post subject:
Reply with quote

blazch:
Конретно. 2 способа:
Quote:
Disclamer: В связи с тем, что в Вебе нет такого понятия, как присутствие на сайте, под присутствующими мы подразумеваем тех, кто запросил какую-либо HTML-страницу в течение последних десяти минут.
Quote:
Практически: храните сессии для своего сайта или в определенной папке или в БД (предпочтительней). О том как переопределить обработчики сессий читаем тут ua.php.net/manual/ru/function.session-set-save-handler.php
Back to top
View user's profile Send private message Send e-mail
Анжелика Моисеенкова
Участник форума
Banned


Joined: 23 Feb 2004
Posts: 117
Карма: 0
   поощрить/наказать

Location: Санкт-Петербург

PostPosted: Thu Mar 04, 2004 9:25 pm (спустя 27 дней 21 час 42 минуты)
   Post subject:
Reply with quote

Вот проверка логина/пасса:
Code (php): скопировать код в буфер обмена
function check_password(){
//copyright  (c) 2003  'Profile!'
$enters= false;
global (www.php.net/global) $admins_file, $enter_login, $enter_password, $admin_date, $admin_login, $admin_password, $admin_nickname, $admin_mail, $hmail, $admin_icon, $admin_access, $admin_id, $HTTP_SESSION_VARS; //

if (!isset (www.php.net/isset) ($enter_login)&&($enter_password)) {$enters = false;}
else{
$k = 0;
while ($end != 1){
list($admin_date, $admin_login, $admin_password, $admin_nickname, $admin_mail, $hmail, $admin_icon, $admin_access)=explode (www.php.net/explode)("~~", $admins_file[$k]);
        if(strtolower (www.php.net/strtolower)($admin_login)==strtolower (www.php.net/strtolower)($enter_login)&&$admin_password==$enter_password){
        $end = 1;
        $admin_id = $k+1;
        $enters = true;
        session_register (www.php.net/session_register) ("admin_date", "admin_login""admin_nickname" ,"admin_password", "enter_login", "enter_password", "admin_id", "admin_mail", "hmail","admin_access", "admin_icon");
        }
                else{
                if ($k > count (www.php.net/count)($admins_file)){$end = 1;}
                $enters = false;}
$k++;}
}
return $enters;
}
Много пузырей. Буду редактировать. Сейчас просто нету времени.
Back to top
View user's profile Send private message
Дмитрий Эсс
Участник форума



Joined: 06 Jul 2003
Posts: 2533
Карма: 3
   поощрить/наказать

Location: Таллинн, Эстония

PostPosted: Thu Mar 04, 2004 11:16 pm (спустя 1 час 50 минут)
   Post subject:
Reply with quote

Profile!:
В то, что делает код не вникал, но сразу видно, что есть привязка к register_globals - global, session_register.
Back to top
View user's profile Send private message Send e-mail
Евгений Галашин
Модератор



Joined: 29 Dec 2003
Posts: 1861
Карма: 32
   поощрить/наказать


PostPosted: Fri Mar 05, 2004 12:33 pm (спустя 13 часов 16 минут)
   Post subject:
Reply with quote

faq.phpclub.net/globals
Back to top
View user's profile Send private message
Анжелика Моисеенкова
Участник форума
Banned


Joined: 23 Feb 2004
Posts: 117
Карма: 0
   поощрить/наказать

Location: Санкт-Петербург

PostPosted: Fri Mar 05, 2004 3:54 pm (спустя 3 часа 21 минуту)
   Post subject:
Reply with quote

Дмитрий Эсс:
Постарюсь сегодня-завтра выложить правильный код с примерами. Этот был выдран из моего старооого CMS-скрипта .
Quote:
есть привязка к register_globals - global, session_register.
Вообще это минус, но почему? Чем тут жто так плохо?
Back to top
View user's profile Send private message
Анжелика Моисеенкова
Участник форума
Banned


Joined: 23 Feb 2004
Posts: 117
Карма: 0
   поощрить/наказать

Location: Санкт-Петербург

PostPosted: Fri Mar 05, 2004 3:55 pm (спустя 1 минуту 26 секунд)
   Post subject:
Reply with quote

Да, точно, суксь!
Back to top
View user's profile Send private message
Сергей Комов
Участник форума



Joined: 10 Oct 2004
Posts: 54
Карма: 2
   поощрить/наказать


PostPosted: Wed Nov 16, 2005 8:10 pm (спустя 1 год 8 месяцев 11 дней 4 часа 14 минут; написано за 1 минуту 50 секунд)
   Post subject:
Reply with quote

Можите рассказать алгоритм постраения аутентификации, на примере forum.dklab.ru, основанный на сессиях. Меня интересует как организовать работу лагочки "Автоматический вход" ?
Back to top
View user's profile Send private message Send e-mail
Ant
Сотрудник «Лаборатории»



Joined: 17 Jun 2003
Posts: 6840
Карма: 129
   поощрить/наказать


PostPosted: Thu Nov 17, 2005 1:06 pm (спустя 16 часов 55 минут; написано за 14 секунд)
   Post subject:
Reply with quote

Сергей Владимирович wrote:
Меня интересует как организовать работу лагочки "Автоматический вход" ?
Куки ставьте и всё тут.
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 412
   поощрить/наказать


PostPosted: Fri Nov 25, 2005 7:14 pm (спустя 8 дней 6 часов 8 минут; написано за 22 секунды)
   Post subject:
Reply with quote

Автоматический вход через сессии сделать нельзя. Можно сделать только через куки, сохраняя в них логин и пароль.
Back to top
View user's profile Send private message Send e-mail
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Tue Nov 29, 2005 10:37 am (спустя 3 дня 15 часов 23 минуты; написано за 1 минуту 1 секунду)
   Post subject:
Reply with quote

Дмитрий Котеров wrote:
Можно сделать только через куки, сохраняя в них логин и пароль
Дмитрий, это опечатка?
ведь человек может поверить, что в куку можно безболезненно сохранить логины/пароли
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 412
   поощрить/наказать


PostPosted: Wed Nov 30, 2005 12:05 pm (спустя 1 день 1 час 27 минут; написано за 51 секунду)
   Post subject:
Reply with quote

Ну а что тут такого-то? Иначе ведь и не сделать никак. Можно хэш пароля сохранять, конечно, но это дело не меняет - все равно злоумышленник, украв куки, сможет залогиниться.
Back to top
View user's profile Send private message Send e-mail
Struchalin
Заглянувший



Joined: 17 Nov 2005
Posts: 17
Карма: 2
   поощрить/наказать


PostPosted: Fri Dec 02, 2005 3:05 pm (спустя 2 дня 3 часа 11 секунд; написано за 3 минуты 48 секунд)
   Post subject:
Reply with quote

В продолжение темы и размышлений после прочтения статьи phpclub.ru/detail/article/sessions родился код.
Нужна база MySQL. Можно конечно использовать и файлы, но придется переделать.
Все "сброшено" в кучу, всего один файл, там же sql для создания базы...

P.S. Забыл указать, что нужна библиотека Database_Placeholder Дмитрия Котерова: dklab.ru/lib/Database_Placeholder/


login.zip
 Description:
Аутентификация и установка переменной сессии. Используем "отпечаток пальцев".

Download
 Filename:  login.zip
 Filesize:  2.83 KB
 Downloaded:  157 Time(s)

Back to top
View user's profile Send private message
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Fri Dec 02, 2005 4:03 pm (спустя 58 минут; написано за 42 секунды)
   Post subject:
Reply with quote

Struchalin, скорее всего, вам сюда PEAR::Auth (pear.php.net/manual/en/package.authentication.auth.php)
Back to top
View user's profile Send private message
Struchalin
Заглянувший



Joined: 17 Nov 2005
Posts: 17
Карма: 2
   поощрить/наказать


PostPosted: Fri Dec 02, 2005 4:11 pm (спустя 7 минут; написано за 3 минуты 10 секунд)
   Post subject:
Reply with quote

Rumata wrote:
Struchalin, скорее всего, вам сюда PEAR::Auth (pear.php.net/manual/en/package.authentication.auth.php)
Как изобретателю велосипеда? :)

Просто интересно сделать что-то руками, чтобы понять как и что работает.
Кстати, в библиотеке PEAR::Auth не используются "отпечатки", насколько я понял.
Back to top
View user's profile Send private message
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Fri Dec 02, 2005 5:34 pm (спустя 1 час 23 минуты; написано за 2 минуты 28 секунд)
   Post subject:
Reply with quote

Struchalin wrote:
Как изобретателю
ни в коем разе

каждый что-то пишет и это оказывается велосипедом.
просто, если потребуется авторизация с проверкой данных по БД - это неплохое решение, но есть и небольшой минус, завязано на PEAR::DB.
хотя можно написать самому свой "контейнер"
Back to top
View user's profile Send private message
Struchalin
Заглянувший



Joined: 17 Nov 2005
Posts: 17
Карма: 2
   поощрить/наказать


PostPosted: Fri Dec 02, 2005 8:00 pm (спустя 2 часа 26 минут; написано за 1 минуту 26 секунд)
   Post subject:
Reply with quote

Rumata
На сколько я понял, PEAR::Auth позволяет использовать не только базы дынных, но и еще различные варианты. Файлы например...
Back to top
View user's profile Send private message
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Mon Dec 19, 2005 10:28 am (спустя 16 дней 14 часов 27 минут; написано за 1 минуту 7 секунд)
   Post subject:
Reply with quote

Struchalin wrote:
позволяет использовать не только базы дынных, но и еще различные варианты
да. там поддерждивается несколько вариантов.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML