Autor Zpráva
ronnie
Profil
Zdravím,
pokud nemá uživatel povoleny cookies, je třeba použit konstantu SID u každého odkazu. To není problém, ale jak to udělat u formulářů?Pokud totiž formulář odešlu na stejsnou stránku, SID zmizí. Jak se tyhle problémy řeší? Díky moc za odpověď
ronnie
Profil
Šlo by posílat formuláře metodou GET, ale třeba u změny registračních údaju by to bylo hodně nepraktické, navíc by to znamenalo kompletní předělání celého webu...není jednodušší možnost?
Leo
Profil
Osobne je resim tak, ze cookie proste musi byt zapnute. Nestoji to za komplikace a bezpecnostni rizika, Leo
DoubleThink
Profil *
Pokud odesíláš form přes GET, tak přidáš normálně další hidden input (nemůžeš tam ale vkládat konstantu SID - ta by totiž vložila i řetězec "PHPSESSID=") - takže si necháš vypsat číslo session pomocí session_id()

V případě POST formuláře je to jednoduché:

<form action="?<? echo SID; ?>"...>
ronnie
Profil
Díky, osobně tuhle možnost doporučujete nebo ne? Tedy zda např. v případě eshopu brát ohled na uživatele bez cookies?
DoubleThink
Profil *
Myslím, že touto úpravou nemáš co ztratit - já to takto přidávám do každého formuláře a odkazu.

Pokud bys to takto neudělal, tak uživatelé bez cookies jednoduše ostrouhají - nedostanou se dál, ani kdyby se postavili na hlavu.

U e-shopu bych to použil tím tuplem - tady už jde o prachy
ronnie
Profil
To je fakt, díky za názor:)
WertriK
Profil *
hmm a kdyby tam dal
<input type="hidden" name="SID" value="$SID">

co by se stalo?? ptam se jen ze jsem to tady nikde nevidel jako dalsi alternativu...
DoubleThink
Profil *
PHP by dostalo něco takového:
SID=PHPSESSID%E2a99e455e566d706c4a20a45af616507a
Což je nesmysl, protože očekává proměnnou:
PHPSESSID=a99e455e566d706c4a20a45af616507a
Takže jedinný způsob, jak přenést číslo session přes GET formulář je následující:
<input type="hidden" name="PHPSESSID" value="<? echo session_id();?>">
Nebo ještě lépe (název session proměnné nemusí být vždy "PHPSESSID"):
<input type="hidden" name="<? echo session_name();?>" value="<? echo session_id();?>">


Přidat konstantu SID do atributu action u GET formuláře nejde - prohlížeč parametry neodešle.

Jenom mimochodem - SID je konstanta (nepíše se tam $)
Toto téma je uzamčeno. Odpověď nelze zaslat.