Momentinis slapukų nustatymas PHP
Kad tik nustatytas slapukas iškart
pasirodytų $_COOKIE masyve,
galima naudoti gudrų metodą.
Metodo esmė tokia: pirmiausia nustatome
slapuką naudodami setcookie, o po to
rankiniu būdu įrašome jį į $_COOKIE masyvą:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // iškart išves 'eee'
?>
Kad slapukas kiekvieną kartą nebūtų siunčiamas naršyklei, slapuko rašymą galima atlikti sąlygos viduje. Jei tokio slapuko nėra, tai jį įrašome:
<?php
if (!isset($_COOKIE['str'])) { // jei slapuko nėra
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // išves 'eee'
?>
Aptarkime, kaip tai veikia. Pirmą kartą
atvykę į puslapį pateksime į if,
nustatysime slapuką naršyklei ir iškart įrašysime
jį į $_COOKIE. Toliau per echo
bus išvesta mūsų rankiniu būdu įrašyta reikšmė.
Vėlesniais atvykimais į puslapį nepateksime
į if, tačiau $_COOKIE masyve bus
mūsų slapukas, jau atėjęs iš naršyklės.
Taigi, ir pirmo atvykimo, ir vėlesnių metu
$_COOKIE masyve bus mūsų slapukas.
Išbandykite aprašytą metodą.