Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] ustawienie cookie bez przeładowania strony
Forum PHP.pl > Forum > Przedszkole
chrupka
Witam, mam pewien problem. Chciałam zrobić wersję językową do swojego serwisu i zrobić to tak, aby użytkownik wchodząc po raz pierwszy na moją stronę miał ustawiony język polski poprzez cookie. Zmiana języka odbywała by się poprzez zmienną $_GET['l'] po kliknięciu flagi z językiem

  1. <?php
  2. if(!isset($_COOKIE['lang'])){
  3. setcookie('lang','pl');
  4. }
  5. $l = $_GET['l'];
  6. if($l!='pl' && $l!='eng' && $l!='rus')unset($l);
  7. if($l){
  8. setcookie('lang',$l);
  9. }
  10. include_once "model/conn_".$_COOKIE['lang'].".php";
  11. ?>


Problem polega na tym, że cookie jest widoczne dopiero po przeładowaniu strony - gdy otwieram ją po raz pierwszy przeglądarka nie widzi cookie (które powinno się ustawić na początku) i wyskakuje błąd że nie ma pliku "conn_.php".
Jak to zrobić żeby cookie ustawiało się i było widoczne przy pierwszym wejsciu na stronę, tak żeby dołączał się prawidłowy plik, tzn. conn_pl.php?
Z góry dziękuje za pomoc:)
skowron-line
  1. <?php
  2. !isset($_COOKIE[lang]) ? $lang='ang' : $lang = $_COOKIE[lang];
  3. include($lang.'.php');
  4. ?>
qqrq
Z ciasteczkami tak już jest, że się ustawiają dopiero po przeładowaniu strony i nic na to nie poradzisz. Proponuję zainteresować się sesjami - to na pewno rozwiąże twój problem.
chrupka
dzięki za podpowiedźwinksmiley.jpg
myślałam, że jest może jakaś droga żeby to obejść, zwłaszcza że potrzebuje zmiany języków w aplikacji cakephp i chyba jednak skorzystam z sesji..winksmiley.jpg
Duszek
Na końcu po prostu zrob tak zamiast

  1. <?php
  2. include_once "model/conn_".$_COOKIE['lang'].".php";
  3. ?>


napisz:

  1. <?php
  2. if(!isset($_COOKIE['lang'])){
  3. include_once "model/conn_pl.php";
  4. }
  5. else {
  6. include_once "model/conn_".$_COOKIE['lang'].".php";
  7. }
  8. ?>


I po kłopocie smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.