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?
msx. 14.08.2007 22:47
msx.
Áno.
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.

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