Autor Zpráva
joe
Profil
Ahoj,

když uložím do cookies nějakou hodnotu
setcookie('test', '1')
existuje způsob, jak potom zjistit, jestli je skutečně v cookies uložená, hned za tímto příkazem a ne až po obnovení stránky?
šárinka
Profil
bud pomocí js nebo ajaxu
joe
Profil
šárinka
Pomocí JS?

Hodilo by se mi, kdyby fungovalo něco takového
setcookie('test', '1');
var_dump($_COOKIE['test'];)

Jenže v $_COOKIE po provedení setcookie nic není, objeví se tam, až když obnovím stránku...
Joker
Profil
joe
Jestli to chcete ve stejném PHP skriptu, v jakém se cookie nastavuje, tak to zjistíte velice snadno: není uložená v cookies.
Cookie uloží až prohlížeč ve chvíli, kdy přijme stránku, ale to bývá až potom, co ten PHP skript skončí.
joe
Profil
Joker
To bych chtěl, ale asi to tak nejde, protože když jsou cookies vypnuté, tak se do cookies nakonec nic neuloží... a to taky nechci :-)
Joker
Profil
joe
No jasně, ale toho prostě ve stejném PHP skriptu docílit nelze.

Volání setcookie tu cookie totiž ve skutečnosti neuloží (logicky: je na serveru, tak jak by mohlo ukládat data na klienta). Jenom do HTTP hlaviček přidá příslušnou informaci.
Možnosti PHP skriptu skončí ve chvíli, kdy vytvoří nějaký obsah, který se přes HTTP pošle prohlížeči. Stránka pak možná dorazí do prohlížeče, ten možná z hlaviček získá informaci o nové cookie a možná ji uloží. Jenže při komunikaci přes HTTP se server nedozví, co z té předchozí věty se vlastně stalo. Prostě přijme požadavek a odešle jeho výsledek, tím to hasne.
Joker
Profil
Dodatek - příklad:
Představte si, že jediný možný způsob komunikace s někým by byl posílat si dopisy.
A napsal bych mu: Prosím, zapiš si, že tajné heslo je "cookie".

Ve chvíli, kdy dopis píšu, adresát logicky ještě neví, jaké je to tajné heslo. To se dozví až teprve ve chvíli, kdy já dopis napíšu, odešlu, adresát ho dostane a přečte.
A že se tohle všechno stalo můžu zjistit leda tak, že mi o tom dotyčný napíše ve svém dalším dopisu.
joe
Profil
Joker
Ok, původně jsem si to myslel, jen jsem chtěl nějak jednoduše pomocí PHP zjistit, jestli fungují cookies nebo ne. Dost by mi to ulehčilo pak práci... Díky, půjdu na to jinak.
Neposeda
Profil *
Já testuji cookies tak, že ji v php nastavím a přesměruji přes header('Location: ...') na stránku, kde testuji zda je nastavená.
joe
Profil
Neposeda
Uvidim, třeba mi to taky tak půjde, teď už nevím kde jsem to chtěl přesně udělat, ale myslím, že to bylo právě až po nějakém výstupu z db a to by se prováděl dotaz vlastně dvakrát, kdybych neukládal výsledek z dotazu nějak do cache, což neukládám :)

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:

0