в настоящее время им используется сеанс для входа в систему пользователя. но когда я закрою браузер и снова открою его, мне нужно снова войти в систему. как вы keeo пользователь вошел в систему, скажем, 2 недели.
это через куки?
Да. Вы используете файлы cookie для реализации функции автоматического входа в систему (или «помните меня»).
Этот поиск Google или результаты поиска SO должны указывать на правильное направление.
Итак, вы хотите вариант «Запомнить меня на этом компьютере»? Вот язык-агностик, как вы можете это сделать:
cookie_id
и user_id
. При необходимости добавьте cookie_ttl
и ip_lock
. Названия столбцов говорят сами за себя, я думаю. cookie_id
длинный, уникальный, труднодоступный ключ, который представляет cookie_id
и сохранит его в БД вместе с user_id
. Также сохраните это как значение cookie cookie с указанным именем cookie. Например, remember
. Дайте печенью долгую жизнь, например, один год. cookie_id
связанное с именем файла cookie. Если он есть, и он действителен в соответствии с БД, затем автоматически войдите в систему пользователя, связанного с user_id
и снова user_id
возраст печенья. Что касается рисков безопасности, если ключ длинный и достаточно смешанный (по меньшей мере 30 смешанных символов), тогда шансы на грубое форсирование входа незначительны. Далее вы, вероятно, уже поняли, для чего должен использоваться дополнительный столбец ip_lock
. Он должен представлять IP-адрес пользователя. В конечном итоге вы можете добавить дополнительный флажок «Заблокировать вход в этот IP-адрес (только если у вас есть статический IP-адрес)», чтобы сервер мог использовать IP-адрес пользователя в качестве дополнительной проверки.
И что, если кто-то убьет значение cookie от пользователя без блокировки IP? Что ж, против этого не так много. Живи с этим. «Помни меня» – это забавно для всех форумов, и уловки аккаунтов не повредили бы там, но я бы, конечно же, не использовал его для панелей администратора и таких веб-страниц, которые управляют серверными вещами.
Это ведь довольно прямо. Удачи.
Прочтите это: http://www.php.net/manual/en/session.configuration.php
Необходимым параметром является session.cookie_lifetime
. Файлы сеансов cookie (например, те, которые не имеют жизни) удаляются при закрытии браузера. Если вы хотите, чтобы сеансы оставались живыми дольше, установите этот параметр в php.ini
, httpd.conf
или .htaccess
. Возможно даже с ini_set
Изменить: на самом деле вы можете использовать эту функцию:
session_set_cookie_params (86400*30); session_start()
86400 * 30 – 30 дней.
См. Здесь: http://www.php.net/manual/en/function.session-set-cookie-params.php
Да, вы должны сделать это с помощью файлов cookie. Вот ручная запись: http://php.net/manual/en/features.cookies.php
Альтернативно, вы можете взглянуть на эту функцию: http://php.net/manual/en/function.session-set-cookie-params.php . Он позволяет изменять параметры cookie сеанса, такие как его срок службы …