Autor | Zpráva | ||
---|---|---|---|
guru Profil * |
#1 · Zasláno: 26. 6. 2006, 20:24:08
Uz dlouho to zkousim, ale porad mi to nejde. Potrebuju nastavit jazyk pomoci formularovych <select> a <option> a potom ho prenaset pomoci sessions. Vypada to zatim takto:
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="get"> <select name="lang"> <option value="en" <?php if($_GET["lang"] == "en") {echo 'selected="selected"';} ?> >English</option> <option value="cs" <?php if($_GET["lang"] == "cs") {echo 'selected="selected"';} ?> >Czech</option> </select> <input type="submit" value="change" /> </form> <?php session_start(); session_register("lang"); if(!isset($_SESSION["lang"])) { $_SESSION["lang"] = $_GET["lang"]; } if($_GET["lang"] != $_SESSION["lang"]) { $_SESSION["lang"] = $_GET["lang"]; } if($_SESSION["lang"] == "cs") { echo "czech"; } else { echo "english"; } ?> <a href="language.php">Next</a> Kdyz kliknu na odkaz, jazyk se zmeni pokazde na english. Co s tim? Diky. |
||
guru Profil * |
#2 · Zasláno: 26. 6. 2006, 20:25:28
Jo a zapomnel jsem.... Ta druha stranka vypada uplne stejne. (ale to by tak bylo i v realu, protoze formular bude viditelny na kazde strance.)
|
||
kuchi Profil * |
#3 · Zasláno: 26. 6. 2006, 21:19:36
ja pouzivam pro ulozeni jazyka do sessions tohle:
//Nastavi vychozi jazyk cestinu pokud neni jinak nebo zapise jako jazyk cestinu pokud $_GET["language"] == "czech" if (($_SESSION["language"] == "") or ($_GET["language"] == "czech")) $_SESSION["language"] = "czech";//Vychozi jazyk else { if ($_GET["language"] != "") $_SESSION["language"] = $_GET["language"];//Jakykoliv jiny jazyk } Pricemz pres $_GET["language"] predavam hodnotu formulare... |
||
zap Profil |
#4 · Zasláno: 27. 6. 2006, 00:55:27
Tak podle mě tam máš několik chyb:
1) session_start(); máš pouštět před jakýmkoliv výstupem, tedy před kódem pro formulář 2) pokud používáš $_SESSION["lang"] = ... nepoužívej session_register() 3) jestli pracuješ se session, musíš si hodnotu předávat do dalších skriptů (pokud nepoužíváš transparentně, což asi ne když ti to nejede) jak u odkazů, tak u formuláře Tedy nějak následovně:: <?php session_start(); ?> <form action="<?php echo $_SERVER["PHP_SELF"]."?".SID; ?>" method="get"> <select name="lang"> <option value="en" <?php if($_GET["lang"] == "en") {echo 'selected="selected"';} ?> >English</option> <option value="cs" <?php if($_GET["lang"] == "cs") {echo 'selected="selected"';} ?> >Czech</option> </select> <input type="submit" value="change" /> </form> <?php if(!isset($_SESSION["lang"])) { $_SESSION["lang"] = $_GET["lang"]; } if($_GET["lang"] != $_SESSION["lang"]) { $_SESSION["lang"] = $_GET["lang"]; } if($_SESSION["lang"] == "cs") { echo "czech"; } else { echo "english"; } ?> <a href="language.php?<?php echo SID?>">Next</a> |
||
guru Profil * |
#5 · Zasláno: 27. 6. 2006, 12:48:42
Diky. Zkusim. Snad se to povede.
|
||
Retal Profil |
#6 · Zasláno: 27. 6. 2006, 16:49:09
Ukládat volbu jazyka do session není dobré řešení. Má tři hlavní problémy:
1) Jedna URL má více různých obsahů 2) Vyhledávače neznají jiný než přednastavený jazyk 3) Na odlišné jazyky nelze odkázat. Vyřešte to raději přes parametr v URL. |
||
guru Profil * |
#7 · Zasláno: 27. 6. 2006, 18:32:17
Pisu jak pisu, ale ani jedna z moznosti mi nefunguje. tak nevim........
|
||
guru Profil * |
#8 · Zasláno: 27. 6. 2006, 19:38:24
No jo... ale co kdyz tam budu mit dalsi formular, ktery prida do URL parametry? bude to potom fungovat?
|
||
guru Profil * |
#9 · Zasláno: 27. 6. 2006, 19:46:46
Ale to s tim URL se mi vubec nezda jako dobre reseni.
1. Kazdy odkaz musi mit navic pridany parametr. 2. Ani mi to nejede. :-) |
||
Retal Profil |
#10 · Zasláno: 27. 6. 2006, 20:42:13
guru
Řešením přes parametr v URL jsem myslel buď example.com/cs/obsah/ example.com/en/content/ nebo cs.example.com/obsah en.example.com/content nebo example.com/content priklad.cz/obsah (Označení "parametr" jsem nezvolil nejvhodněji, ale snad si rozumíme.) |
||
compact Profil * |
#11 · Zasláno: 28. 6. 2006, 13:16:29
Jojo... Chapu. To uz jsem tak mel jednou postaveny web, ale ted nechci delat pro kazdy jazyk novou stranku, ale dat to do podminek pro vsechny dalsi pripadne jazyky.
|
||
guru Profil * |
#12 · Zasláno: 28. 6. 2006, 13:18:10
No to jo... tak mi to ale pripada moc narocne. V sessions by to bylo elegantnejsi.
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0