Autor | Zpráva | ||
---|---|---|---|
gaminn Profil * |
#1 · Zasláno: 3. 2. 2006, 16:05:42
Dobrý den,
zhruba takto vypadá můj skript: session_start(); print_r($_SESSION); echo '<br /><br />'; $_SESSION['a']['name']='a'; $_SESSION['b']['name']='b'; $temp_session=$_SESSION; $temp_wid_session=$_SESSION['a']; $_SESSION=$temp_wid_session; $_SESSION['title']='title'; $temp_wid_session=$_SESSION; $_SESSION=$temp_session; $_SESSION['a']=$temp_wid_session; print_r($_SESSION); Výstup stránky, pokud na ní vlezu poprvé: Array ( ) Array ( [a] => Array ( [name] => a [title] => title ) [b] => Array ( [name] => b ) ) Dám-li obnovit: Array ( [a] => Array ( [name] => a ) [b] => Array ( [name] => b ) ) Array ( [a] => Array ( [name] => a [title] => title ) [b] => Array ( [name] => b ) ) A tady je problém - pokud se na konci mé první návštvy stránky vypsalo "Array ( [a] => Array ( [name] => a [title] => title ) [b] => Array ( [name] => b ) )" na začátku stránky, která se zobrazí po obnovení, by se mělo logicky objevit to samé, ale objeví se pouze "Array ( [a] => Array ( [name] => a ) [b] => Array ( [name] => b ) )", tedy není zaznamená změna $_SESSION['title']='title'. Pokud obnovím podruhé, vypíše se: Array ( [a] => Array ( [name] => a [title] => title ) [b] => Array ( [name] => b ) ) Array ( [a] => Array ( [name] => a [title] => title ) [b] => Array ( [name] => b ) ) Takže až po druhém obnovení se objeví vše, co bych očekával. Nevím, kde hledat chybu, tato situace nastává se serveru zákazníka, na mém localhostu se session chová správně (tedy už po prvním obnovení stránky se vypíše to, co má). Měl by někdo nějakou radu? Domnívám se, že jde o chybu serveru...je to možné? |
||
Hondrej Profil * |
#2 · Zasláno: 4. 2. 2006, 20:00:07
Vas kod jsem prilis nelustil, ale kdyz prijdete na stranku a nechate vytvorit sessions, tak jejich obsah a a praci s nimi ocekavejte az po reloadu. Doporucuji proto pro 1. navstevu vytvorit promenne do kterych hodnoty nacpete a nechte je vypsat.
|
||
gaminn Profil * |
#3 · Zasláno: 4. 2. 2006, 21:29:33
Takové řešení by nevyhovovalo.
Problém byl ale vyřešen, pokud se totiž prováděl příkaz $_SESSION=$temp_wid_session; , tak se superglobální proměnná $_SESSION proměnila v klasickou proměnou, protože do ní byla přiřazována také "obyčejná" proměnná, tedy prostor, který není alokován pro superglobální proměnné. |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0