Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Śmieci w sesji
Forum PHP.pl > Forum > Przedszkole
Strus
Witam!

Mam problem z małym skryptem, który ma za zadanie przy użyciu sesji pamiętać wybrany język na stronie.
Wszystko dziła OK, tylko(!) w adresie URL pojawiają się straszne śmieci co powoduje błąd validatora:
Kod
general entity "PHPSESSID" not defined and no default entity

<a href="index.php?go=0&PHPSESSID=f9342a239dbc88c939f707cd8bef3428">


Jak zapobiec powstawaniu takich śmieci ?

Mój skrypt php
  1. <?php
  2.  
  3. $jezyk = $_GET[&#092;"jezyk\"];
  4.  
  5. if (isset($jezyk))
  6. {
  7. $_SESSION[&#092;"jezyk\"] = $jezyk;
  8. }
  9. else
  10. {
  11. $_SESSION[&#092;"jezyk\"] = isset($_SESSION[\"jezyk\"])?$_SESSION[\"jezyk\"]:\"en\";
  12. }
  13.  
  14. //Wybór podstrony
  15. <a href=&#092;"index.php?go=0\">strona1</a><br />
  16. <a href=&#092;"index.php?go=1\">strona2</a>
  17.  
  18. //Wybór wersji językowej 
  19. <a href=&#092;"index.php?jezyk=pl\">polski</a><br />
  20. <a href=&#092;"index.php?jezyk=en\">angielski</a>
  21.  
  22. switch ($_GET[&#092;"go\"])
  23.  {
  24. case 0:
  25. default:
  26. include(&#092;"lang/strona1{$_SESSION[\"jezyk\"]}.php\");  
  27. break;
  28. case 1:
  29. include(&#092;"lang/strona2{$_SESSION[\"jezyk\"]}.php\");
  30. break;
  31. }
  32. ?>


Pliki w katalogu lang/ nazywają się strona1en.php, strona1pl.php i strona2en.php, strona2pl.php
Tylko że zamiast pl lub en w nazwę pliku wstawia on też te śmieci co powoduje że kod się nie validuje.

Jak to naprawić ? smile.gif
dr_bonzo
W php.ini dodaj separator danych '&amp;' zamiast '&' (arg_separator.output).

Zeby wyswietlic ampersand (&) musisz go zapisac jako '&amp;'
stoprocent
Było to ze 100 razy na forum.

  1. <?php
  2. ini_set( &#092;"arg_separator.output\", \"&amp;\" ); 
  3. ?>
Strus
THX zadziałało!, nawiasem mówiąc doszukałem się tego przed chwilą w manualu php.

Mam nowy problem smile.gif Wszystko mi działa OK na lokalu, ale po wrzuceniu na serwer nie pamięta sesji wybranego języka, przełączy na inny al w momencie kliknięcia na dowolny link przełącza z powrotem na defaultowy. Moja wersja php to 4.3.9 (moduł Apache'a) a wersja php na serwerze to 4.3.10.

Co jest źle w moim skrypcie, że nie działa z nowszą wersją php ?

EDIT:

Już sobie poradziłem smile.gif
Wystarczyło zastąpić
  1. <?php
  2. $_SESSION[&#092;"jezyk\"]
  3. ?>
przez
  1. <?php
  2. $_SESSION[&#092;"cos_innego_niz_jezyk\"]
  3. ?>
i teraz działa z nowszą werjsją php.
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.