• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP ustawianie cookie

Object Storage Arubacloud
+1 głos
156 wizyt
pytanie zadane 6 maja 2021 w PHP przez Filipczak Gaduła (4,020 p.)
edycja 6 maja 2021 przez Filipczak

Cześć, mam takie pytanie i problem już rozwiązany ale intryguje mnie pytanie czemu tak się dzieje. Stworzyłem skrypt który pobiera dane klienta typu ip,lokalizacja itd i dodaje je do bazy danych i tworzy cookie wraz z id. Ten skrypt wykonuje się przed wszystkimi skryptami. Ale gdy tego cookie nie było ustawionego wcześniej i wszedłem na stronę i próbowałem pobrać wartość z tego cookie to okazało się, że takowego cookie nie ma, chociaż powinien się tam znajdować ponieważ ten skrypt który tworzy ten cookie wykonuje się przed nim. Jednak po odświeżeniu strony normalnie działało. Więc teraz moje pytania: Czy tak powinnobyć? Czy cały skrypt musi się wykonać i wyświetlić stronę aby można było pobierać dane z tego cookie?

Przykłąd co mam na myśli i o co mi chodzi. Za każdym razem gdy nie widnieje cookie o nazwie test to wyskoczy błąd w tym przypadku w drugiej linijce w echo, ale po refreshu gdy już ten skrypt się wykonał już wyświetli wartość z cookie o nazwie test

<?php setcookie('test', 'test', time() + (86400 * 30), "/");
echo $_COOKIE['test'];

 

1 odpowiedź

0 głosów
odpowiedź 6 maja 2021 przez VBService Ekspert (253,120 p.)
wybrane 6 maja 2021 przez Filipczak
 
Najlepsza

How to Get the Contents of a Cookie

 

Note that you cannot set a cookie in PHP and hope to retrieve the cookie immediately in that same script session. Take the following non-working PHP code as an example:

 

/* WARNING: THIS WILL NOT WORK */
setcookie ( "userlogin", "anonymous", time()+60 );
echo "Value of userlogin: " . $_COOKIE['userlogin'] ;

 

Remember that cookies are sent in the HTTP headers, both to and by the web browser. At the time the above script runs, the web browser will have sent a request to your server for your script without including any "userlogin" cookie, since none has been set yet (unless one was already set in an earlier session). As such, when the PHP interpreter loads your script, it will create the $_COOKIE array without your "userlogin" cookie.

 

Testing for the existence of the cookie immediately after you set it in the same script is thus pointless. For example, the above code will print "Value of userlogin: " and nothing else. This doesn't mean that the cookie has not been sent — it just means you can't test it in the same script run. If you really need to test whether the cookie has been set, one way is to use JavaScript to check the cookie.

 

(Sites that want to check whether a cookie is successfully set are typically those that depend heavily on cookies to deliver content, such as those that only show certain pages to members paying a subscription fee. Since they require that a login cookie be present, they may want to check to see if cookie support has been disabled in the browser and warn the user if so. The most reliable way to perform such a check, at this time, is to set a cookie and then try to retrieve it.)

komentarz 6 maja 2021 przez Filipczak Gaduła (4,020 p.)
Okej czyli w takich przypadkach dobrze jest używać session i czy dobrą praktyką będzie aby ustawić cookie oraz session z tymi samymi danymi?

Podobne pytania

0 głosów
1 odpowiedź 373 wizyt
pytanie zadane 16 grudnia 2017 w PHP przez Ryba2k Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 608 wizyt
pytanie zadane 4 października 2017 w PHP przez Raster22 Obywatel (1,640 p.)
0 głosów
1 odpowiedź 148 wizyt
pytanie zadane 1 marca 2017 w PHP przez Milesq Nałogowiec (32,020 p.)

92,555 zapytań

141,404 odpowiedzi

319,560 komentarzy

61,941 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...