Pagina 1 din 1

problema COOKIES

Scris: Mie Mai 05, 2010 9:40 am
de sashaP
Buna ziua.
Recent m-am confruntat cu o problema legata de setarea cookies, shi anume: am un fisier setcookie.php in care se face doar setarea variabilei (setcookie($_GET['name'],$_GET['value'],time()+3600,'/')), datele se primesc prin metoda GET, scriptul se apeleaza cu ajutorul ajax.

Simptomatica: la primul apel variabila se seteaza corect, la apelurile ulterioare valoarea ramane neschimbata.
Apelurile sunt legate de punctele din meniu, adica variabila trebuie sa tina minte care categorie din meniu a fost selectata.

Pana acum am folosit sesiuni, dar a aparut necesitatea de a implementa cookies, voi fi bucuros de orice sugestie. Merci anticipat

Scris: Mie Mai 05, 2010 10:15 am
de Birkoff
dai si tu echo $_COOKIE[$_GET['name']]; sa vezi ce contine in functie de pagina si asa iti dai si tu seama cam ce problema e

Scris: Mie Mai 05, 2010 12:04 pm
de sashaP
Am incercat, daca apelez in browser direct fisierul setcookie.php cu parametrii GET se face setarea cookie cu un pas in urma, adica daca dau setcookie.php?name=tara&value=1 se seteaza cu 1, daca dau setcookie.php?name=tara&value=2 ramane 1 shi numai daca dau refresh sau apelez cu alta valoare primesc 2.

Am incercat sa fac apelul de doua ori consecutiv shi pare ca merge corect, aici apare alta problema.
Explic pe scurt cum se face apelul:
index.php apeleaza prin intermediul ajax "scripts/get_menu_items.php" care citeshte din DB elementele meniului, la fiecare punct din meniu se creaza evenimentul onclick="setCookie('tara',<? $row['id_tara'];?>)". Aceasta functie face apel la "scripts/setcookie.php" care la rindul sau creaza variabila.

Daca fac echo la variabila cookie in "scripts/get_menu_items.php" se afiseaza valoarea dorita, daca la aceeashi variabila fac echo din index.php, deja se ia prima valoare setata.. Adica daca am facut click pe primul element din meniu, ea tot timpul o sa fie setata cu 1.

Poate am gresit vre-un parametru in functia setcookie(), presupun ca problema apare din cauza ca fisierele se afla in directorii diferite

Scris: Mie Mai 05, 2010 1:54 pm
de Birkoff

Scris: Mie Mai 05, 2010 2:01 pm
de sashaP

Scris: Mie Mai 05, 2010 2:24 pm
de Birkoff
ba da dar probabil faci tu ceva gresit prin cod...

verifica si tu ce se intampla pe acolo, verifica daca sa setat cookie corect, verifica daca in celelalte pagini detecteaza acel cookie etc...

$is_set = setcookie('nume_cookie', $valoare_cookie, time()+3500, '/');
if ( $is_set)
echo 'ok';
else
echo 'bubu';

apoi in celelalte pagini (atentie cookie trebuie setat in radacina site-ului daca il setezi intr-un script dintr-un subdirector nu va rula decat in directorul ala, altfel tre sa ii dai calea exacta a domeniului)
verifici daca e

if ( isset($_COOKIE['nume_cookie']))
echo 'cookie exista si are valoarea '. $_COOKIE['nume_cookie'];
else
echo 'nu exista';

Scris: Mie Mai 05, 2010 2:30 pm
de sashaP