Autor | Zpráva | ||
---|---|---|---|
http Profil |
#1 · Zasláno: 19. 1. 2010, 20:42:14
ahoj kluci, mám takový programátorský oříšek :)
- levé menu vkládám do více stránek, protože je společné - ty stránky jsou podle určitého obsahu ve vlastních adresářích struktura webu např. index.php levemenu.php folder1 - index.folder1.php folder2 - index.folder2.php folder3 - index.folder3.php soubor "levemenu.php" je vložen přes "include_once dirname(__FILE__).'/levemenu.php';" do každé vnořené stránky. A ted ten oříšek: menu je rozbalovací a každé rozbalení zapíše přes JS cookie aby při dalším načtení(řeším už v čtením cookie v PHP) si stránka pamatovala, které menu je rozbalené. Nic složitého, ale tohle si pamatuje jen v rámci jednoho adresáře. Jakmile vstoupím s rozbaleným menu1 ve folder1 do folder2 tak se menu1 neotevře, protože cookie je zapsaná pro cestu k souboru index.folder1.php jak to udělat aby když zapíšu cookie v nějakém souboru v adresáři, tak aby ji uměla načíst i stránka v jiném adresáři? Nechci to dělat přes $_SESSION, "potřebuju" aby si to pamatovalo nastavení uživatele i z minula... tak nějak aby to bylo funkční pro celou doménu/ nebo folder/ tak co, dá se to řešit? Pavel |
||
Alphard Profil |
#2 · Zasláno: 19. 1. 2010, 20:55:36
http:
V PHP je při vytváření cookie parametr path, kde to lze nastavit. K požadovanému efektu by musel být nastaven na '/'. Jak se vytváří cookies v javascriptu netuším, ale třeba to bude podobné. |
||
fuckin Profil |
#3 · Zasláno: 19. 1. 2010, 21:03:23
A nebo si udelej php skript v rootu ktery bude kotrolovat cookie a bude posilat ostatnim skriptum informace o obsahu.
|
||
Radek9 Profil |
#4 · Zasláno: 19. 1. 2010, 21:09:53
http:
Nejjednoduší bude poslat pomocí ajaxu informace PHP a to pomocí nich vytvoří cookie, kde bude path "/". |
||
fajzen Profil |
#5 · Zasláno: 19. 1. 2010, 21:44:30
http:
v JS sa dá tiež definovať path cookie celkom jednoducho: document.cookie="meno=hodnota;path=/"; Zoznam možných parametrov |
||
http Profil |
#6 · Zasláno: 20. 1. 2010, 11:52:51
ahoj kluci, ted jsem se dostal ke kompu, odpoledne to vyzkouším a určitě sem napíšu řešení.
zkusím to přes ten cookie path v js a php Díky za rady! |
||
http Profil |
#7 · Zasláno: 22. 1. 2010, 17:11:04 · Upravil/a: http
fajzen:
moc ti děkuju, funguje to. Funkce na zápis cookie s nastavením cookie path: function SetCookie(nazev, hodnota, doba){ var datum= new Date(); // získá aktuální datum v milisekundách datum.setTime(datum.getTime() + 1000 * 60 * 60 * 24 * doba); // k datu přidá počet dnů // samotný zápis cookie document.cookie = nazev +"="+ hodnota +";path=/;expires=" + datum.toGMTString(); // zápis cookie pro celou doménu // document.cookie = nazev +"="+ hodnota +";path=/develop/;expires=" + datum.toGMTString(); // zápis cookie pro konkrétní adresář, v mém případě /develop/ } cookie pak volám např: SetCookie("sub", "block", 365); V PHP je to obdobné, jen nabízí mnoho řešení, stačí si jen vybrat... viz manual: http://php.net/manual/en/function.setcookie.php |
||
Časová prodleva: 14 let
|
0