Natychmiastowe ustawianie ciasteczek w PHP
Aby ustawione ciasteczko od razu
pojawiło się w tablicy $_COOKIE, można
użyć sprytnej techniki.
Istota techniki jest następująca: najpierw ustawiamy
ciasteczko za pomocą setcookie, a potem
ręcznie zapisujemy je w tablicy $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // od razu wypisze 'eee'
?>
Aby ciasteczko nie było za każdym razem wysyłane do przeglądarki, można zapis ciasteczka umieścić wewnątrz warunku. Jeśli takie ciasteczko nie istnieje, to je zapisujemy:
<?php
if (!isset($_COOKIE['str'])) { // jeśli nie ma ciasteczka
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // wypisze 'eee'
?>
Omówmy, jak to działa. Przy pierwszym
wejściu na stronę trafimy do if,
ustawimy ciasteczko w przeglądarce i od razu zapiszemy
je w $_COOKIE. Następnie przez echo
wypisze się ręcznie przez nas zapisana wartość.
Przy kolejnych wejściach na stronę nie trafimy
do if, ale w $_COOKIE będzie znajdować się
nasze ciasteczko, które przyszło już z przeglądarki.
W ten sposób, zarówno przy pierwszym wejściu, jak i przy
kolejnych, w $_COOKIE będzie znajdować się
nasze ciasteczko.
Wypróbuj opisaną technikę.