Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dziwny problem z include, sesjami i echo
Cod
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 20.03.2003
Skąd: Warszawa

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


Nieczęsto proszę kogoś na forum o pomoc, bo zawsze staram się rozwiązywać problemy sam. Z tym jednak nie mogę sobie poradzić. Nie mam zupełnie pojęcia o co chodzi.

Zacząłem tworzyć stronę, która będzie dostępna w kilku językach. Gość już na stronie głównej może wybrać sobie, w jakim języku witryna ma być wyświetlana. Klikając w odpowiedni link, tworzy zmienną $HTTP_SESSION_VARS["lang"], zawierającą wiadomość, o tym, jaki gość wybrał język. W skrypcie strony, na samym początku sprawdzane jest, czy zmienna istnieje. Jeśli nie, to przypisana jest jej wartość języka angielskiego. Następnie includowany jest plik, zawierający deklarację tablicy $lang, w której pod odpowiednimi indeksami zawarte będą przetłumaczone na dany język teksty.

To tyle tytułem wstępu. Poniżej wklejam fragment kodu, który ma wyświetlić różne tytuły dla różnych języków:

header.php
  1. <?php
  2. if(isset($HTTP_GET_VARS[&#092;"lang\"])) $HTTP_SESSION_VARS[\"lang\"]=$HTTP_GET_VARS[\"lang\"];
  3. else $HTTP_SESSION_VARS[&#092;"lang\"]=\"english\";
  4. $langdir=&#092;"lang/\".$HTTP_SESSION_VARS[\"lang\"].\"/lang_main.php\";
  5. include($langdir);
  6. // .....
  7. echo &#092;"<title>footbagnews.com :: \".$lang[\"title\"].\"</title>\";
  8. ?>


lang/polski/lang_main.php
  1. <?php
  2. $lang[&#092;"title\"]=\"zo&para;ka, footbag, newsy, informacje, wydarzenia, triki, gracze, filmy\";
  3. ?>


lang/english/lang_main.php
  1. <?php
  2. $lang[&#092;"title\"]=\"footbag, hacky sack, news, events, tricks, moves, players, videos\";
  3. ?>


Przy pierwszym uruchomieniu strony, kiedy jeszcze sesja nie jest ustawiona, skrypt działa poprawnie i wyświetla angielski tekst tytułu. Kiedy jednak ktoś kliknie w link jakiegoś języka, wyświetlana jest tylko pierwsza litera tekstu z zaincludowanej zmiennej. Nie mam pojęcia, o co w tym chodzi.

Głupi problem i zapewne prosty w rozwiązaniu, ale nie pozwala mi się ruszyć dalej. Proszę o pomoc.

Link do tej stronki: http://www.footbag.p2.pl/footbagnews
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
scanner
post
Post #2





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Czyli kłaniają się stanbdardykodowania...
$arrlang i po sprawie...

albo OOP:
  1. <?php
  2.  
  3. echo Lang::Get('en', 'test');
  4. echo Lang::Get('pl', 'test');
  5.  
  6. class Lang
  7. {
  8. function Get( $lang, $id )
  9. {
  10. $languages['pl']['test'] = 'Test polski';
  11. $languages['en']['test'] = 'Test angielski';
  12.  
  13. return $lang[$lang][$id];
  14. }
  15. // zaczerponiete z Seth'owego XBS'a
  16.  
  17. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.10.2025 - 23:57