![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pewien problem z obsługą sesji. Otóż po zalogowaniu użytkownika chciałbym liczyć ilość otwartych przez niego stron. Mam napisaną klasę do obsługi sesji. Wszystko generalnie działa ok, nie przeładowuje żadnych funkcji do obsługi sesji. Po prostu w konstruktorze klasy wywołuje session_start(); i pobieram odpowiednie zserializowane tablice, zapisuje je w zmiennej składowej. W destruktorze mam funkcję serializujacą i zapisującą w sesji dane z obiektu. Klasa jest singletonem więc nie można utworzyć więcej jak jednego obiektu. Więc jeśli mam tą zmienną i ją inkrementuje to zamiast o 1 jej wartość zwiększa się o 2. Co jest najzabawniejsze, jeśli w testowym skrypcie na serwerze, po prostu wywołałem session_start() to ta wartość zwiększała się o 1, mimo iż w samym skrypcie nigdzie się do niej nie odnosiłem. Klasa, trochę uproszczona zostawiłem tylko istotne fragmenty kodu
Jeśli po zainicjowaniu całej sesji tą klasą w innym pliku wpiszę session_start(); print_r($_SESSION); - to 'prevPages' zapisany w sesji będzie się inkrementował, dlaczego? Ktoś wie o co chodzi?? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jakbyś pokazał więcej kodu...
Po pierwsze zawsze "zeruj" zmienne. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 24.04.2005 Ostrzeżenie: (0%) ![]() ![]() |
Tylko co więcej? W żadnym innym miejscu na chwile obecną nie korzystam z tej zmiennej.
przy deklaracji tablicy mam $this->_arUserVars = array(); co ciekawe z testowania wczoraj. jak odpalam ten skrypt nie includujący w żaden sposób klasy, zresztą cały plik test.php to to tak jak wczoraj napisałem po odświeżaniu zmienna się sama inkrementuje, natomiast co ciekawe jak wpisze do konstruktora swojej klasy die(); to nagle w tym skrypcie sesja ginie. nie rozumiem jak to jest połączone?? [EDIT] znalazłem winowajcę :] ale nie mam pomysłu jak to naprawić jeszcze (IMG:style_emoticons/default/smile.gif) .htaccess
jeśli zakomentuję drugą regułę to wszystko z tą inkrementacją zaczyna działać dobrze, jak przerobić te reguły żeby wszystko dobrze działało?? Cały czas szukam rozwiązania, ale nie wiem czemu ta reguła wywołuje plik index.php dwa razy?? Sprawdziłem to już najprostszym skryptem poza budowaną przeze mnie aplikacją, przy odświeżeniu strony jej licznik zwiększa się dwa razy, nie tylko przy użyciu sesji, ale również gdy zapisuje go w pliku. W związku z tym wszystko wskazuje na tego .htaccessa Ma ktoś jakiś pomysł co tam jest źle? [EDIT] Chwilowo rozwiązałem to w taki sposób:
jednak sposób jest taki trochę... jak ktoś wie jak to lepiej rozwiązać, to proszę o odpowiedź. Chciałbym ponowić swoje pytanie, ponieważ dalej działam na tym rozwiązaniu tymczasowym. Ten post edytował wnovak 24.08.2011, 07:57:53 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 14:19 |