Intereting Posts
PHP Преобразование целого в Date, обратное strtotime Управление анимированными изображениями в PHP Почему не работает оператор if if с функцией get_the_category? Сверхпростой статический файл (html) кэш php сайта Использовать php для задания заданий cron в Windows SQLSTATE Неизвестный сервер MySQL MySQL 'mysql1.alwaysdata.com:3306' (2) Сброс нового пароля, токен стал пустым Проблема в создании нового контроллера в Zend Framework 2 (ZF2) Администратор Django как функция в PHP Поисковый запрос PHP xpath Используя DOMDocument, можно ли получить все элементы, которые существуют в пределах определенной DOM? Zend_Session / Zend_Auth случайно генерирует сообщение об ошибке ps_files_cleanup_dir: opendir (/ var / lib / php5) не удалось: разрешение отклонено (13) Я не нахожу ошибки. Этот код хорошо работает. Обновите мои данные отлично. Но 1 ошибка показывает Кодирование строки как UTF-8 с спецификацией в PHP Просмотр фрагментов страницы с помощью PHP

PHP-сессии Войти с помнить меня

Ive получил систему регистрации / входа в PHP, используя PHP Sessions, которая работает отлично, я хочу, чтобы пользователь имел возможность отмечать меня, а затем они остаются в системе навсегда или по крайней мере неделю или что-то в этом роде.

Я предполагаю, что мне нужно сохранить cookie и проверить, я был смущен тем, что мне действительно нужно хранить в cookie. Если я сохраню идентификатор пользователя или имя пользователя, то не может ли кто-то просто использовать поддельный файл cookie для просмотра данных других пользователей?

Любое продвижение приветствуется.

Related of "PHP-сессии Войти с помнить меня"

Небольшой пример того, что я часто использую

function setSession($username,$password,$cookie=null){ // Other code for login ($_POST[]....) // $row is result of your sql query $values = array($username,$this->obscure($password),$row['id']); $session = implode(",",$values); // check if cookie is enable for login if($cookie=='on'){ setcookie("your_cookie_name", $session, time()+60*60*24*100,'/'); } else { $_SESSION["your_session_name"] = $session; } } 

Все, что вам нужно сделать, это расширить файл cookie сеанса PHP. Следующий пример расширяет файл cookie на 30 дней:

 $params = session_get_cookie_params(); setcookie(session_name(), $_COOKIE[session_name()], time() + 60*60*24*30, $params["path"], $params["domain"], $params["secure"], $params["httponly"]); 

Я думаю, что по вашему вопросу безопасности вы просто обеспокоены тем, как можно легко взломать ценности. Файлы cookie PHP-сессии имеют случайное значение и сохраняют его содержимое в файловой системе, поэтому вы должны быть в порядке.

После успешного входа выполните:

 $_SESSION['user_is_loggedin'] = 1; $cookiehash = md5(sha1(username . user_ip)); setcookie("uname",$cookiehash,time()+3600*24*365,'/','.yoursite.com'); 

магазин в sql:

 $sql = "UPDATE `users` SET `login_session`='$cookiehash' WHERE `user_id`='$uid'"; 

чтобы проверить, вошел ли пользователь в систему:

 function CheckCookieLogin() { $uname = $_COOKIE['uname']; if (!empty($uname)) { $sql = "SELECT * FROM `users` WHERE `login_session`='$uname'"; $_SESSION['user_is_loggedin'] = 1; $_SESSION['cookie'] = $uname; // reset expiry date setcookie("uname",$uname,time()+3600*24*365,'/','.yoursite.com'); } } if(!isset($_SESSION['cookie']) && empty($_SESSION['user_is_loggedin'])) { CheckCookieLogin(); }