Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Nie widzi nowo utworzonego cookie?
Mefiuu
post 5.05.2013, 18:08:52
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


Witam. Tworzę sobie serwis, w którym będzie możliwość wyboru języka strony. Wartość będzie przechowywana w cookies. Kod przykładowy, treningowy jest taki:

  1. if(!isset($_COOKIE['language']))
  2. setcookie('language', 'pl');


sprawdzam czy istnieje cookie, jeśli nie to tworzę z językiem polskim. Jeśli istnieje to znaczy że kiedyś już język był wybrany. Później includuję w zależności od cookie plik z wersją językową. Jest problem. Mianowicie przed wejściem na stronę nie ma takiego cookie, zrozumiałe. Po wejściu na stronę zostaje ono utworzone, ale kod:

  1. include('locale/'.$_COOKIE['language'].'/index.php');


wyrzuca błędy o niemożliwości otworzenia katalogu (chociaż cookie jest utworzone). Po przeładowaniu strony, wersja językowa się wczytuje... Dlaczego 'nie zauważa' cookie przy pierwszym wejściu zaraz po utworzeniu ?

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Spawnm
post 5.05.2013, 18:20:43
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Bo tak działa cookies, to normalne wink.gif
Go to the top of the page
+Quote Post
Mefiuu
post 5.05.2013, 18:40:48
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


hmmm... nigdy nie miałem z tym styczności, dlatego nie wiedziałem smile.gif a da się to jakoś załatwić ? Bo nie chciałbym, żeby na początku użytkownika przywitały "krzaczki", bez żadnego wyjaśnienia...

@edit.

W zasadzie sobie poradziłem. Jeśli cookie nie ustawione to ustaw oraz zaincluduj polską (na razie) wersję. W przyszłości dodam sprawdzanie języka przeglądarki użytkownika i będę na początku taki język ładował. Pozdrawiam.

Ten post edytował Mefiuu 5.05.2013, 18:50:32
Go to the top of the page
+Quote Post
Aqu
post 5.05.2013, 18:52:50
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


A nie lepiej tak:
  1. if(!isset($_COOKIE['language']))
  2. {
  3. setcookie('language', 'pl');
  4. $_COOKIE['language'] = 'pl';
  5. }
Go to the top of the page
+Quote Post
Mefiuu
post 5.05.2013, 18:56:48
Post #5





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


niestety Aqu, Twój kod nie działa również, dlatego zostanę przy swoim rozwiązaniu pewnie.
Go to the top of the page
+Quote Post
Aqu
post 5.05.2013, 19:31:15
Post #6





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Fakt, sorry za wprowadzanie w błąd. wink.gif
Go to the top of the page
+Quote Post
lobopol
post 5.05.2013, 20:55:05
Post #7





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Ja bym to zrobił inaczej
  1. $language = 'pl';
  2. if(!isset($_COOKIE['language'])) {
  3. setcookie('language', 'pl');
  4. } else {
  5. $language = $_COOKIE['language'];
  6. }


+ sprawdziłbym sobie czy $language zawiera legalny język


--------------------
Go to the top of the page
+Quote Post
Mefiuu
post 5.05.2013, 22:00:01
Post #8





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


ciekawe rozwiązanie też, zobaczę co sam zdecyduję. Dziękuję wszystkim za odpowiedzi, leci 'pomógł' dla każdego. Pozdrawiam.
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: 19.07.2025 - 07:46