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 :: Версия для печати :: Проверка IP и браузера пользователя
Форумы портала PHP.SU » » Вопросы новичков » Проверка IP и браузера пользователя

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

1. Арикус - 10 Декабря, 2015 - 02:53:09 - перейти к сообщению
Для проверки, что логин и пароль пользователя сохранён в сессии на том же компьютере и браузере, на котором и вводился, формируется и сверяется следующая переменная:
PHP:
скопировать код в буфер обмена
  1. if (!empty($_SERVER['HTTP_CLIENT_IP'])) $userIP = $_SERVER['HTTP_CLIENT_IP'];
  2.         elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) $userIP = $_SERVER['HTTP_X_FORWARDED_FOR'];
  3.                 else $userIP = $_SERVER['REMOTE_ADDR'];
  4. $_SESSION['token'] = md5 ($userIP.$_SERVER["HTTP_USER_AGENT"].$_SESSION['login'].'***');

Проверки проходят нормально, но часто, если страница простаивает несколько часов, после очередной отправки формы эта проверка не проходит. В чём может быть причина?
2. popover - 10 Декабря, 2015 - 08:53:47 - перейти к сообщению
Арикус, время жизни сессии ограничено, соответственно, она умирает при некотором простое.
3. Арикус - 10 Декабря, 2015 - 13:42:49 - перейти к сообщению
Если бы умерла вся сессия, всплывала бы другая ошибка. Дело именно в этой переменной.
4. Мелкий - 10 Декабря, 2015 - 13:55:27 - перейти к сообщению
Значит, изменились исходные данные для md5.
Скорей всего IP стал другой.
5. Flash_PR - 10 Декабря, 2015 - 14:20:11 - перейти к сообщению
Значит что то изменилось при хешировании. Выведи все данные при авторизации и сам хеш. Потом выведи все данные когда форму отправляешь и хеш. Увидишь что поменялось.

 

Powered by ExBB FM 1.0 RC1