Autor | Zpráva | ||
---|---|---|---|
JardaB Profil |
#1 · Zasláno: 17. 9. 2018, 11:47:09
Zdravím, stále mám trochu nejasnosti v cookies a jejich platností v různé úrovni stromu. Myslel jsem, že když zapíšu cookies např v root, tak budou platné i pro podadresáře. Potřebuji vyřešit zápis cookies tak, aby ikdyž je zapíšu v kořeni nebo v podadresáři, tak byly platné pro celou strukturu. Některé scripty volám z javascriptu a volané soubory nejsou v kořenovém adresáři. Tedy zapsané cookies pak nemám k dispozici všude.
v manuálu jsem našel tohle: <?php $domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false; setcookie('cookiename', 'data', time()+60*60*24*365, '/', $domain, false); ?> Nejsem si ale jistý, zda je to správné řešení a zda mi to bude fungovat i na localhost. Nechci s tím experimentovat, abych se nezamotal. Dík za rady. |
||
Keeehi Profil |
#2 · Zasláno: 17. 9. 2018, 12:36:13
JardaB:
Pro nastavení platnosti pro všechny adresáře i podadresáře to máš správně. Čtvrtý parametr '/' to zajistí.
S dotazem to nesouvisí ale zeptat se musím, víš co dělá ten šestý parametr? A že je tam možný i sedmý parametr? Oni mají totiž bezpečnostní důsledky tak jestli jsi to jen nezkopíroval aniž by jsi si přesně zjistil, co to vlastně kopíruješ. |
||
N71 Profil * |
#3 · Zasláno: 17. 9. 2018, 12:36:27
Podívej se na parametry – false je neplatná hodnota domény.
|
||
JardaB Profil |
Keeehi:
„Pro nastavení platnosti pro všechny adresáře i podadresáře to máš správně. Čtvrtý parametr '/' to zajistí.“
tohle jsem právě testoval a nezapíše to cookies vůbec, je to prostě ignorováno Keeehi: „Čtvrtý parametr '/' to zajistí.“
Tak ještě testuji a cookies to zapíše, ale již nejsou k dispozici v podadresáři. Navíc potřebuji i opak, tj. zápis cookies v podadresáři a ty mít k dispozici o úroveň výš. $id=9855555; setcookie("id", $id, time()+3600, "/"); Problém nalezen. Visely tam původně zapsané cookies setcookie("id", $id, time()+3600); a ten nový zápis je prostě nepřepsal. Vymazal jsem komplet cookies a nyní to funguje. |
||
Časová prodleva: 5 let
|
0