Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Opcja nie wylogowywuj mnie
DNMX
post 25.02.2022, 17:50:28
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.09.2021

Ostrzeżenie: (0%)
-----


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!
Go to the top of the page
+Quote Post
viking
post 26.02.2022, 07:08:30
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
DNMX
post 26.02.2022, 12:07:35
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 18.09.2021

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
viking
post 26.02.2022, 15:14:39
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


https://www.php.net/manual/en/session.confi...cookie-lifetime

Parametry możesz a wręcz powinieneś ustawiać samodzielnie poprzez np ini_set().

https://prophp.pl/advice/show/23/o_czym_pow...onfiguracja_php

https://www.hostwinds.com/tutorials/increas...eout-phpmyadmin


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 2.05.2024 - 22:16