Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Własny system sesji
radziopoke
post
Post #1





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

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


Stworzyłem stronę na której wykorzystuję sesje php SESSION. Lecz jak wiadomo, niektóre serwery nie przetrzymują za długo danych sesji mimo że ciasteczko nadal istnieje (przedłużone o kilka dni do przodu). Dlatego pomyślałem o stworzeniu własnego systemu sesji opartego na plikach.
Polegał by on na tym, że przy logowaniu tworzone byłoby ciasteczko z wygenerowanym ID. Po czym został by stworzony na serwerze w odpowiednim folderze plik o nazwie danego ID z nie którymi danymi użytkownika(plik w formie PHP). Gdy serwer znajdzie plik o danym ID z ciasteczka dołączyłby go do skryptu. W taki sposób nie byłbym ograniczony długością trwania sesji po stronie serwera, a zarazem nie musiałbym wywoływać kolejnego zapytania do bazy MySQL. Co myślicie o takim pomyśle sesji (jakieś za, a nawet przeciw są jak najbardziej wskazane (IMG:style_emoticons/default/biggrin.gif) ), czy może macie jakieś inne pomysły, bo aktualnie zastanawiam się jeszcze nad taką zmianą.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
404
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 22.05.2011

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


Tak działa system sesji wybudowany w PHP.
Go to the top of the page
+Quote Post
johny_s
post
Post #3





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


Jak już chcesz sam robić własną obsługę sesji to akurat bym uciekał z plików na rzecz bazy/memcache/redis
Go to the top of the page
+Quote Post
kartin
post
Post #4





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

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


Nie trzeba kombinować z ciasteczkami, PHP ma mechanizmy umożliwiające własną implementację sesji - session_set_save_handler(). Nie trzeba bać się bazy danych, zamiast plików użyłbym właśnie jej.
Go to the top of the page
+Quote Post
by_ikar
post
Post #5





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


http://www.php.net/manual/en/session.configuration.php <- zainteresuj się szczególnie gc_maxlifetime, gc_divisor, gc_probability i jak zrozumiesz na jakiej zasadzie działa garbage collection w php, to będziesz mógł zwiększyć czas żywotności takiego pliku.

EDIT: na szybko nawet taki temat już istnieje: http://forum.php.pl/index.php?showtopic=183188 od 3 lat.

Ten post edytował by_ikar 16.06.2014, 21:09:28
Go to the top of the page
+Quote Post
radziopoke
post
Post #6





Grupa: Zarejestrowani
Postów: 125
Pomógł: 14
Dołączył: 2.06.2010

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


Wszyscy polecają bazę danych, a ja chcę ograniczyć trochę ilość danych w bazie oraz by działało to dość szybko (w końcu zapytanie do bazy też chwilę zajmuje).
Zmiany w gc_maxlifetime, gc_divisor, gc_probability też raczej nie są mi na rękę. Czytając, niektóre tematy (nawet na tym forum) widać, że nawet te zmiany nie zawsze pomagają. Bo to też wszystko zależy od serwera (dostępu do pliku php.ini oczywiście nie mam). Dlatego pomyślałem nad własnym dość prostym systemie. Bo większych zmian bym nie miał (zmiana zmiennych SESSION na tablicę zapisaną w pliku, a zamiast session_start (sprawdzenie czy dany plik istnieje i w razie czego go dołączyć)).
Go to the top of the page
+Quote Post
johny_s
post
Post #7





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


no to użyj memcache/redis jeśli masz taką możliwość
myślisz że dostęp do pliku będzie szybszy? a połączone z bazą i tak masz pewnie inicjowane na stronie zawsze, więc jedno zapytanie więcej mu nie zaszkodzi
Go to the top of the page
+Quote Post
Damonsson
post
Post #8





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Jak nie masz takich możliwości na serwerze, to jest to jakieś wyjście. Ale czy jest sens się bawić w coś takiego? Gdzie na każdym normalnym serwerze, możesz to sobie prosto konfigurować. Dla mnie sztuka dla sztuki, ale poza tym przeciwwskazań nie widzę.
Go to the top of the page
+Quote Post
by_ikar
post
Post #9





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Jeżeli koniecznie chcesz przedłużyć życie sesji, a ustawienia sesji nie sprostają wymaganiom projektu, to regeneruj taką sesje. Nie wiem czemu niektórzy na siłę chcą pisać swoją obsługę sesji na plikach, pomimo że ta wbudowana w php jest całkiem przyjemna.
Go to the top of the page
+Quote Post

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: 23.12.2025 - 19:59