Autor Zpráva
Pavel Dumbrovský
Profil
Dobrý den,
chtěl jsem použít skript pro ošetření vícenásobného odeslání formu odsud (dole): https://akela.mendelu.cz/~xhelan/4.semestr/WA/ke%20zkousce/priklady/PHP/04-form.html a řešit to za pomocí sessions. Stále jsem nechápal, proč to nefunguje až jsem to vyzkoušel v IE, kde to funguje jak má, v Chromu ne. Ví někdo víc o tom, proč sessions fungují jinak v různých prohlížečích? Asi nezbyde, než použít řešení s přesměrováním.

Díky.
Keeehi
Profil
Sessions nejsou na prohlížeči téměř vůbec závislé. Jediné co od prohlížeče potřebují jsou funkční cookies. Dokonce, pokud je vypnuto session.use_only_cookies, dokáže existovat bez cookies v url. Chyba bude tedy někde jinde.
Pavel Dumbrovský
Profil
No že chyba bude někde jinde mi moc nepomohlo.. Vzhledem k tomu, že do cookies vůbec nehrabu, tak tento problém můžu očekávat i u ostatních návštěvníků.
Keeehi
Profil
Pavel Dumbrovský:
Neznám prohlížeč, který by měl po instalaci cookies zakázané. To že ti to nefunguje, tak za to s velkou pravděpodobností nemůže sessions. Chybu hledej jinde. Bez živé ukázky více poradit nemohu.
Tori
Profil
Pavel Dumbrovský:
Uvedený kód (řešení B) mi v Chrome funguje stejně jako v IE.
Pavel Dumbrovský
Profil
Hm, tak pak nevím co s tím, ale jak říkám, s cookies jsem nic nedělal, také jsem prakticky pouze zkopíroval to řešení, takže mi nezbývá, než cestu se sessions zavrhnout, protože když to zlobí u mě, může u kohokoliv jiného. Už jsem to udělal přes JS location.replace.
Alphard
Profil
Pavel Dumbrovský:
Pár bodů:
1. Zcela běžné a normální řešení je přesměrování po akci pomocí header location, nevidím důvod to nepoužít.
2. Ztěžujete si, že něco nefunguje, ale kód je funkční (viz [#5] Tori). Takže musíte začít debugovat v nefunkčním (vašem) prostředí. Podívat se, jestli existuje cookie, vypsat si obsah polí POST a SESSION (a ručně porovnat). Ten script má 20 řádků, i kdybyste to měl metodou DDD (dump driven develpment) na každém řádku vypsat, nemůže to trvat dlouho.
3. Spoléhat se na javascript není dobré řešení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: