Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Różne sesje i cookie w zakładkach Google Chrome
Krokodyl
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 22.05.2003
Skąd: Kłodzko / Wrocław / Droszków ...

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


Witam.

Mam dziwny problem z Google Chrome.
W dwóch plikch index.php i admin.php sa tworzone sesje.
Po wylistowaniu tablic we wspomnianych plikach i nawet wielokrotnym odświezeniu,

zakładka index.php wyświetla z tablicy $_SESSION
Array ( [ile] => 12 )

zakładka admin.php wyświetla z tablicy $_SESSION
Array ( [logo] => ok )

To samo z tablicą $_COOKIE.

W Firefox i Opera zakładki widza wszystkie zmienne z tablic globalnych.
Array ( [ile] => 12 [logo] => ok )
Wygląda to jakby Chrome traktował zakładki jak osobne okna/przegladarki tudziesz osobne tablice sesji dla kart?

Ktoś wie o co chodzi z tym Chromem? (IMG:style_emoticons/default/oneeyedsmiley02.png)

Liczę na Waszą pomoc.

Ten post edytował Krokodyl 28.10.2013, 23:22:59
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Jakbyś jeszcze przedstawił mechanizm tworzenia zmiennych sesyjnych?

Próbowałeś coś takiego? Plik index.php:

  1. $_SESSION['ile'] = 50;
  2. var_dump($_SESSION);


Plik admin.php:

  1. $_SESSION['logo'] = 'dupa';
  2. var_dump($_SESSION);


I przejdź teraz z indexu do admin i zobacz co się wyświetli.

Dodatkowo porównaj session_key() na stronie index i admin.

Ten post edytował b4rt3kk 28.10.2013, 23:23:41
Go to the top of the page
+Quote Post
Krokodyl
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 22.05.2003
Skąd: Kłodzko / Wrocław / Droszków ...

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


Zmienne sa tworzone tak jak podałeś.

Zrobiłem jak napisałeś i mam taki wynik po logowaniu

  1. array(2) { ["ile"]=> string(2) "12" ["logo"]=> string(2) "ok" } array(2) { ["ile"]=> string(2) "12" ["logo"]=> string(2) "ok" }


po przejściu do index.php faktycznie widać w tablicy $_SESSION obie zmienne.

Mam dwa pytania
1. Jak 'załadować' zmienne do $_SESSION bez 'printowania' [ przez var_export() ? ]
2. Dlaczego Chrome wymaga takiej specjanej troski? Trochę to chore. Reszta przeglądarek, których używam czyta tablie $_SESSION bez takich zabiegów.

Ten post edytował Krokodyl 28.10.2013, 23:56:41
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Domyślam się, że tworzysz zmienne sesyjne bez wystartowania sesji? To raczej reszta przeglądarek nie trzyma standardów w tym zakresie, skoro przechowuje zmienne, mimo braku zainicjowania sesji. Przedstaw swój pierwotny kod.
Go to the top of the page
+Quote Post
Krokodyl
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 22.05.2003
Skąd: Kłodzko / Wrocław / Droszków ...

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


Cytat(Krokodyl @ 29.10.2013, 00:55:23 ) *
Zmienne sa tworzone tak jak podałeś.

Napisałem to wyżej.

Czyli
  1. $_SESSION['ile'] = 12;
  2.  
  3. // i po logowaniu w login.php
  4. $_SESSION['logo'] = 'ok';

Po co miałbym używać sesji bez jej wcześniejszej inicjacji?
W obu plikach sesja startuje w pierwszej lini z require('cfg.php')

To samo jest z $_COOKIE.
Jedna zakładka widzi swoje zmienne inna swoje. Jakbyś używał dwóch przeglądarek w dwóch plikach.
Ten sam schemat co w $_SESSION.

Jak to wytłumaczysz dla Google Chrome?
To jest pytanie kluczowe.

Ten post edytował Krokodyl 29.10.2013, 01:13:26
Go to the top of the page
+Quote Post
jackraymund
post
Post #6





Grupa: Zarejestrowani
Postów: 217
Pomógł: 21
Dołączył: 10.06.2011
Skąd: Głogów

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


Też miałem problemy ze startem sesji z innych plików, też nikt mi nie odpowiedział.
Dokładniej to importowałem klase z pliku, w niej włączałem session_start lecz odczyt w innych miejscach był niemożliwy.
Alternatywą stało się użycie przed każdą funkcja wymagajaca sesji, session_start() i na koncu session_write_close()
Spróbuj przed session_start przestawić ustawienia
  1. session_set_cookie_params(3600*24*4,"/",'domena.pl'); // na 4 dni
  2. ini_set("session.gc_maxlifetime", 3600*24*4);


Cytat
Mam dwa pytania
1. Jak 'załadować' zmienne do $_SESSION bez 'printowania' [ przez var_export() ? ]
2. Dlaczego Chrome wymaga takiej specjanej troski? Trochę to chore. Reszta przeglądarek, których używam czyta tablie $_SESSION bez takich zabiegów.

1. Załadować, czyli ustawić zmienną? "$_SESSION['ile'] = 12;", dodatkowo polecam do var_dumpa wyprintować tag <pre> i po </pre> zamienia PHP_EOL na <br>(taki mała pomoc ;p)
2. Zawsze to firefox był specjalnej troski ze względu że nie jest komercyjnym projektem. Jakie zabiegi masz na myśli?
3. Powiedz mi jaki masz serwer? Nie przypadkiem lighttpd?
Go to the top of the page
+Quote Post
Krokodyl
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 22.05.2003
Skąd: Kłodzko / Wrocław / Droszków ...

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


ZNALAZŁEM!

Mój bład! (IMG:style_emoticons/default/facepalmxd.gif)
Ładowałem cfg.php (gdzie jest start sesji) przez require_once() i zmieniłem na require()

Wygląda na to, że narobiłem niepotrzebnego zamieszania.
Ale kilka interesujących rzeczy się nauczyłem!

Dziękuje za pomoc.
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.08.2025 - 18:33