Autor Zpráva
Introw
Profil
Dobrý den,
potřeboval bych poradit jak udělat změnu jazyka na té samé stránce na které se nacházím. Změna jazyka funguje, tak že název jazyka posílám do url z který ukládám do session a název stránky posílám pouze do url adresy. Následně si vezmu název jazyka ze session, název stránky z url a podle těchto dvou parametrů vypíšu příslušnou stránku s vybraným jazykem. Problém mám ale v tom, že když změním jazyk na nějaké stránce, tak se mi vymaže ten název stránky z url a vrátí mě to zpět na hlavní stránku. Potřebuji poradit jak vzít url adresu, na které se nacházím, když klikám na změnu jazyka, následně ji uložit do proměnný, kterou vložím do odkazu změny jazyka, k tomu připíšu název jazyka a při kliknutí na odkaz změny jazyka, stránka zavolá sama sebe a jen se přepíše session s názvem jazyka.

Zkoušel jsem:
$url = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
toto vložit do odkazu na změnu jazyka jako :
<a href="<?=$url?>?lang=en"> to bohužel nefunguje

Také jsem zkoušel:
if(isset($_SERVER["HTTP_REFERER"]))
{$url=$_SERVER["HTTP_REFERER"];}

A v poslední řadě jsem zkoušel i:
<a href="<?=$_SERVER['PHP_SELF'];?>?lang=en">

Bohužel nic z toho mi nefunguje.

Ukázka mého kodu:

session_start();

    switch($_GET["lang"])
        {
            case "en" : $_SESSION["lang"]="en";break;
            case "cs" : $_SESSION["lang"]="cs";break;
        }
                
    if(isset($_SESSION["lang"])) 
            {
                $lang=$_SESSION["lang"];
            }
        else 
            {
                $lang="cs";
            }
    
    if(isset($_GET["page"]))
        {
            $page=$_GET["page"];
        }

<a href='http://www.stranka.com/?page=oznameni'><? echo GET_TEXT('menu', '4'); ?></a>

<a href="<?=Nevim co?>?lang=en"></a>
<a href="<?=Nevim co?>?lang=cs"></a>

Děkuji za rady. Přeji hezký den.
Alphard
Profil
Nepíšete, proč to nefunguje, ale hádám, že v url již je jednou použit ? a další proměnná se musí oddělit &. Tj. je lepší vzít jen jméno stránky a k němu připojit řetězec vzniklý z pole $_GET doplněného o novou proměnnou.

A teď proč to nedělat. Jiná jazyková verze je jiná stránka (uživatel může chtít poslat odkaz na konkrétní jazykovou verzi, může si ji chtít uložit do záložek, atd.). Takže informace o jazyce nepatří do sessions, ale do url. Pro počáteční odhad je dobré podívat se do accept hlavičky a ušetřit uživateli klikání.
Introw
Profil
Jak jste napsal tak jsem udělal: <a href="http://www.stranka.com?<?=$page?>&lang=en"></a>

Bohužel stále beze změny. Pokud jsem například na stránce "priklad" url adresa-> http://www.stranka.com/?page=priklad a kliknu na odkaz změny jazyka výše, tak mi to změní jazyk, ale odkáže mě to pouze na http://www.stranka.com/?lang=en. Já potřebuji, aby po kliknutí na ten odkaz mě to poslalo na http://www.stranka.com?page=priklad&lang=en.


Omlouvám se, funguje to, už jsem našel chybu.
Má to být <a href="http://www.stranka.com?lang=cs&page=<?=$page?>
Děkuji za pomoc. Jinak pokud znáte nějaké lepší řešení této situace i změny komplet jazyka s načítáním stránek, tak si nechám rád poradit.
Alphard
Profil
Introw:
Jinak pokud znáte nějaké lepší řešení této situace i změny komplet jazyka s načítáním stránek, tak si nechám rád poradit.
Jak jsem psal, nedělat to přes session.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: