Stocarea sesiunilor în fișierul

În plus față de crearea și menținerea datelor sale de sesiune la navigarea între pagini, există o altă caracteristică foarte utilă. Ce se întâmplă dacă am putea stoca datele unei sesiuni pentru a fi utilizate într-o altă, revenind la informațiile care au fost stocate câteva zile în urmă? PHP oferă această capacitate, permițându-vă pentru a stoca date de sesiune într-un fișier.

Un alt exemplu bun este de a utiliza această funcție în combinație cu coș. Să presupunem că aveți un coș de cumpărături, care creează o ordine bazată pe selectarea de către utilizator și stochează aceste informații cu un identificator unic oriunde altundeva sub forma unei combinații a unui număr de identificare de utilizator și sesiune.

Deci, hai tehnica, care este destul de simplu: vom folosi funcția fopen pentru a deschide un fișier, funcția session_encode pentru recodare date de sesiune la un șir de caractere, de fputs funcția și fclose pentru a înregistra și a închide fișierul. Iată un exemplu:

După cum puteți vedea, vom crea trei variabile de sesiune pentru a stoca informațiile de care avem nevoie, în acest exemplu, pur și simplu completați datele șir variabile. Trebuie să vă amintiți sistemul de fișiere utilizând funcțiile prezentate în acest exemplu. Aici vedem că în cadrul funcției fputs echipa este folosit session_encode, pentru a obține date de sesiune (care includ toate variabilele de sesiune, în plus față de numărul de sesiune) și le codeze la un șir de caractere care va fi scris într-un fișier folosind funcția fputs.

Acum, că am fost date ascunse în condiții de siguranță, avem nevoie de o metodă pentru a extrage aceste date după cum este necesar. Pentru aceasta vom folosi fgets funcționează pentru a citi înregistrarea și session_decode pentru a extrage date dintr-o sesiune de înregistrare:

Există ceva de remarcat. În primul rând, creați o nouă sesiune (funcția de apel session_start este în fața restul codului), deoarece variabilele de sesiune active trebuie să creeze session_variables, ceea ce face session_decode funcția.

Apoi, observați că session_encode session_decode și instrucțiuni scrise, dimpotrivă în ceea ce privește reciproc în funcții fputs și fgets lor. Să presupunem că fputs funcția de înregistrare cuprinde session_encode; lectură pentru a descifra fgets rezultate, funcția session_decode conține fgets. (Punct de vedere tehnic, acest lucru nu poate fi în întregime adevărat să spunem că o funcție „conține“ cealaltă, dar în acest caz este foarte convenabil).

Un alt punct important pe care nu ar trebui să fie trecute cu vederea, este domeniul de aplicare al variabilelor. În primul dintre exemplele de mai sus, avem un anumit operator pentru a determina o variabilă de sesiune, astfel încât domeniul de aplicare a acestora ar putea fi mai evident, dar al doilea exemplu, variabila este determinată de session_decode funcție, astfel încât domeniul de aplicare nu este atât de ușor să se identifice imediat. În orice caz, în cazul în care are loc definirea unei variabile în interiorul unei funcții (de exemplu, ai scris această declarație în cadrul unei funcții) session_variables domeniu de aplicare va fi local pentru această funcție. Dacă acest lucru nu este ceea ce vrei, trebuie să adăugați un parametru „global“. În al doilea exemplu de mai sus, acest lucru ar însemna determinarea variabilelor de definire a domeniului la nivel mondial pentru a session_decode de apel în funcție, de exemplu:

În cele din urmă, puteți schimba numele fișierului. În aceste exemple, am folosit un fișier numit „sessionfile.txt“. Este mult mai ușor să fie utilizat ca numele unui fișier un ID de utilizator sau o combinație de nume de utilizator și aplicația (de exemplu, „vincebarnesorders.txt“), pentru a face clar ce fișier să preia informația dacă utilizatorul se întoarce.

Share Dacă ne-am te-a ajutat!