Diskuze: PHP - vložení hodnoty do proměnné typu SESSION

PHP PHP PHP - vložení hodnoty do proměnné typu SESSION American English version English version

Avatar
Radek Fojtík:

Zdravím,
je možné nějak odkazem vložit hodnotu do proměnné typu SESSION? Chci udělat uložení vybraného jazyka, ale nevím přes co to zrealizovat. Nechci použít přenesení přes url typu www,stranka,cz?ja­zyk=cs nebo tak podobně, ale nějak "neviditelně".
Přes "form a button" a vyvoláním metodou POST to jde v pohodě, ale je to prasácké takto dělat webové tlačítka. Ale nevím jak vložit data do proměnné SESSION přes odkaz A HREF ... Máte nějaký nápad, klidně i jak to udělat jinak, jen aby nebyl vidět přenos proměných v URL adrese...
Díky moc za rady.

Editováno 17. května 21:37
 
Odpovědět 17. května 21:36
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na Radek Fojtík
Marek Z.:

Ahoj, přes pole GET kontroluješ parametry z url

if(isset($_GET['jazyk'])){
    $_SESSION['jazyk'] = $_GET['jazyk'];  //Samozřejmě musí být kontrola zda je jazyk podporován či existuje
}
Nahoru Odpovědět  +1 17. května 21:47
Chybami se člověk učí, běžte se učit jinam!
Avatar
Odpovídá na Radek Fojtík
Martin Konečný (pavelco1998):

nevím, jak máš řešenou architekturu aplikace, ale mělo by jít něco na tenhle způsob

<a href="zmena_jazyka.php?jazyk=cz&url=<?php echo $_SERVER["REQUEST_URI"]">CZ</a>

// zpracování
session_start();
if (isset($_GET["jazyk"])) {
        $povelene = array("cz", "en", "de");
        $jazyk = $_GET["jazyk"];
        if (in_array($jazyk, $povolene)) {
                $_SESSION["jazyk"] = $jazyk;
        }
}

$url = isset($_GET["url"]) ? $_GET["url"] : "index.php";
header("location: {$url}");
exit;
Editováno 17. května 21:49
 
Nahoru Odpovědět  +2 17. května 21:48
Avatar
Radek Fojtík:

Super, zkušební tlačítko funguje, a teď upravit ostatní tlačítka, naštěstí jich není moc. Jen kvůli nastavení serveru jsem musel doplnit ob_start(); aby mě fungovalo to přesměrování.

Mockrát děkuji za radu.

 
Nahoru Odpovědět 18. května 8:28
Avatar
Odpovídá na Radek Fojtík
Martin Konečný (pavelco1998):

Musíš veškeré modifikace řešit na začátku souboru, před jakýmkoliv výstupem (HTML apod). Pak to nebudeš muset obcházet přes ob_start() a takový :)

 
Nahoru Odpovědět  +1 18. května 10:01
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.