internex
4.07.2006, 16:10:48
Witam
Podczas pisania systemu administracji do pseudo-CMS'a natknąłem się na trzy problemy związane z cookies.
Pytania są następujące:
1) Czy istnieje jakaś funkcja, która pozwalałaby na sprawdzenie, czy użytkownik ma włączoną obsługę cookies?
2) W jaki sposób sprawdzić, czy ciasteczko istnieje już u użytkownika? Dotychczas sprawdzałem, czy istnieją wartości np. $_COOKIE['nick'].
3) W jaki sposób usunąć ciastczko w czasie wylogowywania? Ustawiłem czas time()+1800 (30 minut), ale lepiej jakbym je usuwał razem z naciśnięciem przycisku "wyloguj".
Z góry dziękuję za odpowiedzi.
internex
Cysiaczek
4.07.2006, 16:17:23
1. Raczej nie sprawdzisz za pomocą php.
2. Tak. Wywołaj w $_COOKIE["cookie_name"]
3. Temu samemu cookie możesz ustawić czas ujemny i wtedy zostanie usuniete.
4.
http://pl.php.net/manual/pl/function.setcookie.php - nie powiedziałem nic ponadto
Vogel
4.07.2006, 16:18:47
Cytat(Cysiaczek @ 4.07.2006, 17:17 )

1. Raczej nie sprawdzisz za pomocą php.
raczej sprawdzisz

1. ustawiasz ciasteczko
2. przeladowujesz strone ( header() )
3. jesli testowe ciastko jest ustawione - ciacha sa wlaczone. jesli nie - nie.
Cysiaczek
4.07.2006, 16:22:34
No to to wiadomo - nie sprawdzisz jednak, czy przeglądarka obsuguje cookies (no chyba, że coś się zmieniło)
To, że możesz to sprawdzić sprawdzając $_COOKIES[name] to przecież podałem.
Żeby było jeszcze proście - musisz rzucić przeglądarce ciastko - jak ci odrzuci, to wnioskujesz, że przeglądarka obsługuje cookies. Problem w tym, że najpierw musisz spróbowaćje ustawić, żeby sprawdzić, a nie sprawdzić, czy mozna i potem spróbować ustawić cookie
Vogel
4.07.2006, 17:20:58
Cytat(Cysiaczek @ 4.07.2006, 17:22 )

No to to wiadomo - nie sprawdzisz jednak, czy przeglądarka obsuguje cookies (no chyba, że coś się zmieniło)

no przed chwila ci pokazalem ze sie da. mozesz to zamknac w jakas ladna klase i hulajdusza.
Cysiaczek
4.07.2006, 17:36:57
<?php
foreach ($testMyCookieAbility as $thingToDo)
{
Problem w tym, że najpierw musisz spróbowaćje ustawić, żeby sprawdzić,
a nie sprawdzić, czy mozna i potem spróbować ustawić cookie
}
?>
tak będzie chyba czytelnie
phpion
4.07.2006, 22:24:44
Cytat
3) W jaki sposób usunąć ciastczko w czasie wylogowywania? Ustawiłem czas time()+1800 (30 minut), ale lepiej jakbym je usuwał razem z naciśnięciem przycisku "wyloguj".
Wyslanie ciasteczka z sama jego nazwa, bez wartosci, powoduje jego usuniecie
JulekJP
8.03.2010, 21:58:42
Sorry że odkopuje stary temat ale ludzie szukajacy podobną odpowiedz napotyka sie na ten tamet w google.. A phpion zle naprowadził.. Dodatkowo trzeba podac pusta wartość i odjąc czas aby zrobił sie na "przeterminowany", wtedy usuwa nam całkowicie a nie pozostawia pusta wartość..
Tak to powinno wyglądać
kasek
7.05.2010, 17:51:43
Tak ten sposób działa , jednakże ciastko nie jest usuwane a jedynie traci datę ważności,żeby fizycznie usunąć ciastko z komputera trzeba zastosować JS.