Mecanismul sesiunii
Sesiunile sunt un mecanism care vă permite să creați și să utilizați variabile care își păstrează valoarea pe tot parcursul timpului utilizatorului cu site-ul.
Aceste variabile pentru fiecare utilizator au valori diferite și pot fi utilizate pe orice pagină a site-ului înainte ca utilizatorul să părăsească sistemul. În același timp, de fiecare dată când accesați site-ul. utilizatorul primește noi valori ale variabilelor care îi permit să se identifice în timpul acestei sesiuni sau sesiuni cu site-ul. De aici numele mecanismului - sesiunea.
Sarcina de identificare a utilizatorilor este rezolvată prin atribuirea fiecărui utilizator a unui număr unic, așa-numitul identificator de sesiune (SID.Session IDentifier). Acesta este generat de PHP în momentul în care utilizatorul vizitează site-ul. și este distrus atunci când utilizatorul părăsește site-ul și reprezintă un șir de 32 de caractere (de exemplu, ac4f4a45bdc893434c95dcaffb1c1811). Acest ID este transmis la server împreună cu fiecare solicitare a clientului și este returnat împreună cu răspunsul serverului.
Există mai multe moduri de a transmite ID-ul sesiunii:
Utilizarea cookie-urilor.
Cookie-urile au fost create special ca o metodă de identificare clară a clienților și reprezintă o extensie a protocolului HTTP. În acest caz, identificatorul sesiunii este stocat într-un fișier temporar de pe computerul client care a trimis solicitarea. Metoda este cu siguranță bună, dar mulți utilizatori dezactivează suportul cookie-urilor de pe computerul lor din cauza unor probleme de securitate.
În acest caz, identificatorul sesiunii este integrat automat în toate cererile (URL-urile) trimise către server și stocate pe server.
În plus față de opțiunile listate pentru transferul identificatorului sesiunii. Câteva sunt cunoscute, dar nu le vom considera din cauza complexității lor.
Configurarea sesiunilor
Înainte de a începe să lucrați cu sesiuni. trebuie să înțelegeți cum să configurați corect manevrarea acestora de către interpretul PHP. Chiar lucrarea cu sesiuni în PHP este acceptată implicit. Aceasta înseamnă că nu este nevoie să instalați elemente suplimentare. Dar să știi ce este scris în setările acestui modul este util pentru a evita greșelile atunci când lucrați cu el.
Setările PHP. inclusiv pentru a lucra cu sesiuni. sunt înregistrate în fișierul php.ini. Să ne uităm la acest fișier.
După cum știm deja, ID-ul sesiunii (numărul prin care puteți identifica în mod unic clientul care a trimis solicitarea) este stocat fie pe computerul server, fie pe computerul client sau pe ambele.
Parametrul session.save_path în php.ini. Specifică unde vor fi stocate datele de sesiune pe server. Din această cauză, există deseori probleme pentru serverele Windows, deoarece implicit valoarea session.save_path este setată la / tmp. Și dacă nu există un astfel de dosar în directorul rădăcină al serverului, va apărea o eroare la pornirea sesiunilor.
De exemplu: 2; / Temp specifică faptul că variabilele de sesiune vor fi stocate în directoarele formularului c: \ Temp \ 0 \ a \. c: \ Temp \ 0 \ b \ etc
Stocarea de date pe partea clientului se face folosind module cookie. Activitatea PHP cu cookie-uri poate fi configurată, în special, utilizând parametrii session.use_cookies. session.cookie_lifetime, etc.
Parametrul session.use_cookies specifică dacă se vor utiliza cookie-uri atunci când se lucrează cu sesiuni. Implicit, această opțiune este activată (adică este setată la "1").
Parametrul session.cookie_lifetime specifică durata de viață a cookie-urilor în câteva secunde. Valoarea implicită este "0". și anume datele din cookie-uri sunt considerate corecte până când fereastra browser-ului este închisă.
În plus față de acești parametri, numele sesiunii poate fi util. care specifică numele sesiunii. session.auto_start. permițându-vă să începeți automat o sesiune. session.serialize_handler. Specifică metoda de codare a datelor sesiunii. și parametrul session.cache_expire. Determinarea numărului de minute în care documentul devine nesigur în memoria cache.
Numele sesiunii session.name este setat ca implicit ca PHPSESSID și folosit în cookie-uri ca numele variabilei. în care este stocat identificatorul sesiunii. Startul automat al sesiunilor este dezactivat în mod implicit, dar îl puteți seta făcând session.auto_start egal cu "1". Pentru a cripta datele sesiunii, php este folosit în mod implicit. Îmbătrânirea datelor stocate în memoria cache apare după 180 de minute.
Există multe alte setări pe care le puteți găsi în documentație sau direct în fișierul de setări php.ini. În opinia noastră, cunoașterea parametrilor de mai sus este suficientă pentru a lucra cu sesiunile din PHP. Să procedăm astfel.