Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Select zmieniajacy wartosc sesji
starter91php
post
Post #1





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 6.05.2009

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


Witam, chcialem zrobic przekazywanie wersji jezykowej strony przez sesje, z opcja dowolnego jej zmienienia przez select, kod wyglada tak:
  1. <?php
  2. // select
  3. echo '<form action="" method="post">';
  4. echo "<select name='lng' onchange='submit();'>";
  5. echo "<option value='pl'>Polski</option>";
  6. echo "<option value='eng'>English</option>";
  7. echo "<option value='ger'>Deutsch</option>";
  8. echo "</select>";
  9. echo "<input type='hidden' name='lngsnd' value='1'></form>";
  10.  
  11.  
  12. // ify
  13. if($_POST['lgsnd']=="1"){
  14. if($_POST['lng']=="eng"){
  15. $_SESSION["lng"]="eng";
  16. }
  17. else if($_POST['lng']=="ger"){
  18. $_SESSION["lng"]="ger";
  19. }
  20. else {
  21. $_SESSION["lng"]="pl";
  22. }
  23. }
  24.  
  25.  
  26. if($_SESSION['lng']=="eng"){
  27. require("eng.php");
  28. }
  29. else if($_SESSION['lng']=="ger"){
  30. require("ger.php");
  31. }
  32. else{
  33. require("pl.php");
  34. }
  35. ?>


Po zmienieniu wartosci w select:
var_dump($_POST) = array(2) { ["lng"]=> string(3) "eng" ["lngsnd"]=> string(1) "1" }
var_dump($_SESSION) = array(2) { <sesja logowania> ["lng"]=> string(2) "pl" }

Sesje "lng" rejestruje juz przy logowaniu i nadaje jej pierwsza wartosc "pl".
Go to the top of the page
+Quote Post
skinner
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 4
Dołączył: 18.02.2007

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


Jeśli chcesz cokolwiek robić na sesjach musisz je zainicjować. Na początku strony daj

  1. <?php
  2. ?>


Do poprawy jest też formularz. Skąd wiadomo który język jest aktywny? Wybierzesz np. English strona się przeładowuje i nadal masz w formularzu ustawione Polski.

Ten post edytował skinner 20.07.2009, 10:45:54
Go to the top of the page
+Quote Post
tmka
post
Post #3





Grupa: Zarejestrowani
Postów: 27
Pomógł: 9
Dołączył: 9.02.2009

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


Problem tkwi w literówce, twoje pole hidden nazywa się inaczej niż te z POST'a:
  1. <?php
  2. echo "<input type='hidden' name='lngsnd' value='1'></form>";<--- tu
  3.  
  4.  
  5. // ify
  6. if($_POST['lgsnd']=="1"){ <--- tu
  7. ?>
Go to the top of the page
+Quote Post
starter91php
post
Post #4





Grupa: Zarejestrowani
Postów: 75
Pomógł: 0
Dołączył: 6.05.2009

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


faktycznie %-) przeoczylem. Thx!
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 Aktualny czas: 20.08.2025 - 23:25