Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przedłużana sesja, okres trwania sesji
Najki
post 10.09.2004, 16:39:16
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


Do sedna.

Użytkownik się loguje (tworzy się sesja na 24h), przy wczytaniu każdej podstrony, sesja jest odświeżana, tak aby od ostatniej akcji użytkownika trwała 24h. Dzięki temu, regularnie odwiedzający, będą ciągle zalogowani.

Jak to zrobić? (samo przedłużanie się sesji)


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
powder
post 10.09.2004, 17:24:43
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 9.03.2004

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


proponuje ciasteczka winksmiley.jpg smaczne i kochane cookie's


--------------------
Projects CLS vs ISP Provide *.^.* 4-u TEAM *.^.* www.cyberplace.pl
Go to the top of the page
+Quote Post
Najki
post 10.09.2004, 18:21:07
Post #3





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


Też je lubię smile.gif. Chcę jednak skorzystać z sesji.
Dalej czekam na wsparcie smile.gif.


--------------------
Go to the top of the page
+Quote Post
Majdan
post 10.09.2004, 18:39:15
Post #4





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

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


W php.ini znajdź session.gc_maxlifetime i ustaw na ile sekund chcesz.


--------------------
Go to the top of the page
+Quote Post
Najki
post 10.09.2004, 20:58:17
Post #5





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


Dzięki za podpowiedź, ale to mi nie pomaga.
Nie mam własnego serwera. Jedynie moge testować to u siebie, ale na serwerze, na którym to umieszczę, nie mam dostępu do plików konfiguracyjnych, a zmiana ich też nie podobałaby się innym klientom serwera.

Podobno można ustawić czas trwania sesji bezpośrednio w skrypcie.
Jak to wszystko mam w końcu zrobić?


--------------------
Go to the top of the page
+Quote Post
q
post 10.09.2004, 22:50:39
Post #6





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 4.04.2003
Skąd: Częstochowa/Wrocław

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


jak juz o tym mowa to: ini_set" title="Zobacz w manualu PHP" target="_manual


--------------------
www.iNdS.pl - Najwieksza Amatorska Sieć Komputerowa w Polsce
www.marcinpeciak.eu - under construction
Go to the top of the page
+Quote Post
Najki
post 10.09.2004, 23:08:01
Post #7





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


OK dzięki, ALE.
Z tego co rozumiem - takie ustawienie zmieni czas trwania sesji na mojej stronie, ale wszystkich sesji. Chodzi mi o indywidualne ustawienie czasu trwania danej sesji dla każdego użytkownika osobno. Dobrze rozumiem?

Może ktoś mi doradzi jednak jak tego dokonać?


--------------------
Go to the top of the page
+Quote Post
Majdan
post 11.09.2004, 11:40:19
Post #8





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

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


Sprawdzasz switch'em jaki to jest user i ini_set()'em ustawiasz długość trwania sesji. Możesz zrobić też inne kryteria na podstawie sesja będzie miała inny czas trwania.


--------------------
Go to the top of the page
+Quote Post
anas
post 11.09.2004, 17:56:24
Post #9





Grupa: Zarejestrowani
Postów: 172
Pomógł: 0
Dołączył: 22.09.2002
Skąd: Gorzów Wlkp

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


Hej.

Session handler - napisz własny - do ustawiania czasu trwania sesji posłuży Ci funkcja gc - której argumentem jest właśnie czas trwania sesji smile.gif

Na łamach serwisu jest ciekawy artykuł dotyczący właśnie tego zagadnienia z pełną implemntacją. Zapraszam do lektury.

pozdrawiam

anas
Go to the top of the page
+Quote Post
matid
post 11.09.2004, 22:43:45
Post #10





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


  1. <?php
  2. $intExpiry = 60 * 60 * 24;
  3. session_set_cookie_params( $intExpiry );
  4. ?>
Go to the top of the page
+Quote Post
Najki
post 11.09.2004, 23:16:20
Post #11





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


@matid: jeśli użyję tego skryptu na każdej następnej podstronie, którą odwiedzi zalogowany użytkownik to odświeży czas na jaki ma być zapisana sesja? Czyli będzie ona trwała 24h od tego momentu, czy 24h od zalogowania?


--------------------
Go to the top of the page
+Quote Post
matid
post 12.09.2004, 08:53:48
Post #12





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


24h od momentu ostatniego wznowienia sesji, tzn.
Np. mamy 2 pliki. Pierwszy plik to sess1.php:
  1. <?php
  2. session_set_cookie_params( 60 * 60 * 24 );
  3. $_SESSION['test'] = 1;
  4. ?>

Natomiast drugi to sess2.php:
  1. <?php
  2. echo $_SESSION['test'];
  3. ?>


W takiej sytuacji jeśli wejdziemy na stronę sess1.php utworzymy sesję, która będzie ważna 24h od momentu ostatniego jej użycia. Natomiast jeśli po wejściu na stronę sess1.php, wejdziemy na sess2.php sesja będzie trwała 24h od odwiedzenia tej strony (sess2.php).

Z tego wynika, że jeśli chcesz tego użyć do skryptu np. logowania, wystarczy, że session_set_cookie_params umieścisz w pliku z procedurą logowania (np. login.php) a na kolejnych plikach będziesz używał normalnego session_start();
Go to the top of the page
+Quote Post
Najki
post 13.09.2004, 09:09:09
Post #13





Grupa: Zarejestrowani
Postów: 190
Pomógł: 0
Dołączył: 12.02.2004
Skąd: Poznań

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


Wielkie dzięki za pomoc!


--------------------
Go to the top of the page
+Quote Post
yavaho
post 13.09.2004, 12:02:02
Post #14





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

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


A mozna w ten sposob ustalic czas zycia kazdej sesji indywidualnie?
Mam strone na ktorej nie uzywam ciasteczek, tylko wszystko dziala na sesjach.
I dla niektorych sesji np wykorzystywanych do licznika odwiedzin chcialbym zastosowac krotki czas, a dla innych np autologin dluzszy czas zycia.


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
matid
post 13.09.2004, 13:16:45
Post #15





Grupa: Zarejestrowani
Postów: 362
Pomógł: 0
Dołączył: 18.02.2004
Skąd: Knurów

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


Cytat(yavaho @ 2004-09-13 13:02:02)
A mozna w ten sposob ustalic czas zycia kazdej sesji indywidualnie?
Mam strone na ktorej nie uzywam ciasteczek, tylko wszystko dziala na sesjach.
I dla niektorych sesji np wykorzystywanych do licznika odwiedzin chcialbym zastosowac krotki czas, a dla innych np autologin dluzszy czas zycia.

Tylko że ty do tego używasz jednej sesji i dwóch zmiennych sesyjnych o ile dobrze rozumiem. A te ustawienia tyczą się konkretnej sesji a nie konkretnej zmiennej.
Go to the top of the page
+Quote Post
yavaho
post 13.09.2004, 17:04:32
Post #16





Grupa: Zarejestrowani
Postów: 449
Pomógł: 0
Dołączył: 26.05.2004
Skąd: Nowy Sącz

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


A tak racja, zle to sprecyzowalem.

Powiedzmy ze uzywam trzech zmiennych sesyjnych:
1) zmienna do licznika odwiedzin aby zapobiec dodawaniu licznika przy odswiezaniu strony - ta zmienna powinna byc aktywna do momentu opuszczenia strony.
2) zmienna zapobiegajaca wyslaniu kilka razy pod rzad tej samej wiadomosci z formularza - tutaj mozna by okreslic czas 1-5 min.
3) zmienna tworzona po zalogowaniu sie uzytkownika i potem wykorzystywana do autologinu - jej czas by sie ustalilo na kilkanascie dni.

A wiec to chyba nie jest mozliwe? aby ustalic czas dla kazdej zmiennej sesyjnej z osobna?
Jak ten problem mozna rozwiazac w inny sposob? Oczywiscie ciasteczka odpadaja.


--------------------
Książki informatyczneKsiążki biznesowe
Warsztat: notepad hardcore
Go to the top of the page
+Quote Post
Mery
post 11.01.2005, 22:24:29
Post #17





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 18.01.2004
Skąd: Ostrów Wlkp.

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


Mi nie dziala zadna z tych metod, jest napisane ze one dzialaja tylko do czasu zakonczenia wykonywania danego skryptu wiec w tym przypadku nie ma chyba zastosowania.
Nie wiem czy mi sie dobrze wydaje czy mieszam teraz, niech mnie ktos poprawi smile.gif
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: 18.07.2025 - 04:28