Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z sesja
podziak
post 7.07.2006, 20:26:40
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 10.09.2005

Ostrzeżenie: (20%)
X----


Witam mam kolejny problem.
Postanowilem jezyk oprzec o sesje

  1. <?php
  2. if (!isset($_SESSION['lang'])) { // jeśli zmienna nie jest zarejestrowana
  3. $_SESSION['lang'] == "pl"; // przypisz jej początkową wartość
  4. } else { // jeśli jest zarejestrowana
  5. $_SESSION['lang'] == "en"; // zwiększ jej wartość
  6. }
  7. ?>


no ale to chyba nie jest dobre rozwiazanie bo jak chce zmienic jezyk to nadal mi zostaje w zmiennej sesyjnej stary jezyk.

Jak zapisac ze przy zmianie jezyka zapisuje mi nowa wartosc do zmiennej sesyjnej lang??

Bo chce zrobic skrypt wielojezykowy i caly czs mi sie sypie

dzieki wielkie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Cysiaczek
post 7.07.2006, 21:17:35
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Używasz operatora '==' co oznacza porównanie - aby przypisac musisz użyc operatora '='. Proponuję manual na początek, bo twój błąd jest błędęm takim samym, jak każdy błąd ortograficzny języka polskiego.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
dopy
post 8.07.2006, 10:49:39
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

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


IMO Twoje rozwiązanie jest troche bez sensu smile.gif Raz, tak jak napisał @Cysiaczek - błędem jest używanie == , a dwa to czy aby napewno taki sposób ma sens ? Ten kod sprawdzi czy jest coś przypisane do sesji, jak nie to ustawi na polski, jak tak to ustawi na angielski... a co jesli sesja bedzie ustawiona, ale na jezyk polski ? Wtedy system zmieni na angielski smile.gif Wiec moim zdaniem wystarczy sprawdzac czy sesja jest ustawiona, jak nie to nadawać jej wartość PL. Pozdrawiam smile.gif


--------------------
Błyśnij, nim zgaśniesz...
Go to the top of the page
+Quote Post
Cysiaczek
post 8.07.2006, 11:03:04
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




  1. <?php
  2. $_SESSION['lang'] = "pl"; // przypisz jej początkową wartość
  3.  
  4.  // tu raczej nie sesja, a POST lub GET powinno być, bo nie ma sensu zmiany zmiany języka języka pakowac do sesji
  5. if (isset($_GET['changeMyLanguage'])) {
  6.  
  7. switch ($_SESSION['lang']) {
  8. case 'pl': $_SESSION['lang']='en';break;
  9. case 'en': $_SESSION['lang']='pl';break;
  10. }
  11. }
  12. ?>


Tak troszkę łopatologicznie, ale chociaż działa :|

Ten post edytował Cysiaczek 8.07.2006, 11:04:16


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
dopy
post 8.07.2006, 11:12:35
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

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


Hmm ale Twój kod ograniczy się do zmiany między dwoma językami, wykluczając obsługę większej ilości (tak mi się zdaje). Poza tym nie powinno być przypadkiem:

  1. <?php
  2. if(empty($_SESSION['lang'])) $_SESSION['lang'] = "pl"; // przypisz jej wartosc jak nie ma zadnej
  3. ?>


Ja bym przerobił Twój kod następująco:
  1. <?php
  2. if(empty($_SESSION['lang'])) $_SESSION['lang'] = "pl"; 
  3.  
  4. if (isset($_GET['NewLanguage'])) {
  5. switch ($_GET['NewLanguage']) {
  6. case 'pl': $_SESSION['lang']='pl';break;
  7. case 'en': $_SESSION['lang']='en';break;
  8. case 'de': $_SESSION['lang']='de';break;
  9. //itd...
  10. }
  11. }
  12. ?>


Nie testowałem, ale chyba działa smile.gif

Ten post edytował dopy 8.07.2006, 11:13:49


--------------------
Błyśnij, nim zgaśniesz...
Go to the top of the page
+Quote Post
Cysiaczek
post 8.07.2006, 11:15:25
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Tak. Pamietaj, że nie podaję Ci gotowego kodu, a jedynie ograniczam się do przykładu. Całą otoczkę to juz sobie musisz sam wykombinować.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
dopy
post 8.07.2006, 11:28:53
Post #7





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 25.07.2005

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


A no i @podziak pamietaj zeby nie dawac userom nigdy wolnej reki typu:
  1. <?php
  2. if (isset($_GET['NewLanguage'])) {
  3. $_SESSION['lang']=$_GET['NewLanguage'];
  4. }
  5. ?>

Bo "dowcipnych" nie brakuje smile.gif (pewnie o tym wiesz ale zawsze lepiej napisać smile.gif )


--------------------
Błyśnij, nim zgaśniesz...
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 - 09:49