Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP - Problém s platnosťou premennej

V PHP mám súbor s týmto "diagramom":

index.php
    .
    .
 include ---> head.php 
    .             .
    .       function head()
    .             {
  head()          .
    .          include ---> show.php
    .             .            .
    .             }       function show()
    .            ---           {
    .                    zobrazenie $_SESSION['lang']
    .                          }
    .                    nastavenie $_SESIION['lang']
    .                        show()
    .                   
 include ---> lang.php
    .            .
    .            .
    .         formulár
   ---

Vo formulári sa nachádzajú tlačítka, ktoré nastavia hodnotu premennej $language. Podľa hodnoty tejto premennej sa v show.php nastaví hodnota $_SESSION['lang']. Problém je v tom, že hodnota $language je v show.php nedefinovaná. Ale ak dám include"show.php" do index.php, tak je hodnota $language v poriadku. Problém je v tom, že musím to použiť tak, ako to je nakreslené a teda buď rozšíriť platnosť premennej $language na celú reťaz, lenže to by znamenalo prepisovať niekoľko desiatok súborov pravdepodobne. Lepšie riešenie je nastaviť $_SESSION['lang'] už za formulárom. Formulár funguje tak, že jedinou jeho akciou je nastavenie hodnoty $language a potom sa znovunačíta index.php. $language je vlastne skrytý prvok na formulári. Potrebujem poradiť ako vo formulári nastaviť session a tým odbúrať potrebu premennej.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
1. možnosť: Použiť globálnu premennú (global) - na začiatku každej funkcie, ktorá pracuje s globálno…
los 14.08.2007 22:38
los
2. Ten riadok treba na začiatok index.php? nový
msx. 14.08.2007 22:47
msx.
Áno. nový
los 14.08.2007 22:52
los
No skúšam to doma, ale nefunguje to. Skúsim v robote, tam to hádam pôjde. Mám to tu aj tak nejaké ro… poslední
msx. 14.08.2007 23:00
msx.

1. možnosť: Použiť globálnu premennú (global) - na začiatku každej funkcie, ktorá pracuje s globálnou premennou language, napísať global $language.

2. možnosť: Na začiatku priradiť tú hodnotu do session:

if (isset($_POST["language"]))
  $_SESSION["lang"] = $_POST["language"];

3. možnosť: Posielať si $language ako parameter.

No skúšam to doma, ale nefunguje to. Skúsim v robote, tam to hádam pôjde. Mám to tu aj tak nejaké rozbité, pretože mi tu nefungujú niektoré veci, ktoré tam áno, takže skúsim šťastie tam. Zatiaľ ďakujem.

Zpět do poradny Odpovědět na původní otázku Nahoru