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
Форумы портала PHP.SU :: Версия для печати :: Объясните суть работы ф-ции Запомнить меня
Форумы портала PHP.SU » PHP » Программирование на PHP » Объясните суть работы ф-ции Запомнить меня

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

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

Код работы с куками:
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) или не существует
2. Champion - 01 Декабря, 2008 - 15:37:10 - перейти к сообщению
1) Не работает когда - когда по кукам или по сессиям или всегда?
2) Вот такие вот вопросы:
-Вы храните в куках логин и пароль зашифрованные, а в базе данных тоже? или как вы сравниваете?
3. Ыыы - 01 Декабря, 2008 - 15:51:27 - перейти к сообщению
Все заработало. Спасибо за поддержку :)

У меня в базе хранится хэш логина и хэш пароля, вдобавок к самому логину. При авторизации, сравниваются не имя пользователя, а его хэш.
4. valenok - 01 Декабря, 2008 - 22:02:35 - перейти к сообщению
А зачем хэш логина ?
5. Ыыы - 02 Декабря, 2008 - 10:35:15 - перейти к сообщению
А зачем его открытым держать в куках? Ну в принципе что открытый, что закрытый ничего не меняет... Но че-то в лом уже переделывать Улыбка

 

Powered by ExBB FM 1.0 RC1