konto usunięte

Temat: Znikająca sesja ;)

Cześć,

mam taki problem w pewnym sklepie internetowym i niestety nie potrafię go namierzyć, choć próbowałem w wielu przeglądarkach. Klienci skarżą się jednak na to.
A problem jest następujący: klient wybiera produkt i klika 'dodaj do koszyka'. Przechodzi do koszyka, gdzie ów produkt widnieje (to, co jest w koszyku, trzymane jest właśnie w sesji).
Następnie klika 'Złóż zamówienie' i pojawia się komunikat, że koszyk jest pusty. Po drodze jednak nic się dziać nie powinno, ponieważ 'Złóż zamówienie' to zwykły link. Jednak czasem sesja się czyści (tak podejrzewam).
Jaka może być tego przyczyna? Indywidualne ustawienia zabezpieczeń, czy jakiś błąd skryptu?

Pozdrawiam,
Tomek
Maciej Derewecki

Maciej Derewecki administracja i
zarządzanie
SharePoint

Temat: Znikająca sesja ;)

Zapewne błąd skryptu. Ciężko jednak cokolwiek powiedzieć po bardzo ogólnikowych informacjach, które podałeś.

Musisz się dowiedzieć w jakich sytuacjach dokładnie taka rzecz ma miejsce. Może np. dzieje się to u osób, które zamówiły kilka produktów, a później usunęły coś z koszyka.

Generalnie - zdobądź informacje od ludzi w jakich DOKŁADNIE sytuacjach ma to miejsce. Liczą się czasami najbardziej błache sytuacje, z których czasami człowiek nie zdaje sobie sprawy.
Grzegorz Skiera

Grzegorz Skiera pozycjonowanie,
marketing w
wyszukiwarkach
silence.pl

Temat: Znikająca sesja ;)

miałem podobną sytuację, dane o sesjach zapisywały się w defaultowym katalogu z sesjami php, jednakże hostingodawca ten katalog systematycznie opróżniał. Także czasami będąc zalogowany w panelu, bez powodu z niego mnie wylogowywało (co w Twoim przypadku zbiega się z "pustym koszykiem"). Zmieniłem miejsce przechowywania sesji i wszystko wróciło do normy.

konto usunięte

Temat: Znikająca sesja ;)

Zacząłbym łopatologicznie, sprawdź czy tuż przed kliknięciem linka sesja jest i że nie ma jej tuż po kliknięciu. Jeżeli sesja "znika" zawsze przy tym linku to prawdopodobnie browsujesz po sklepie:

http://www.mojsklep.pl/...

a link przekierowuje na

http://mojsklep.pl/... (bez www

(lub odwrotnie). To inny adres dla przegladarki i sesja "znika".
Waldemar Hornatkiewicz

Waldemar Hornatkiewicz Front-End
Webdeveloper

Temat: Znikająca sesja ;)

Upewnij się, czy nie używasz gdzieś zmiennych o takiej samej nazwie, jak sesyjne, bo i przy wyłączonym register_globals, $produkt potrafi nadpisać $_SESSION['produkt']. Gdyby się czyściła cała sesja, to użytkownik byłby również wylogowany, a domniemuję, że zalogowanym pozostaje.

Ew. sprawdź też, czy przy użyciu ciasteczek zamiast sesji będzie tak samo. Jeśli tak - zapewne masz jakiś babol (literówkę, czy coś) w kodzie.

Oczywiście jakiś debug z monitoringiem sesji i ciasteczek to jak najbardziej podstawowa sprawa.
Łukasz K.

Łukasz K. IT Project
Manager/Team Leader

Temat: Znikająca sesja ;)

Sprawdź też czy w pliku do którego prowadzi link "Złóż zamówienie" masz przekazywaną sesję, czy masz session_start();

Łukasz
Marcin Frątczak

Marcin Frątczak Programista PHP,
piskle.pl,
e-zwierzak.pl

Temat: Znikająca sesja ;)

pierwsze pytanie powinno brzmiec , jakiej przegladarki oni uzywaja :)

bo ie6-7 gubia sesje, nawet jak wszystko gra, i jest session start, oraz nie ma przekierowania z np. http://sklep.pl na http://sklep.pl,

jesli to sie dzieje pod ie, to szukaj w google, jest sporo info na ten temat
Maciej Derewecki

Maciej Derewecki administracja i
zarządzanie
SharePoint

Temat: Znikająca sesja ;)

Łukasz Kossakowski:
Sprawdź też czy w pliku do którego prowadzi link "Złóż zamówienie" masz przekazywaną sesję, czy masz session_start();

Łukasz

To raczej ma, bo mówił, że znika tylko czasami :)
Marcin Frątczak

Marcin Frątczak Programista PHP,
piskle.pl,
e-zwierzak.pl

Temat: Znikająca sesja ;)

pod ie wlasnie znika czasami, cholera wie czemu, ale nagle przelacza sie na nową sesje, i na danej podstronie ma sesje o identyfikatorze a, a na innej 'b'
Wojciech Sznapka

Wojciech Sznapka CTO @ STS Zakłady
Bukmacherskie

Temat: Znikająca sesja ;)

To nie wina IE tylko błąd w skrypcie. Z sesjami pracujemy długo i wykorzystujemy je intensywnie i żadnych dziwnych przypadłości w IE nie spostrzeżono...
Marcin Frątczak

Marcin Frątczak Programista PHP,
piskle.pl,
e-zwierzak.pl

Temat: Znikająca sesja ;)

hehe, ja ostatnio szukalem takiego bledu w skryptach, i okazalo sie ze to ie, zazwyczaj moze sie zdarzyc jak sie serwer zmieni.

jesli to blad inny, to pewnie taki drobny, ktory mozna latwo ominac :)

konto usunięte

Temat: Znikająca sesja ;)

Cześć,

dziękuję za wszystkie odpowiedzi i teraz kilka uwag:

1. Ja testowałem w wielu przeglądarkach, zarówno na localhoscie jak i na hostingu, niestety nigdy nie udało mi się tego błędu zobaczyć.

2. Klienci zazwyczaj wkładają jeden produkt i klikają zamów, ale problem pojawia się też (z ich opinii) gdy włoży się kolejny i dopiero wówczas zamów.

3. W kwestii zalogowania - klient nie musi być zalogowany, by złożyć zamówienie. System dopuszcza również podanie danych jednorazowo, jednak domyślam się, że gdyby klient był zalogowany, mógłby zostać 'wylogowany'.

4. Co do 'DEBUGOWANIA'. Jak napisałem - nie udało mi się tego błędu powtórzyć, ciężko więc sprawdzać, czy sesja jest przekazywana. Ale jest. I session_start() na kolejnej stronie jest również.

5. register_globals - o tym problemie nawet sam pisałem w jakimś z wcześniejszych postów więc tak, nazwa zmiennej w sesji przechowująca koszyk jest absolutnie różna od innych zmiennych.

Jedyne czego nie sprawdziłem, to czy koszyk jest z www a reszta strony bez lub na odwrót.

Gdybyście chcieli sami sprawdzić, adres strony o której piszę to: http://kateandkate.pl. Problem jest w momencie dodania produktu do koszyka i kliknięcia 'złóż zamówienie'. Jeśli się Wam uda przejść do strony z wyborem sposobu podania danych - problem Was ominął :)

Pozdrawiam,
Tomek

Edit:

I chyba właśnie pomogliście mi rozwiązać problem. Faktycznie, link do złożenia zamówienia jest bezwzględny, jednak bez www i w sytuacji, gdy klient wejdzie na stronę z www, doda produkt i klinie zamów koszyk się czyści. Genialne! :) Dzięki wielkie!Tomasz P. edytował(a) ten post dnia 16.12.08 o godzinie 14:26
Marcin D.

Marcin D. frontend & backend
developer

Temat: Znikająca sesja ;)

Marcin Frątczak:
zazwyczaj moze sie zdarzyc jak sie serwer zmieni.

Ile serwerów tyle konfiguracji. Sprawdź session.gc_maxlifetime, session.cache_expire.

konto usunięte

Temat: Znikająca sesja ;)

Pod FF bez problemu pod Operą też z IE faktycznie coś się wali

wiec polecam użyć na samym początku pliku gdzie masz sesje takie cuś:

session_start();

header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');

Na 100% rozwiązuje problem z przekazywaniem sesji w IE przynajmniej na moim serwerku :)Paweł Robert Kostecki edytował(a) ten post dnia 17.12.08 o godzinie 05:53

Temat: Znikająca sesja ;)

trochę z innej strony: zauważyłem, że FF (3.0.4) trzyma sesje czasami "za bardzo"... Mam skrypt do wylogowywania, który killuje wszystkie sesje. Chcąc powrócić do tej samej strony używam "history.back()". W IE wszystko działa prawidłowo, podczas gdy FF przywraca zmienne w zabitej sesji... Ostatecznie zmodyfikowałem "powrót" na jawne wywołanie konkretnego URLa.
Pod IE nigdy nie miałem problemów z sesjami (nie licząc kiedyś nieszczęsnego "www." przed domeną).
Jakieś pomysły?Wojciech Anders edytował(a) ten post dnia 17.12.08 o godzinie 11:55
Wojciech Sznapka

Wojciech Sznapka CTO @ STS Zakłady
Bukmacherskie

Temat: Znikająca sesja ;)

Wojciech Anders:
trochę z innej strony: zauważyłem, że FF (3.0.4) trzyma sesje czasami "za bardzo"... Mam skrypt do wylogowywania, który killuje wszystkie sesje. Chcąc powrócić do tej samej strony używam "history.back()". W IE wszystko działa prawidłowo, podczas gdy FF przywraca zmienne w zabitej sesji... Ostatecznie zmodyfikowałem "powrót" na jawne wywołanie konkretnego URLa.
Pod IE nigdy nie miałem problemów z sesjami (nie licząc kiedyś nieszczęsnego "www." przed domeną).
Jakieś pomysły?Wojciech Anders edytował(a) ten post dnia 17.12.08 o godzinie 11:55

FF nie trzyma sesji. FF trzyma tylko ciasteczko z id sesji. Jak usuniesz sesję z poziomu PHP, to choćby FF se trzymał nie wiadomo co, to i tak ci tej sesji nie przywróci.

Temat: Znikająca sesja ;)

oczywiście, że sesja jest na serwerze. Sęk w tym, że zmienne $_SESSION się nie chciały znikać. Żadne session_destroy, a nawet wpisywanie pustych wartości pod zmienne sesyjne - nie pomagało. Po history.back wszystko wraca do stanu poprzedniego.
Dlatego od niedawna należę do nielicznych zwolenników IE :)

konto usunięte

Temat: Znikająca sesja ;)

z tego co mi sie wydaje to chodzi o ten problem, ze FF nie odswieza strony po history.back(), ale wyswietla zawartosc ze swojej pamieci podrecznej. zwracano na to uwage, gdy wyszla nowa wersja przegladarki i testowano ja na systemach bankowych - po wcisnieciu WYLOGUJ mozna bylo nacisnac wstecz i zobaczyc dane ostatniej strony (co z pktu widzenia bezpieczenstwa nie powinno miec miejsca).

konto usunięte

Temat: Znikająca sesja ;)

Wojciech Sznapka:
To nie wina IE tylko błąd w skrypcie. Z sesjami pracujemy długo i wykorzystujemy je intensywnie i żadnych dziwnych przypadłości w IE nie spostrzeżono...

Ja się już raz spotkałem z takim przypadkiem. U mnie w Firefoxie, IE6/IE7 i Operze wszystko cacy, u klientki w IE6 też nie trzymało sesji, u paru użytkowników strony również.

Testowałem na każdy sposób, ale nie udało mi się znaleźć żadnego błędu w kodzie tym bardziej że tak jak mówię u mnie w IE6 na takim systemie jak systemie klientki działało, sprawdziłem też na kilku innych komputerach i też było ok.

Gdybam, że niektóre wersje IE posiadają błędy (być może ujawniają się po jakich aktualizacjach). Wszystkie testy jakie przeprowadzałem razem z klientką - przeglądarka zamknięta, wejście na konkretny URL, kliknięcie na konkretny link bez żadnych dodatkowych ruchów, więc śmiem twierdzić, że niektóre wersje IE problemy z obsługą sesji jednak mają...

konto usunięte

Temat: Znikająca sesja ;)

Problem został już rozwiązany. Być może niektóre IE mają błędy, jednak w tym konkretnym przypadku wina leżała po stronie skryptu, który z adresu www. przekierowywał na adres bez www. co jest już zupełnie inną stroną i sesja 'znikała' :)

Następna dyskusja:

4Developers - sesja PHP




Wyślij zaproszenie do