Exemplu de a-mi aduce aminte este o lecție - rata de cookie-uri în php din devionitate

În această prelegere, vom examina un exemplu simplu de formular de autentificare cu abilitatea de a-și aminti un utilizator, astfel încât el să nu introducă parola și să se conecteze la formular de fiecare dată. Mai întâi, creați formularul:

Acum creați fișierul admin.php, în care procesăm datele formularului. Pentru simplificarea unui exemplu din același fișier, datele despre utilizator, care sunt de obicei stocate într-o bază de date, vor fi salvate.

$ db_data = array (
'username' => 'jessie',
'parola' => 'magneți'
);

dacă ($ _POST) $ username = isset ($ _ POST ['username']). $ _POST ['username']. null;
$ password = isset ($ _ POST ['parola']). $ _POST ['parola']. null;
> elseif ($ _COOKIE) $ username = isset ($ _ COOKIE ['username']). $ _COOKIE ['username']. null;
$ password = isset ($ _ COOKIE ['parola']). $ _COOKIE ['parola']. null;
> altfel mori ("Zona restricționată!");
>

După această construcție (dacă scriptul nu moare), putem verifica dacă datele de conectare / parolă se potrivesc:

($ db_data ca $ k => $ v) $ status = $ status ($ k === $ v);
>

Aici starea $ este o variabilă care trebuie setată la valoarea inițială true. După acest ciclu, acesta va conține numai adevărat dacă se potrivesc numele de utilizator și parola utilizatorului. În acest caz, trebuie să bifați caseta Remember Me și să trimiteți cookie-urile dacă este bifată:

dacă ($ status) dacă (isset ($ _POST ['remember'])) setcookie ('username', $ username, time () + 60 * 60 * 24 * 366);
setcookie ("parola", $ parola, timp () + 60 * 60 * 24 * 366);
>
echo 'Conectat!';
>

Primim urmatorul rezultat: daca am intrat cu succes, dar nu am verificat caseta, atunci urmatorul login la admin.php nu va mai fi posibil. Nu am salvat starea rezultatului autentificării. Dacă ați conectat-o ​​cu succes și ați marcat caseta de selectare, putem merge chiar și la admin.php după ce reporniți browserul și vedeți că suntem conectați. cookie-urile stocate au fost înlocuite.

→ Ecran complet