Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Opcja nie wylogowywuj mnie
Forum PHP.pl > Forum > Przedszkole
DNMX
Hej
Mam w formularzu logowania dodatkowe pole - nie wylogowywuj mnie (id=remember-me). Kod PHP:
  1. <------> if(isset($_POST['remember-me'])) {
  2. <------><------>$sq = "INSERT INTO `sessions` (`id`, `hash`, `uid`, `expire`, `user_agent`, `last_ip`) VALUES (NULL, '$sessionhash', '$user[uid]', NOW() + INTERVAL 14 DAY, '$ua', '$ip')";
  3. <------> } else {
  4. <------><------>$sq = "INSERT INTO `sessions` (`id`, `hash`, `uid`, `expire`, `user_agent`, `last_ip`) VALUES (NULL, '$sessionhash', '$user[uid]', NOW() + INTERVAL 1 HOUR, '$ua', '$ip')";
  5. <------> }

Do MySQLa dodają się wpisy z odpowiednim terminem expire (z datą za dwa tygodnie) ale i tak po godzinie przekierowuje do formularza logowania. Gdzieś mi świta, że trzeba jeszcze ustawić setcookie(14*24*3600) czy coś w tym stylu ale nie pamiętam tego kawałka kodu i nie mogę się go dogooglować. Czy ktoś mnie nakieruje na właściwe tory? Dzięki!
viking
Tam gdzie masz isset daj $time = 14 * 24 * 3600.
Potem w https://www.php.net/setcookie zgodnie z dokumentacją ustaw 3 parametr na time() + $time
DNMX
Właśnie czytałem tę dokumentację i nie wiem, co dać jako pierwszy i drugi parameter. Jedyne ciasteczko, z jakiego korzystam to PHPSESSID które zgodnie z tym co pokazuje przeglądarka, nigdy nie expiruje.

Edit: Wczoraj doczytałem i Apache2 (a włąściwie garbadge collector) domyślnie po 1440 sekundach wywala dane sesyjne po stronie serwera. Zmieniłem session.gc_maxlifetime w /etc/php/7.3/apache2/php.ini io jak na razie od wczoraj mnie nie wylogowało.

Edit2: Podobnie miałem z PHPmyadminem i nadal mam. Po czasie widnieje komunikat " You have been automatically logged out due to inactivity of 1440 seconds. Once you log in again, you should be able to resume the work where you left off. "

Czy tam trzeba coś jeszcze ustwaić? Orientuje się ktoś może z Was?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.