Jak správně pracovat s cookies?
- Martin Mates
- Člen | 179
Zdravím. Chci se zeptat, jak správně pracovat s cookies v Nette. Potřebuji v jednom presenteru ve funkci handleNeco() nastavit, případně dostat cookies.
Koukal jsem, že je na to funkce objektu HttpResponse->setCookie() a HttpRequest->getCookies(). Jak k nim přistoupím z presenteru? Jsou tam vůbec k dispozici? Moc nevím, jak tohle zabalování HTTP požadavků v Nette funguje, takže jsem možná úplně vedle. V tom případě bych vás poprosil o mírné nasměrování.
Díky moc
- DocX
- Člen | 154
Viz https://doc.nette.org/cs/http/request#…
Cookies jsou v Nette ale opravdu jen „zabalené“. Lze s nimy pracovat jako v jakékoli jiné PHP aplikaci.
Z presenteru k tomu přistoupíš přes getHttpResponse()
- Martin Mates
- Člen | 179
Ještě se chci zeptat, jestli můžu v metodě handle{signal} sahat do cookies. Funguje mi to jen v action a v render. Jedná se mi o hlasování v anketě. Mohl bych to udělat i pomocí action, ale to pak nepůjde zajaxovatět.
- Honza Marek
- Člen | 1664
Martin Mates napsal(a):
Ještě se chci zeptat, jestli můžu v metodě handle{signal} sahat do cookies.
Proč ne?
Funguje mi to jen v action a v render.
Jakto?
Jedná se mi o hlasování v anketě.
hm
Mohl bych to udělat i pomocí action, ale to pak nepůjde zajaxovatět.
Proč ne?
- Martin Mates
- Člen | 179
Honza M. napsal(a):
Martin Mates napsal(a):
Ještě se chci zeptat, jestli můžu v metodě handle{signal} sahat do cookies.
Proč ne?
Funguje mi to jen v action a v render.
Jakto?
Jedná se mi o hlasování v anketě.
hm
Mohl bych to udělat i pomocí action, ale to pak nepůjde zajaxovatět.
Proč ne?
- V metodě handleHlasovat() příkaz
$this->getHttpResponse()->setCookie('hlasovani', 'test', 60 * 60);
neudělá nic. Když ho přendám do metody renderNeco() tak už se ta cookie
nastaví. Proto mě napadlo, že to v handle nejde.
- Myslel jsem si, že jednoduše zajaxovatět aplikaci jde v Nette jen pomocí handlerů handle{signal}.