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.
no moc tomu nerozumím, ale nešlo yb hodnotu z toho formuláře uložit místo do $language přímo do té $_SESSION['lang']?
Takto je definovaný formulár (je tu len jedno tlačítko):
Ako to mám urobiť pre session?
zkus toto:
Lenže neviem, kam s tým. Z formulárov mám guláš.
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:
3. možnosť: Posielať si $language ako parameter.
2. Ten riadok treba na začiatok index.php?
Áno.
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.