Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z sesjami
tomek1908
post 26.10.2011, 22:11:57
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 10.10.2011

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


Witam,
czy macie jakiś pomysł, dlaczego sesja na mojej witrynie działa odpowiednio na Google Chrome, a na Mozilli Firefox i innych przeglądarkach nie działa?
Nadmieniam również, że sesje na tej samej witrynie na localhoscie działają bez zarzutu, tak więc problem może leżeć po stronie serwera.

Wiecie może jak zmienić ustawienia dla SESSION na serwerze?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
by_ikar
post 26.10.2011, 23:09:16
Post #2





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

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


Kod
Wiecie może jak zmienić ustawienia dla SESSION na serwerze?


http://www.php.net/manual/pl/ref.session.php cała gama funkcji, do wyboru, do koloru. Plus możesz napisać swój mechanizm sesji.

Odnośnie "nie działania sesji". To w jaki sposób przechowujesz identyfikator sesji? W ciachu? Jako phpsid (url) ?
Go to the top of the page
+Quote Post
tomek1908
post 26.10.2011, 23:36:43
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 10.10.2011

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


Dzięki za link. smile.gif

Do tej pory na serwerze robiłem session_start(); i potem wpisywałem np. do $_SESSION['u'] jakąś wartość i wszytko było OK. Teraz nagle problemy się zaczęły na serwerze zewnętrznym, ponieważ na serwerze lokalnym (localhoscie) wszystko jest ok. Zauważyłem również, że wartość session_id(); jest stała w danej sesji na localhoscie, natomiast na serwerze po każdym odświeżeniu jest zmienna. Wiesz może jak to zrobić, aby to session_id() gdzieś przechowywać, aby było niezmienna po każdym odświeżeniu?
Go to the top of the page
+Quote Post
Sephirus
post 27.10.2011, 08:19:35
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


session_id powinno być domyslnie przechowywane w ciasteczku PHPSESSID (czy jakoś tak). Coś możesz mieć pokićkane na tym serwerze zewnętrznym.

Możesz spróbować startować sesję tak:



I ogólnie poeksperymentować z session_set_cookie_params() polecam też odczyt tego co serwer daje w standardzie w session_get_cookie_params();

HTH! wink.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
tomek1908
post 27.10.2011, 16:52:09
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 10.10.2011

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


Zastosowałem:
session_set_cookie_params(0);
session_start();

Problem istnieje cały czas. Mam takie oto ustawienia pobrane za pomocą session_get_cookie_params():

lifetime => 0
path => /
domain =>
secure =>
httponly =>

lifetime => 0? Czy to oznacza, że czas życia mojej sesji wynosi 0? Dlaczego te problemy mogły wystąpić tak nagle skoro nic nie zmieniałem na swoim serwerze?
Jak mogę spowodować, aby session_id() było niezmienne? Teraz po każdym odświeżeniu ciągle się zmienia, co oznacza, że moje sesje nie działają. Chciałbym, aby PHPSESSID było przechowywane w ciasteczkach, wiecie jak to zrobić?

Pozdrawiam.
Go to the top of the page
+Quote Post
Sephirus
post 28.10.2011, 09:53:41
Post #6





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Hmm co do samego problemu to jeszcze nie mam pomysłu, ale co do lifetime = 0 to jest ok. "0" oznacza "nieskończoność" w teorii (czyli do zamknięcia przeglądarki) ;P

Hmm sam wynik session_get_cookie_params jest u Ciebie ok :/

1. Ok puść taki skrypt u siebie i zobacz czy trzyma sesje (odśwież parę razy):

  1.  


2. To samo z tym kodem:

  1. ini_set("session.use_cookies", "on");
  2. ini_set("session.use_trans_sid", "off");
  3.  


3. Jeśli nadal nic to wklej na forum wynik tego kodu po paru odświeżeniach najelpiej wklej parę treści po kolei):

  1. ini_set("session.use_cookies", "on");
  2. ini_set("session.use_trans_sid", "off");
  3. echo 'COOKIE_ID: '.$_COOKIE['PHPSESSID'].'<br/>';
  4.  
  5. echo 'SESSION_ID: '.session_id().'<br/>';



HTH :/

Ten post edytował Sephirus 28.10.2011, 10:02:22


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
tvister
post 28.10.2011, 10:21:20
Post #7





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

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


Kiedyś coś czytałem że w nazwie domeny dla utrzymania sesji w IE nie może wystąpić podkreślenie "_".
Ale pewności nie mam.

Ten post edytował tvister 28.10.2011, 10:21:50


--------------------
Kto rano wstaje ten leje jak z cebra.
Go to the top of the page
+Quote Post
tomek1908
post 29.10.2011, 14:56:43
Post #8





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 10.10.2011

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


Niestety nic nie pomogło. sad.gif

Odnośnie tego co napisał Sephirus, oto moje wyniki, które uzyskałem wykonując kod z punktu 3:

COOKIE_ID:
SESSION_ID: 3c9cbe02ab93b20dd6645f8974ba7513

COOKIE_ID:
SESSION_ID: dc24796bf4b955645a1d4807bc6f77d0

COOKIE_ID:
SESSION_ID: 3f672ae631bb9eb88e84fc26257cfb69

itd.... ciagle sie zmienialo SESSION_ID.

Coś musi być z tymi ciasteczkami $_COOKIE['PHPSESSID'], skoro nic się nie wyświetla przy COOKIES, tylko co skoro na localhoście wszystko ok działa:

COOKIE_ID: kgel86k695ak4ljl8qqtggks74
SESSION_ID: kgel86k695ak4ljl8qqtggks74

COOKIE_ID: kgel86k695ak4ljl8qqtggks74
SESSION_ID: kgel86k695ak4ljl8qqtggks74

COOKIE_ID: kgel86k695ak4ljl8qqtggks74
SESSION_ID: kgel86k695ak4ljl8qqtggks74

itd... ciagle to samo.

Pozdrawiam. Macie jeszcze jakiś pomysł? Może po prostu ciasteczka nie są zapisywane, jak je uruchomić, aby w $_COOKIE['PHPSESSID'] była jakaś wartośćquestionmark.gif
Go to the top of the page
+Quote Post
dublinka
post 29.10.2011, 18:02:41
Post #9





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Przyklad podaj jak to robisz.

generalnie sesja trzyma do zamkniecia przeglarki - jesli codzi o IE to musisz zamknac tez inne okna nie tylko to jedno.
Jakos nie chce mi sie wierzyc ze masz taki problem.Jesli niczego nie skopales w kodzie to wrzuc na inny serwer i zobacz wynik.


--------------------
Go to the top of the page
+Quote Post
tomek1908
post 30.10.2011, 12:45:41
Post #10





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 10.10.2011

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


Jak już wcześniej wspomniałem wykonuję to za pomocą kodu z punktu 3. ,który podał Sephirus:

  1. ini_set("session.use_cookies", "on");
  2. ini_set("session.use_trans_sid", "off");
  3. echo 'COOKIE_ID: '.$_COOKIE['PHPSESSID'].'<br/>';
  4.  
  5. echo 'SESSION_ID: '.session_id().'<br/>';


Na dowód sami możecie sprawdzić wyniki na dwóch serwerach. Plik index.php wyświetlany w poniższych linkach jest taki sam:

http://tmk1908.cba.pl/
http://wimperga.com/

Problemem jest brak wyświetlania wartości COOKIE ID dla przypadku serwera, na którym jest wimperga.com. Jakie ustawienia serwera mogły to zmienić?
Go to the top of the page
+Quote Post
mortus
post 30.10.2011, 13:33:29
Post #11





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Użyj phpinfo() i porównaj ustawienia związane z przechowywaniem sesji (ktoś już podał odnośnik do manuala).
Go to the top of the page
+Quote Post
Sephirus
post 31.10.2011, 09:35:41
Post #12





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Ok sprawdziłem te strony w przypadku 1szej po pierwszym wywołaniu identyfikator sesji wyświetlany jest ok, z ciasteczka tego już nie ma. (nie jest jeszcze ustawione dla PHP).

Sprawdziłem ciasteczka w przeglądarce - okazuje się że ciasteczko PHPSESSID jest ustawione i to dokładnie na tą samą wartość co session_id().

Odświeżam stronę - patrzę a sesja jest normalnie trzymana, oba identyfikatory się wyświetlają, są takie same i nie zmieniają się - wniosek:

Z mojej strony wszystko wygląda ok.

Daj znać czy coś zmieniałeś - bo jak dla mnie to działa bez zarzutu.

Co do drugiej strony http://wimperga.com/ to faktycznie coś nie gra

Serwer w ogóle nie wysyła w nagłówkach "set-cookie":

Kod
Date    Mon, 31 Oct 2011 08:38:16 GMT
Server    Apache
X-Powered-By    PHP/5.2.17
Content-Length    68
Connection    close
Content-Type    text/html


Zatem ciasteczko nie ma prawa się pojawić...

Linijka, którą ci podałem "ini_set("session.use_cookies", "on");" powinna to wymusić ale sprawdź może jak to jest w tym pliku ini.

Domyślne ustawienia to http://php.net/manual/en/session.configuration.php

Może coś tam masz pogmatwane.



Ten post edytował Sephirus 31.10.2011, 09:42:12


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
tomek1908
post 2.11.2011, 21:40:31
Post #13





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 10.10.2011

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


Usunąłem cały plik php.ini, ponieważ były tam tylko 3 linijki kodu:

  1. register_globals = 1;
  2. upload_max_filesize = 100000B;
  3. safe_mode=Off;


Zauważyłem, że nie mogę wyświetlić na serwerze funkcji phpinfo(), z kolei na localhoscie juz mogę.

Tak samo nie mogę wyświetlić żadnych wartości pokazanych tutaj: http://php.net/manual/en/session.configuration.php
oprócz session_name, session_id.

Nie wiem co mam robić. Macie jeszcze jakiś pomysł? Czemu w ogóle serwer nie wysyła w nagłókach "set-cookie" questionmark.gif

Pozdrawiam.




Go to the top of the page
+Quote Post
by_ikar
post 3.11.2011, 10:18:36
Post #14





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

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


Zwróć się z tym problemem do swojego usługodawcy, o ile to jest serwer współdzielony, gdzie nie odpowiadasz ty za oprogramowanie.
Go to the top of the page
+Quote Post
tomek1908
post 14.11.2011, 15:48:07
Post #15





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 10.10.2011

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


Problem rozwiązany, odpowiedź znalazłem w innym wątku na tym forum, choć skoro nikt nie pamiętał, że odpowiedź na ten problem został rozwiązany w innym wątku to może nawet i dobrze, że założyłem taki temat, ponieważ na pewno przyda się nam to na przyszłość:

http://forum.php.pl/index.php?showtopic=85888

Pozdrawiam i dziękuję wszystkim za pomoc. 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: 14.08.2025 - 10:54