Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] długość życia zmeinnej sesji
pepro
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 20.09.2012

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


To mój pierwszy post na tym forum, więc witam wszystkich serdecznie. Nie jestem programistą a jedynie poszukiwaczem rozwiązania problemów więc proszę o wyrozumiałość oraz nie odsyłania do manuali, od tego zawsze zaczynam i staram się rozwiązać.
Mój problem polega na tym, że w żaden sposób nie potrafię ustawić długości życia zmiennej sesji.
Otóż ktoś, kiedyś napisał nam do warsztatu prostą 'aplikację' w php do zarządzania naszymi klientami (historia napraw, gwarancje i inne nieskomplikowane historie). Są tam do wypełniania różne pola. Po zalogowaniu się trzeba coś klikać bo jeśli tego nie zrobisz przerzuca do strony logowania. Jak się doczytałem czas życia zmiennej jest ustawiony globalnie w php.ini i jest to 1440s, czyli klasyczne 24min. Problem u nas polega na tym, że musimy zawsze pamiętać by sobie coś kliknąć aby sesja żyła. Pozostawienie komputera z częściowym wpisem i odejście powoduje, że wszystko co wpisane w pola do tego czasu idzie w kosmos przy naciśnięciu zapisz, bo wskakuje strona logowania.
Pytanie: Jak czas bezczynności czy jak to nazwać, aby sesja trwała powiedzmy 2h lub dłużej.
Na tym forum znalazłem rozwiązanie problemu przy użyciu
  1. ini_set('session.gc_maxlifetime', 7200);

Niestety jednak to nie działa. Poniżej wkleję zawartość plików (jak mi się wydaje) odpowiedzialnych za to i serdecznie Was proszę podpowiedź co jest nie tak:

index.php
  1. <? include ('conf/auth.php')?>
  2. <html>
  3.  
  4. <head>
  5. [...]

conf/auth.php
  1. <? include ('conf/functions.php');
  2. init_session();
  3. if(!isset($_SESSION['validadmin']))
  4. {
  5. header("Refresh: 0; url=login.php");
  6. exit();
  7. }
  8. ?>


conf/functions.php
  1. <?php
  2. include('config.php');
  3.  
  4. function init_session()
  5. {
  6. session_set_cookie_params(50400,"/",$_SERVER['SERVER_NAME']);
  7. ini_set('session.gc_maxlifetime', 7200);
  8. if(!isset($_SESSION['mesg_type']))
  9. $_SESSION['mesg_type']='err';
  10. }
  11. $data = date('d-m-Y');
  12. $godz = date('H:i');
  13. ?>

Linijkę 8 (czyli ini_set('session.gc_maxlifetime', 7200)) dopisałem sam bo tego nie było.

Jest jeszcze plik config.php, ale tam są tylko informacje o bazie (host, user, baza).

Cały skrypt działa prawidłowo poza tym, że święte 24min bezczynności i logowanie ponowne. Nie mam możliwości skontaktowania się z autorem. Zieniałem do testów wartość 7200 na różne, nawet 60 tak by przetestować czy po minucie wywali, niestety wywala i nie mam bladego pojęcia co i jak zrbić.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pepro
post
Post #2





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 20.09.2012

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


Na pewno to zadziała skoro tak twierdzisz.
Już widzę uśmiechnięte twarze ludzi, których nie przeniesie na strone logowania. Jest tylko jedna kwestia, nie mam pojęcia jak to zrobić i o co pytać wujka googla. Proszę więc o jakiś przykład kodu, który powinienem wkleić. Jak nadmieniałem nie jestem programistą i na 99% nigdy nie będę (choć żałuje bo to fajna przygoda).
Podrzuć proszę przykład.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 09:50