Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> $_COOKIES
Black-Berry
post 13.09.2008, 13:49:14
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dlaczego to nie działa sad.gif ?

  1. <?php
  2. if (!isset($_COOKIE['cookie'])) {
  3.   setcookie('cookie', time(), 0);
  4. }
  5. print $_COOKIE['cookie'];
  6. ?>


Ciastko zostaje w przeglądarce po zamknięciu i ponownym otwarciu ;( Time ciągle taki sam.

Ten post edytował Black-Berry 13.09.2008, 14:00:24


--------------------
Go to the top of the page
+Quote Post
akurczyk
post 13.09.2008, 13:56:59
Post #2





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


pewnie strona jest kodowana w utf-8 jeśli tak to zakoduj ją w utf-8 bez bom np. w nootpad++


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post
Black-Berry
post 13.09.2008, 14:44:31
Post #3





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Nie. Wszystko jest w notacji NO-Boom. Spróbuj wkleić ten skrypt i odpalic. Zamknąć przeglądarkę i jeszcze raz odpalić. Wyświetla za kazdym razem ten sam wynik a powinno sie zupdatowac

Kurcze sory, chyba mam chache w przeglądarkach jakiś dziwny. Już działa.

A jednak niektóre przeglądarki zapamiętują ciasteczka które powinny wygasnąć. Z głównych ff, ie, opera, chrome tylko opera poprawnie usuwa ciasteczka. Czy mógłby ktoś to sprawdzić u siebie ?


--------------------
Go to the top of the page
+Quote Post
akurczyk
post 13.09.2008, 15:00:24
Post #4





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


według mnie to niektóre przeglądarki mogą traktować zero jako bezterminowe lub np 1 godz.
polecam ustawić na time()-3200. u mnie przynajmiej to działa ale zaraz jeszcze po próbuje.
używam google chrome.

  1. <?php
  2. if(!isset($_COOKIE['cookie'])) {
  3.    setcookie("cookie", time(), time()-3600);
  4. }
  5. echo "Tim: ".time()."<br>";
  6. echo "Cooki: ".$_COOKIE['cookie'];
  7. ?>

Działa?questionmark.gif bo u mnie tak (VertrigoServ i Google Chrome).


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post
Black-Berry
post 13.09.2008, 15:00:28
Post #5





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Pliki Cookies nie są usuwane w przeglądarce IE7 oraz IE6. Co ciekawe wszystko działa poprawdnie dla ciasteczka sessji które powinno działać na tej samej zasadzie co inne. Ono jest usuwane normalnie.


--------------------
Go to the top of the page
+Quote Post
akurczyk
post 13.09.2008, 15:02:21
Post #6





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


jeszcze jedno sprawdź w opcjach ie za ile wygaśnie ciacho z 0


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post
Black-Berry
post 13.09.2008, 15:04:04
Post #7





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(akurczyk @ 13.09.2008, 15:00:24 ) *
Działa?questionmark.gif bo u mnie tak (VertrigoServ i Google Chrome).

W chromie nie działa. Dopiero po ręcznym usunięciu cookiesów dolna wartosc sie zmienia. Moze mam coś spiepszone lokalnie ?
Cytat
jeszcze jedno sprawdź w opcjach ie za ile wygaśnie ciacho z 0

pisze że po zakończeniu sesji

Ten post edytował Black-Berry 13.09.2008, 15:05:04


--------------------
Go to the top of the page
+Quote Post
akurczyk
post 13.09.2008, 15:19:40
Post #8





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


u mnie dolna wartość cały czas jest pusta więc już nie wiem.
sprubuj wyzyścić cookie w przeglądarce i jeszcze raz uruchomić skrypt z time()-3200


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post
Black-Berry
post 13.09.2008, 15:26:14
Post #9





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


jak mozesz pisac ze dolna wartosc w twoim skrypcie jest pusta cały czas skoro pisałes wczesniej ze u ciebie dziala ?


--------------------
Go to the top of the page
+Quote Post
ahead
post 13.09.2008, 15:51:37
Post #10





Grupa: Zarejestrowani
Postów: 33
Pomógł: 2
Dołączył: 13.08.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. setcookie('cookie', time(), 0);
  3. ?>


Ustawiając trzeci parametr na 0 ustawiasz wartość $_COOKIE['cookie'] bezterminowo na bieżącą wartość time(). Wartość nie zmieni się na bieżącą dopóki nie usuniesz ciastka. Jeśli chcesz żeby wartość po odświerzeniu zmieniła się musisz zrobić to inaczej.

  1. <?php
  2. if(isset($_COOKIE['cookie'])){
  3.    print $_COOKIE['cookie'];
  4.    unset($_COOKIE['cookie']);
  5.    setcookie('cookie', time(), 0);
  6. }else{
  7.  setcookie('cookie', time(), 0);
  8. }
  9. ?>
Go to the top of the page
+Quote Post
Black-Berry
post 13.09.2008, 15:58:30
Post #11





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


chyba się rozmineliśmy z tematem smile.gif Ja chce właśnie żeby w trakcie trwania sesji ciastko nie zmieniło swojej wartości i usuneło się po zamknięciu przeglądarki. Chcę mieć własną obsługę sesji i potrzebuję ciastka o nazwie 'sessionId'.


--------------------
Go to the top of the page
+Quote Post
akurczyk
post 13.09.2008, 16:18:07
Post #12





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


działa bo ciactko jest ustawiane na godzine w tył czyli nie jest ustawiane.
ja na twoim miejscu użył bym zwykłych sesji.
może ustaw ciastko bez czasu (setcookie("cookie", time())), jeśli się nie mylę to to ciastko będzie ważne tylko na czas działania przeglądarki (sesji).
Sprubuj tak
Na początku każdego skryptu:
  1. <?php
  2. $zapytanie = mysql_query("SELECT * FROM sesje WHERE id_sesji=''".addslashes($_COOKIE['id_sesji'])."'");
  3. if(mysql_num_rows($zapytanie) == 1) {
  4. while($wynik = mysql_fetch_array($zapytanie)) {
  5. $sesja_login = $wynik['login'];
  6. $sesja_haslo = $wynik['haslo'];
  7. }
  8. }
  9. ?>

Logowanie:
  1. <?php
  2. //Dodanie do tabeli sesje nowego rekordu (id_sesji, login, haslo)
  3. setcookie("id_sesji", "id_sesji");
  4. ?>


--------------------
Pozdrawiam
Aleksander Kurczyk
Porady dla webmasterów
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 20:34