Autor Zpráva
http
Profil
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
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
A nebo si udelej php skript v rootu ktery bude kotrolovat cookie a bude posilat ostatnim skriptum informace o obsahu.
Radek9
Profil
http:
Nejjednoduší bude poslat pomocí ajaxu informace PHP a to pomocí nich vytvoří cookie, kde bude path "/".
fajzen
Profil
http:
v JS sa dá tiež definovať path cookie celkom jednoducho:
document.cookie="meno=hodnota;path=/";
Zoznam možných parametrov
http
Profil
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
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

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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