Autor | Zpráva | ||
---|---|---|---|
Skynet.cz Profil |
Zdravím. Řeším takovou záhadu. V jedné stránce (s adresou "localhost/user/register") uložím nějaké SESSION proměnné. Použiji PHP header pro přesměrování na stránku "localhost/user" a použiji dotyčné SESSION proměnné. PO(!) jejich použití je odstraním pomocí unset.
Problém je ten, že jakmile použiji "unset", jedná stránka tak, jako kdyby zmiňované dříve uložené proměnné v SESSION nikdy neexistovaly a tedy, když se je PŘED jejich vymazáním pokusím použít, vyskočí mi chybová hláška, že SESSION proměnné neexistují. Zkoušel jsem volat funkci s unsety až na konec celého zpracování, ale i když je zavolám až u konce (a dokonce obalím podmínkou, aby se spustily pouze pokud dané session proměnné existují), nezabírá to. Pořád mi to píše, že neexistují. Pokud si vyzkouším normálně nastavit přímo na stránce "localhost/user" novou SESSION, vypíšu ji a poté vymažu, vše funguje normálně. Zlobí to jen u SESSION uložených z "localhost/user/register". session_start() pochopitelně používám. Předem díky za jakýkoliv nápad v této věci. Fakt už nevím jak to vyřešit. _______________ Ještě dodám, že bez použití unsetu SESSION proměnné na adrese "localhost/user" zcela normálně existují. |
||
Alphard Profil |
#2 · Zasláno: 2. 5. 2014, 18:02:52
Nastavení platnosti cookies je klasicky do rootu (/)?
Popisované chování je dost neobvyklé, unset se provede skutečně až při zavolání. Skoro se mi zdá, že je přehlíženo nějaké přesměrování, 2 různé session apod. |
||
Skynet.cz Profil |
#3 · Zasláno: 2. 5. 2014, 18:32:16
Alphard:
Platnost SESSION kukiny nijak neměním. PHP nastavení jsem neměnil. Normálně volám session_start a to je vše. Přesměrování tam je - "localhost/user/register" do "localhost/user" a také tipuji, že v tom bude problém. Ale nevím proč. Nikde nemůžu podobný problém najít a používat něco jiného než SESSION se mi zdá zbytečné. Patrně ale nakonec budu muset přejít k obyčejným COOKIES. Session je jedna. Ano, pojmenovávám ji (tak, jak se má, tedy před zavoláním session_start), ale když se podívám do prohlížeče, jaké zrovna má COOKIES, je tam vidět jen ta jedna SESSION. O žádných dvou SESSION by tedy neměla být řeč. Zatím jsem na to nepřišel. |
||
Alphard Profil |
#4 · Zasláno: 2. 5. 2014, 18:39:17
A bez toho unset to funguje? Mažete snad konkrétní klíč a ne celou $_SESSION. Bez kódu bude asi těžké radit.
|
||
Skynet.cz Profil |
#5 · Zasláno: 2. 5. 2014, 19:32:15
Alphard
Ano, chápu, že bez kódu je těžké radit. Ale je to dost obsáhlý kód, pokud se jedná o celou stránku. Spíš jsem narážel na to, jestli se s tím někdo už dříve nesetkal. Jinak jde mi o "proměnné" a ne celou SESSION (jinými slovy o prvky pole, jež tvoří $_SESSION). SESSION nemůžu smazat celou. Takže právě mažu jen některé proměnné. |
||
Časová prodleva: 11 let
|
0