Instalarea instantanee a cookie-urilor în PHP
Pentru ca un cookie setat să apară imediat
în array-ul $_COOKIE, poți
folosi un truc inteligent.
Esența trucului este următoarea: mai întâi setăm
cookie-ul folosind setcookie, apoi
îl scriem manual în array-ul $_COOKIE:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // va afișa imediat 'eee'
?>
Pentru a evita ca cookie-ul să fie trimis de fiecare dată către browser, poți face scrierea cookie-ului în interiorul unei condiții. Dacă un astfel de cookie nu există, atunci îl setăm:
<?php
if (!isset($_COOKIE['str'])) { // dacă cookie-ul nu există
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // va afișa 'eee'
?>
Să discutăm cum funcționează acest lucru. La prima
accesare a paginii, vom intra în if,
vom seta cookie-ul în browser și imediat îl vom scrie
în $_COOKIE. Apoi, prin echo
se va afișa valoarea pe care am scris-o manual.
La următoarele accesări ale paginii, nu vom mai intra
în if, dar în $_COOKIE va conține
cookie-ul nostru, care a sosit deja din browser.
Astfel, atât la prima accesare, cât și la
cele ulterioare, în $_COOKIE se va afla
cookie-ul nostru.
Încercați trucul descris.