У меня есть система входа в систему для моего сайта, детали пользователя, которые хранятся в базе данных, являются userid (уникальными для каждого пользователя и идентификатора), адресом электронной почты (уникальным), отображаемым именем (не уникальным), паролем и членами .
Теперь, что я должен хранить в куки? Я думал о сохранении только идентификатора пользователя в файле cookie с датой истечения срока действия, а затем, если пользователь пересматривает мой сайт после регистрации проверки файла cookie и заносит его в журнал (какой вид не подходит мне) и уничтожает файл cookie если он решает выйти из системы.
* Небольшое объяснение также будет очень полезно. благодаря
Вы можете только сохранить идентификатор пользователя в cookie, если вы подписываете его с помощью секретного ключа, который только ваши приложения знают. В противном случае пользователь может изменить cookie на что угодно и войти как кто-то другой. Итак, если вы хотите сохранить идентификатор пользователя, сохраните также хэш идентификатора пользователя с помощью секретного ключа (в идеале с помощью HMAC ), и когда вы хотите зарегистрировать их, вычислите один и тот же хеш и сравните его с хешем из файла cookie. Другое решение – создать случайный токен, сохранить его в базе данных и использовать в cookie. Если он длинный и случайный, очень мало шансов, что кто-то угадает токен другого человека.
PHP имеет встроенное управление сеансом, которое делает именно то, что вы ищете:
http://us.php.net/manual/en/book.session.php
Я бы не рекомендовал хранить user_id в cookie. Вместо этого вы можете создать уникальный токен и связать токен с пользователями в своей базе данных, а также проверить и регенерировать токен по каждому запросу. Опять же, это немного избыточно, потому что управление сеансом уже встроено в PHP.
PHP '$ _SESSION делает это за вас. Вы можете даже написать свой собственный класс сеанса, если вам нравится полный контроль.
Небольшой учебник можно найти здесь: http://www.tizag.com/phpT/phpsessions.php
Вот небольшой пример использования mysql для хранения сеансов вместо php default (файлы в / tmp): http://www.hawkee.com/snippet/2018/
Просто добавьте cookie, срок действия которого истекает до 2 дней, или количество дней, которое вы хотите запомнить, и сохраните файл cookie.