Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wiele jezyków na stronie i przekazywanie w sesji
Wescik
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Mrągowo

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


Witam!
Chciałem zrobić wielojęzykową stronę tzn. polski, angielski, niemieski i rosyjski.
I chciałem to zrobić za pomocą tablicy(tłumaczenia) w plikach i sesji, która bedzie pamiętała wybrany język. Chodzi o to, że nie wiem dlaczego nie chce przekazać sesji na inny plik w moim przypadku testowym to jest index2.php.

Mam takie pliki:
index.php index2.php
  1. <?php
  2.  
  3.  
  4. if ($_GET['language'] == 'pl') {
  5. $_SESSION['language'] = 'pl';
  6. include (&#092;"./lang/pl.php\");
  7. }else if ($_GET['language'] == 'en') {
  8. $_SESSION['language'] = 'en';
  9. include (&#092;"./lang/en.php\");
  10. }else if ($_GET['language'] == 'de') {
  11. $_SESSION['language'] = 'de';
  12. include (&#092;"./lang/de.php\");
  13. }else if ($_GET['language'] == 'ru') {
  14. $_SESSION['language'] = 'ru';
  15. include (&#092;"./lang/ru.php\");
  16. }else {
  17. $_SESSION['language'] = 'pl';
  18. include (&#092;"./lang/pl.php\");
  19.  
  20. }
  21.  
  22. echo 'To jest nazwa sesji:<b> '.$_SESSION['language'].'</b> <br />';
  23. echo 'Tu jakiś tekst:<b>  '.$lang['omnie'].' - '.$lang['galeria'].' - '.$lang['pobierz'].'</b><br />';
  24.  
  25. echo '<a href=\"./index2.php\">NEXT >></a> <br />'; //tu jakos powinno przenies sesje na drugi plik?
  26.  
  27. echo 'Zmiana jezyka: <br />
  28. <a href=\"./index.php?language=pl\">polski</a><br />
  29. <a href=\"./index.php?language=de\">niemiecki</a><br />
  30. <a href=\"./index.php?language=en\">angielski</a><br />
  31. <a href=\"./index.php?language=ru\">ruski</a><br />';
  32. ?>

oraz pliki z jezykami pl.php, de.php, en.pl oraz ru.php
i one wyglaaja tak:
[php]
<?php
$lang['omnie']='O mnie';
$lang['galeria']='Galeria';
$lang['pobierz']='Pobierz';
?>

No i moj problem polega na tym, ze startuje odpowiednia sesja, ale nie jest przekazywana do nastepnego pliku (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) . Proszę o pomoc
ewentualnie moze to mozna jakoś ładniej zrobić?

Pozdrawiam

Ten post edytował Wescik 21.07.2005, 14:46:01
Go to the top of the page
+Quote Post
AxZx
post
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


ja to zrobilem tak:

  1. <?php
  2.  
  3. if(isset($_SESSION['jezyk'])){
  4.  $jezyk = $_SESSION['jezyk'];
  5. }else{
  6.  $jezyk = 'pl';
  7. }
  8. include($jezyk.'/'.$jezyk.php);
  9.  
  10.  
  11. ?>


a wczesniej oczywiscie wrzucic to trzeba do sesji:)
w kazdym pliku zrob cos takiego i juz

Ten post edytował AxZx 21.07.2005, 13:50:18
Go to the top of the page
+Quote Post
Wescik
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Mrągowo

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


Sorki ni jak mi to nie działa sesja sie zaczyna ale nie przekazuje (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) . Cos gdzies zle robie. Może mi wylistowac jakieś dwa pliki, które beda miedzy sobą przesyłać sesje wersji jezyka i ją ładować ? bo mi w jednym pliku wszystko sie tłumaczy ale jak klikne na link przejscia do innej strony to niestety nie zapamietuje jezyka:(
Dzięki
Pozdrawiam
Go to the top of the page
+Quote Post
AxZx
post
Post #4





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


ale sesje sa trzymany w plikach, albo w bazie gdzies tam na serwerze
wiec obojetne w ktorym pliku u ciebie one powinny sie wyswietlac

moze nie dales session_start() w drugim pliku (na samej gorze)?
Go to the top of the page
+Quote Post
Wescik
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Mrągowo

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


Zrobiłem to tak:

pliki index.php i index2.php:

  1. <?php
  2.  
  3.  
  4. if(isset($_SESSION['jezyk'])){
  5.  $jezyk = $_SESSION['jezyk'];
  6. }else{
  7.  $jezyk = 'pl';
  8. }
  9. include(&#092;"./$jezyk.php\");
  10.  
  11. // Wykorzystanie
  12.  
  13. //sprawdzanie czy sesja jest przekazywana dalej
  14. echo '<a href=\"./index2.php\">NEXT</a> <br />';
  15.  
  16. //powinno pokazac sesje , jezli zmienie na $jezyk to mi wyswietla calyczas 'pl'
  17. echo 'To jest nazwa sesji:<b> '.$_SESSION['jezyk'].'</b> <br />';
  18. //tu powinny byc teksty w zaleznosci od jezyka
  19. echo 'Tu jakiś tekst<b> '.$lang['tekst1'].' - '.$lang['tekst2'].' - '.$lang['tekst3'].'</b><br />';
  20.  
  21. //zmiana jezyka
  22. echo 'Zmiana jezyka: <br /> 
  23. <a href=\"./index.php?jezyk=pl\">polski</a><br />
  24. <a href=\"./index.php?jezyk=de\">niemiecki</a><br />
  25. <a href=\"./index.php?jezyk=en\">angielski</a><br />
  26. <a href=\"./index.php?jezyk=ru\">rosyjski</a><br />';
  27.  
  28. ?>

I nic nie dziala. łąduje odrazu jezyk polski (tak w sumie powinno byc). Nie wazne ktory wybiore jezyk i tak ładowany jest polski ale sesja i tak nie jest trzymana (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) .
Sprawdzałem w katalgogu sesje i plik danej sesji jest pusty? czyli wogole sesja nie dziala?. W moim poprzednim sposobie jednak zapisywał wartosc zmiennej ale jej nie przekazywał dalej ? Nie wiem o co chodzi.


PLZ HELP

Ten post edytował Wescik 22.07.2005, 08:26:28
Go to the top of the page
+Quote Post
vala
post
Post #6





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 12.01.2005

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


a przekazujesz gdzies identyfikator sesji?
bo ja nie widze.....
Go to the top of the page
+Quote Post
AxZx
post
Post #7





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


a gdzie masz przypisanie do zmiennej sesyjnej jezyk ?
bo jezeli to jest caly kod no to nie ma tam tego.
musisz gdzies dopisac

$_SESSION['jezyk'] = 'pl';

albo inny w zaleznosci od $_GET['jezyk']
Go to the top of the page
+Quote Post
Wescik
post
Post #8





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Mrągowo

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


Dziaął ale nie do końca mianowicie sesja z index.php jest przesyłana do index2.php ale jak wezme spowrotem przejscie do index.php to gubi sesje i ładuje 'pl'.

index.php:

  1. <?php
  2.  
  3. if ($_GET['jezyk'] == 'pl') {
  4. $_SESSION['jezyk'] = 'pl';
  5. }else if ($_GET['jezyk'] == 'en') {
  6. $_SESSION['jezyk'] = 'en';
  7.  
  8. }else if ($_GET['jezyk'] == 'de') {
  9. $_SESSION['jezyk'] = 'de';
  10. }else if ($_GET['jezyk'] == 'ru') {
  11. $_SESSION['jezyk'] = 'ru';
  12. }else {
  13. $_SESSION['jezyk'] = 'pl';
  14. }
  15.  
  16. if(isset($_SESSION['jezyk'])){
  17.  $jezyk = $_SESSION['jezyk'];
  18. }else{
  19.  $jezyk = 'pl';
  20. }
  21. include(&#092;"./$jezyk.php\");
  22.  
  23. // Wykorzystanie
  24.  
  25. //sprawdzanie czy sesja jest przekazywana dalej
  26. echo '<a href=\"./index2.php\">NEXT</a> <br />'; 
  27.  
  28. //powinno pokazac sesje
  29. echo 'To jest nazwa sesji:<b> '.$_SESSION['jezyk'].'</b> <br />';
  30. //tu powinny byc teksty
  31. echo 'Tu jakiś tekst<b> '.$lang['tekst1'].' - '.$lang['tekst2'].' - '.$lang['tekst3'].'</b><br />';
  32.  
  33. //zmiana jezyka
  34. echo 'Zmiana jezyka: <br /> 
  35. <a href=\"./index.php?jezyk=pl\">polski</a><br />
  36. <a href=\"./index.php?jezyk=de\">niemiecki</a><br />
  37. <a href=\"./index.php?jezyk=en\">angielski</a><br />
  38. <a href=\"./index.php?jezyk=ru\">rrosyjski</a><br />';
  39.  
  40. ?>


Natomiast w pliku index2.php mam tak:
  1. <?php
  2.  
  3.  
  4. if(isset($_SESSION['jezyk'])){
  5.  $jezyk = $_SESSION['jezyk'];
  6. }else{
  7.  $jezyk = 'pl';
  8. }
  9. include(&#092;"./$jezyk.php\");
  10.  
  11. // Wykorzystanie
  12.  
  13. //sprawdzanie czy sesja jest przekazywana dalej
  14. echo '<a href=\"./index.php\">BACK</a> <br />'; 
  15.  
  16.  
  17.  
  18. //powinno pokazac sesje
  19. echo 'To jest nazwa sesji:<b>'.$_SESSION['jezyk'].'</b> <br />';
  20. //tu powinny byc teksty
  21. echo 'Tu jakiś tekst<b> '.$lang['tekst1'].' - '.$lang['tekst2'].' - '.$lang['tekst3'].'</b><br />';
  22.  
  23. //zmiana jezyka
  24. echo 'Zmiana jezyka: <br /> 
  25. <a href=\"./index2.php?jezyk=pl\">polski</a><br />
  26. <a href=\"./index2.php?jezyk=de\">niemiecki</a><br />
  27. <a href=\"./index2.php?jezyk=en\">angielski</a><br />
  28. <a href=\"./index2.php?jezyk=ru\">rosyjski</a><br />';
  29.  
  30. ?>

Chciałem zeby z kazdego pliku mozna było zmieniać jezyk i dodałem pierwsza cześć kodu z index.php $_GET ale wtedy wogole sesja nie przechodzi?
Nie mam pojecia jak to ma wogole działać
Założenie było takie zeby wybierajac jezyk mozna bylo latać po wszystkich podstronach i przegladac je w wybranym jezyku?

W plikach tej postac to index.php rozpoczyna sesje i wrzuca zmienna jezyka, a index2.php ja przejmuje, ale gdy nacisne 'back' to wraca do index.php i ładuje domyslny "pl"? a jak dodam GETy do index2.php to wogole nie jest przesyłana sesja w żadną strone? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Proszę o cierpliwość, dopiero sie ucze i robię jakieś głupie błędy.
Możesz mi to jakoś poprawić/naprawić?
Pozdrawiam
Go to the top of the page
+Quote Post
AxZx
post
Post #9





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


index.php
  1. <?php
  2.  
  3. switch(@$_GET['jezyk']){
  4. case&#092;"pl\":
  5. $_SESSION['jezyk'] = 'pl';
  6. break;
  7. case&#092;"en\":
  8. $_SESSION['jezyk'] = 'en';
  9. break;
  10. case&#092;"de\":
  11. $_SESSION['jezyk'] = 'de';
  12. break;
  13. case&#092;"ru\":
  14. $_SESSION['jezyk'] = 'ru';
  15. break;
  16. default:
  17. $_SESSION['jezyk'] = 'pl';
  18. break;
  19. }
  20.  
  21. if(isset($_SESSION['jezyk'])){
  22.  $jezyk = $_SESSION['jezyk'];
  23. }else{
  24.  $jezyk = 'pl';
  25. }
  26. echo '<h3>'.$jezyk.'</h3>';
  27.  
  28. // Wykorzystanie
  29.  
  30. //sprawdzanie czy sesja jest przekazywana dalej
  31. echo '<a href=\"./index2.php\">NEXT</a> <br />';
  32.  
  33. //powinno pokazac sesje
  34. echo 'To jest nazwa sesji:<b> '.$_SESSION['jezyk'].'</b> <br />';
  35. //tu powinny byc teksty
  36.  
  37.  
  38. //zmiana jezyka
  39. echo 'Zmiana jezyka: <br />
  40. <a href=\"./index.php?jezyk=pl\">polski</a><br />
  41. <a href=\"./index.php?jezyk=de\">niemiecki</a><br />
  42. <a href=\"./index.php?jezyk=en\">angielski</a><br />
  43. <a href=\"./index.php?jezyk=ru\">rrosyjski</a><br />';
  44.  
  45. ?>


index2.php
  1. <?php
  2.  
  3. switch(@$_GET['jezyk']){
  4. case&#092;"pl\":
  5. $_SESSION['jezyk'] = 'pl';
  6. break;
  7. case&#092;"en\":
  8. $_SESSION['jezyk'] = 'en';
  9. break;
  10. case&#092;"de\":
  11. $_SESSION['jezyk'] = 'de';
  12. break;
  13. case&#092;"ru\":
  14. $_SESSION['jezyk'] = 'ru';
  15. break;
  16. default:
  17. $_SESSION['jezyk'] = 'pl';
  18. break;
  19. }
  20.  
  21. if(isset($_SESSION['jezyk'])){
  22.  $jezyk = $_SESSION['jezyk'];
  23. }else{
  24.  $jezyk = 'pl';
  25. }
  26. echo '<h3>'.$jezyk.'</h3>';
  27.  
  28. // Wykorzystanie
  29.  
  30. //sprawdzanie czy sesja jest przekazywana dalej
  31. echo '<a href=\"./index.php\">BACK</a> <br />';
  32.  
  33.  
  34.  
  35. //powinno pokazac sesje
  36. echo 'To jest nazwa sesji:<b>'.$_SESSION['jezyk'].'</b> <br />';
  37. //tu powinny byc teksty
  38.  
  39. //zmiana jezyka
  40. echo 'Zmiana jezyka: <br />
  41. <a href=\"./index2.php?jezyk=pl\">polski</a><br />
  42. <a href=\"./index2.php?jezyk=de\">niemiecki</a><br />
  43. <a href=\"./index2.php?jezyk=en\">angielski</a><br />
  44. <a href=\"./index2.php?jezyk=ru\">rosyjski</a><br />';
  45.  
  46. ?>
Go to the top of the page
+Quote Post
Wescik
post
Post #10





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Mrągowo

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


OK tym razem nic nie mieszałem tylko przekopiowałem twoj kod i niestety, ale sesja nie jest przekazywana dalej (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) . U Ciebie to działa tzn. przekazje sesje w jedna i druga strone? U mnie po przeskoczeniu do drugiej stronki ładuje default czyli 'pl'.

A jeszcze jedno co powoduje dodanie @ przd zmienną $_GET?
@$_GET

Ten post edytował Wescik 22.07.2005, 11:53:59
Go to the top of the page
+Quote Post
AxZx
post
Post #11





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


uups pomylilem sie

wywal default ze switcha
bo default zrobi ze jak nie ma $_GET to wlasnie wstawia do sesji jezyk wartosc pl
wiec wywal default i bedzie dobrze

@ powoduje to ze nie wywala bledu jezeli $_GET nie jest ustawiony
Go to the top of the page
+Quote Post
Wescik
post
Post #12





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 23.03.2004
Skąd: Mrągowo

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


Wielkie dzieki działa! (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif)
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: 19.12.2025 - 18:33