Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: система авторизации

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dadli
Отправлено: 17 Ноября, 2011 - 16:03:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




допустим человек зарегистрировался на саите, потом он прошол авторизацю, и нажал кнопку "запомни мне", на странице авторизации проверям, ага, такои логин и парол сушествует в базе, всо ок, включаем сесию, а кукисов називаем например "cookiename", а значение даиом например логин етого ползователя. тоест так:

потом кажди раз, когда ползовател заходит на саите, на кажди странице проверяется через скл-запроса:

Спойлер (Отобразить)


если значение кукисов сушествует в базе, то ползовател авторизован,
если нет, говорим ему: "ви не авторизовани"


ето так происходит? тоест особенно интересует скл на каждои странице оправдано? или нужно по другому?
буду очен благароден за люби ответ.
 
 Top
Bio man
Отправлено: 17 Ноября, 2011 - 16:19:00
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




mysql_query("SELECT id FROM users WHERE login = '".$_COOKIE['cookiename']."' ");
и вообще зачем такая проверка если ты сессии используешь? бери id (или другая информация о том вошел ли пользователь) пользователя из сессии, проверяй ее на правильность, если все ок то говорим что пользователь вошел, если проверку не прошла (не установлена, 0, false итд) то даем форму авторизации
 
 Top
dadli
Отправлено: 17 Ноября, 2011 - 16:29:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




Bio man
Цитата:
и вообще зачем такая проверка если ты сессии используешь? бери id (или другая информация о том вошел ли пользователь) пользователя из сессии


когда человек закроет браузер и потом снова откроет, сесия то уже не сушествует да? как забрать данние из сесии ?
 
 Top
Данил_123
Отправлено: 17 Ноября, 2011 - 16:31:19
Post Id


Участник


Покинул форум
Сообщений всего: 1026
Дата рег-ции: Июнь 2011  
Откуда: rostov


Помог: 9 раз(а)




dadli вы совместили сессии и куки..
PHP:
скопировать код в буфер обмена
  1. if($_SESSION[login]) echo "выйди";
  2. if(!$_SESSION[login]) echo "Войди";
.. Если в базе то проверять по ip-адресу.. так как вроде(так у меня) через хеш сумму


-----
http://mysitecost.ru
 
 Top
Bio man
Отправлено: 17 Ноября, 2011 - 16:56:47
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




dadli пишет:
когда человек закроет браузер и потом снова откроет, сесия то уже не сушествует да? как забрать данние из сесии ?
а что вам мешает увеличить время жизни сессии (в частности куки, которая хранит ид сессии)?
 
 Top
dadli
Отправлено: 17 Ноября, 2011 - 20:48:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




но ето не понимаю: я сохраняю в куках какоита данние да? (захешированни через несколко мд5 + соль и т.д.) потом когда ползовател заходит на саите, проверяется: если ети данние которие в куках, совпадает данних которие есть базе, включаем сесию - даиом ползувателю привилегии. ето так?
 
 Top
Bio man
Отправлено: 17 Ноября, 2011 - 21:08:50
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




dadli, нет не так. сессия сама пишет свой ИД в куку под именем PHPSESSID по умолчанию... тебе всего лишь нужно увеличить время жизни этой куки для авторизированного пользователя, например так, setcookie(session_name(), session_id(), time()+360); // 6 минут
 
 Top
dadli
Отправлено: 17 Ноября, 2011 - 23:33:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




Цитата:
сессия сама пишет свой ИД в куку под именем PHPSESSID по умолчанию.


ето так, но сервер же через какоита огрониченни времени, удаляет старие сесии
 
 Top
Bio man
Отправлено: 18 Ноября, 2011 - 11:21:11
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




dadli, если бы не удалял, у тебя через какое то время проста дисковое пространство бы закончилось... если нужно увеличить время, правь в php.ini опцию session.gc_maxlifetime
 
 Top
Itan
Отправлено: 18 Ноября, 2011 - 14:26:22
Post Id


Частый гость


Покинул форум
Сообщений всего: 199
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




dadli пишет:
если ети данние которие в куках, совпадает данних которие есть базе, включаем сесию


У меня вот как сделано:
Чел зашел на сайт. Если нет кук, то показываем ему форму логина. Если все правильно ввел, то записываем некую строку в сессию. А если он еще и галочку поставил "запомнить", то попутно ставим ему куку. А затем на страницах проверяем только наличие сессии, и если она есть, значит он авторизован, значит не надо делать дополнительные запросы в бд.
 
 Top
dadli
Отправлено: 18 Ноября, 2011 - 15:34:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 416
Дата рег-ции: Май 2011  
Откуда: тифилис


Помог: 5 раз(а)




харашо понял, спасибо всем за ответах
 
 Top
De-Luxis
Отправлено: 18 Ноября, 2011 - 19:05:10
Post Id



Новичок


Покинул форум
Сообщений всего: 40
Дата рег-ции: Янв. 2009  


Помог: 1 раз(а)




Цитата:
харашо понял, спасибо всем за ответах

учи Русский.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB