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]   

> Описание: Объясните суть работы ф-ции Запомнить меня при авторизации
Ыыы
Отправлено: 01 Декабря, 2008 - 15:09:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Июль 2008  
Откуда: Россия, Хабаровск


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




Я делаю так, если пользователь отметил эту функцию при авторизации, ставлю ему куки с зашифроманными логином и паролем. Там все ровно, с солью :) Потом пишу скрипт, который проверяет, если нету авторизации, но есть эти куки, я их извлекаю, сравниваю с базой и если все совпадает, авторизую пользователя. Но почему-то не робит.

Код работы с куками:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.   if((!isset($_SESSION['auth']['flag']) || $_SESSION['auth']['flag'] == 0) && isset($_COOKIE['name']) && isset($_COOKIE['pass']) &&
  4.      $_COOKIE['gf-name'] != '' && $_COOKIE['gf-pass'] != '') {
  5.  
  6.      $username_hash = mysql_escape_string($_COOKIE['gf-name']);
  7.      $password_hash = mysql_escape_string($_COOKIE['gf-pass']);
  8.      
  9.      $query = "SELECT * FROM `users`
  10.               WHERE `u_name_hash` = '".$username_hash."' AND
  11.               `u_password` = '".$password_hash."'
  12.               LIMIT 1";
  13.      $sql = mysql_query($query);
  14.      $rows_count = mysql_num_rows($sql);
  15.      if($rows_count == 1) {
  16.        $res = mysql_fetch_array($sql);
  17.            // тут всякие параметры сессии
  18.      }
  19.   }
  20.  
  21. ?>


$_SESSION['auth']['flag'] - это флаг, что пользователь авторизован (1), и если нет (0) или не существует
 
 Top
Champion Супермодератор
Отправлено: 01 Декабря, 2008 - 15:37:10
Post Id



Активный участник


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


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




1) Не работает когда - когда по кукам или по сессиям или всегда?
2) Вот такие вот вопросы:
-Вы храните в куках логин и пароль зашифрованные, а в базе данных тоже? или как вы сравниваете?
 
 Top
Ыыы
Отправлено: 01 Декабря, 2008 - 15:51:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Июль 2008  
Откуда: Россия, Хабаровск


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




Все заработало. Спасибо за поддержку :)

У меня в базе хранится хэш логина и хэш пароля, вдобавок к самому логину. При авторизации, сравниваются не имя пользователя, а его хэш.
 
 Top
valenok Модератор
Отправлено: 01 Декабря, 2008 - 22:02:35
Post Id



Здесь могла бы быть ваша реклама


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


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




А зачем хэш логина ?


-----
Truly yours, Sasha.
 
My status
 Top
Ыыы
Отправлено: 02 Декабря, 2008 - 10:35:15
Post Id



Частый гость


Покинул форум
Сообщений всего: 169
Дата рег-ции: Июль 2008  
Откуда: Россия, Хабаровск


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




А зачем его открытым держать в куках? Ну в принципе что открытый, что закрытый ничего не меняет... Но че-то в лом уже переделывать Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB