оставить пользователя вошедшим в систему, когда он снова зайдет на ту же страницу?

в настоящее время им используется сеанс для входа в систему пользователя. но когда я закрою браузер и снова открою его, мне нужно снова войти в систему. как вы keeo пользователь вошел в систему, скажем, 2 недели.

это через куки?

Да. Вы используете файлы cookie для реализации функции автоматического входа в систему (или «помните меня»).

Этот поиск Google или результаты поиска SO должны указывать на правильное направление.

Итак, вы хотите вариант «Запомнить меня на этом компьютере»? Вот язык-агностик, как вы можете это сделать:

  1. Создайте таблицу БД с по меньшей мере cookie_id и user_id . При необходимости добавьте cookie_ttl и ip_lock . Названия столбцов говорят сами за себя, я думаю.
  2. При первом входе в систему (если необходимо только с опцией «Запомнить меня»), cookie_id длинный, уникальный, труднодоступный ключ, который представляет cookie_id и сохранит его в БД вместе с user_id . Также сохраните это как значение cookie cookie с указанным именем cookie. Например, remember . Дайте печенью долгую жизнь, например, один год.
  3. При каждом запросе проверьте, вошел ли пользователь в систему. Если нет, проверьте значение cookie 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 сеанса, такие как его срок службы …