Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] COOKIE
Krisu
post
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


Napisałem skrypt, który sprawdza język przeglądarki i wybiera automatycznie język strony:

  1. <?php
  2. $language_user = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
  3. if (strstr($language_user[0], 'en')) { header ('location:./en'); }
  4. else if (strstr($language_user[0], 'de')) { header ('location:./de'); }
  5. else if (strstr($language_user[0], 'pl')) { header ('location:./pl'); }
  6. ?>


Jednak chciałem rozbudować go o możliwość zapamiętania preferencji. Chciałbym by użytkownik miał możliwość wyboru własnego języka i zapamiętania go w cookie. Wybierając język użytkownik zostaje przekierowany na stronę w postaci domena/jezyk gdzie zostaje ustawione ciasteczko:

  1. <?php
  2. setcookie('language', 'en', time() + 60*60*24*365);
  3. echo $_COOKIE['language'];
  4. ?>


Wszystko do tego momentu działa, ale gdy próbuję połączyć oba skrypty:

index.php
  1. <?php
  2. if (!isset($_COOKIE['language'])) {
  3.  
  4.    $language_user = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
  5.  
  6.        if (strstr($language_user[0], 'en')) { header ('location:./en'); }
  7.  
  8.        else if (strstr($language_user[0], 'de')) { header ('location:./de'); }
  9.  
  10.        else if (strstr($language_user[0], 'pl')) { header ('location:./pl'); }
  11.  
  12. } else header ('location:./'.$_COOKIE['language']);
  13. ?>


Problem pojawia się, w tym, że próbuje odebrać cookie na innej stronie niż ta, na której je ustawiłem. I po mimo istnienia ciasteczka, nie jest ono widziane.

Szukałem informacji na ten temat w internecie, ale nie zauważyłem wzmianki o tym, by nie można było odczytywać cookie z innej strony niż ta na której je ustawialiśmy. W jaki sposób mogę sobie poradzić z tym problemem?
Go to the top of the page
+Quote Post
nitek
post
Post #2





Grupa: Zarejestrowani
Postów: 209
Pomógł: 37
Dołączył: 27.02.2008
Skąd: Kwidzyn

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


ciastka nie możesz odczytać z innej domeny. Może robisz przekierowanie z domena.pl na www.domena.pl - tu, o ile sie nie myle, już chyba może być problem..

Ten post edytował nitek 15.03.2009, 22:17:48


--------------------
Go to the top of the page
+Quote Post
Krisu
post
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 0
Dołączył: 30.03.2006
Skąd: Żary

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


Właśnie problem polega na tym, że jest to ciągle ta sama domena, a skrypt testuje na localhost aktualnie. Dlatego nie bardzo rozumiem, to dlaczego nie chce działać :/
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Wszystko do tego momentu działa, ale gdy próbuję połączyć oba skrypty:

Działa? A cookie jest wysyłane przez przeglądarke, przy następnym żądaniu. winksmiley.jpg

Cytat
Wybierając język użytkownik zostaje przekierowany na stronę w postaci domena/jezyk gdzie zostaje ustawione ciasteczko:

Masz parametr domain, który ustawiasz na / (root), co sprawi, że ciacho będzie dostępne w ramach wszystkich podkatalogów.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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 Aktualny czas: 21.08.2025 - 20:56