Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Długość sesji, Jak określić przez kod PHP
bulimaxiu
post 26.09.2008, 11:29:22
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Witam.

Jak określić długość sesji przez kod PHP, nie przez PHP.ini?
Próbowałem
  1. <?php
  2. ?>
, ale to nie utwierdziło sesji na 10 sekund, albo przez
  1. <?php
  2. ?>
na 1 minutę, ale za każdym razem gdy po tych czasach wywoływałem wyświetlenie wartości z tabeli sesji, to się wyświetlała zamiast się nie wyświetlić. Czy oprócz obejścia typu jeśli aktualny czas > określony wcześniej to session_destroy(), nie ma nic ciekawego?

Pozdrawiam.
Sebastian
Go to the top of the page
+Quote Post
ferrero2
post 26.09.2008, 11:40:30
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 32
Dołączył: 5.08.2008
Skąd: Lublin

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


może poprzez szukaj na tym forum

http://forum.php.pl/index.php?showtopic=10...p;hl=czas+sesji

Polecam


--------------------
---------------------------
"Jeżeli trzeci dzień z rzędu nie chce Ci się pracować tzn że dziś jest ŚRODA !
Algorytmy , Programowanie , Tworzenie WWW - SPRAWDŹ
Go to the top of the page
+Quote Post
bulimaxiu
post 26.09.2008, 19:12:27
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Niestetety set_ini nie zadziałało, pozostałe to metody o których wspomniałem jako "oprócz tego".

Pozdrawiam.
Sebastian
Go to the top of the page
+Quote Post
Lion_87
post 26.09.2008, 19:38:53
Post #4





Grupa: Zarejestrowani
Postów: 850
Pomógł: 120
Dołączył: 15.02.2007
Skąd: Łódź

Ostrzeżenie: (10%)
X----


moze CIe zainteresuje to

http://www.egrafik.pl/manual-php-2006/ref.session.php
Go to the top of the page
+Quote Post
bulimaxiu
post 28.09.2008, 15:01:31
Post #5





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Czytałem ten artykuł już nieco wcześniej (google), tyle, że jakoś te komendy po prostu się nie sprawdzają, tzn. po odpowiednim zastosowaniu tych czasów sesji, sesje po przekroczeniu ustalonego czasu nadal istnieją i dane są przechowywane.
Go to the top of the page
+Quote Post
pyro
post 28.09.2008, 15:05:59
Post #6





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

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


moze dzialaja tylko masz w przegladarce te ciastka dalej i pozostaja bez zmian, po kazdej zmianie konfiguracyjnej usuwaj phpsessid z przegladarki


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
Axexis
post 28.09.2008, 15:32:24
Post #7





Grupa: Zarejestrowani
Postów: 98
Pomógł: 14
Dołączył: 13.01.2008
Skąd: Birmingham

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


A ja bym to ugryzł z innej strony. Przy tworzeniu sesji bym dodał czas ($_SESSION['twoja_nazwa'] = time()winksmiley.jpg i sprawdzałbym przed wyświetlaniem czy określony czas już nie minął.
Czyli tworzenie sesji:
  1. <?php
  2. $_SESSION['czas'] = time();
  3. $_SESSION['sesja'] = 'zawartosc tabeli';
  4. ?>

I wyswietlanie zawartosci:
  1. <?php
  2. $czas_jaki_da_sie_ogladac = 60;
  3. if($_SESSION['czas'] > time() - $czas_jaki_da_sie_ogladac)
  4. echo $_SESSION['sesja'];
  5. else
  6. echo "Czas sesji uminal!";
  7. // i mozna dodac
  8. unset($_SESSION['sesja']);
  9. ?>


--------------------
  1. root@php.pl:~# rm -fr /


be. confused
Go to the top of the page
+Quote Post
bulimaxiu
post 30.09.2008, 17:27:42
Post #8





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Dziękuję pyro, rzeczywiście po usunięciu z cookies znaku sesji zaczęło prawie dobrze chodzić session_set_cookie_params(10), ale nie na wszystkich kompach (jako Klientach) o dziwo.

Skrypt testowy:
  1. <?php
  2. #   session_cache_limiter('private');
  3. #   session_cache_expire(1);
  4.  
  5. if ($_SESSION[a] <> &#092;"a\") {
  6.         echo &#092;"nie znaleziono w sesji danej\";
  7.     $_SESSION[a] = &#092;"a\";
  8. }
  9.  
  10. echo $_SESSION[a];
  11.  
  12. # session_destroy();
  13. ?>


W IE6 działa na początku po wyczyszczeniu cache i cookies, ale na jeden raz, potem zachowuje się jakby sesji nie tracił, tylko ciągle w niej brnął. Alternatywą było session_destroy(), co wymusiło zamknięcie sesji.
FF przy odświeżaniu lub ponownym ładowaniu nie odlicza ponownie 5 sekund, tylko 5 sekund od momentu pierwszego załadowania skryptu; nie ważne że przez 5 sekund 10 razy odświeżam przez F5 lub Ctrl+F5, to liczy 5 sekund od pierwszego. Po tych 5 sekundach po otwarciu sesji powtórka z rozrywki. Po próbnej zmianie skryptu, żeby przydzielał sesjowemu "a" randa (zmiana danych tablcy) też nie odliczał od nowa tylko od pierwszego.
--------------
Czy ktoś orientuje się czy to tak ma działać?

Ten post edytował bulimaxiu 6.10.2008, 15:23:38
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: 8.08.2025 - 05:47