Cunoaște Intuit, curs, autorizație de acces prin intermediul sesiunilor

Lucrul cu sesiuni

Creați sesiune

Primul lucru pe care trebuie să faci pentru a lucra cu sesiuni (în cazul în care acestea sunt deja stabilite de către administratorul de server), acest mecanism rula sesiuni. În cazul în care configurația serverului session.auto_start variabilă este setat la „0“ (dacă session.auto_start = 1. Apoi sesiunea va porni automat), atunci orice script în care doriți să utilizați datele de sesiune. Ea trebuie să înceapă cu comanda

După ce a primit această comandă, serverul creează o nouă sesiune și restabilește curentul bazat pe ID-ul sesiunii. transmis la cerere. Cum se face? PHP interpret caută o variabilă care stochează ID-ul sesiunii (implicit este PHPSESSID) pentru prima dată în cookie-uri. apoi, în variabilele trecut cu ajutorul și POST GET-cereri. În cazul în care identificatorul este găsit, utilizatorul este considerat a fi identificat, înlocuind toate URL-ul și care prezintă cookie-uri. În caz contrar, utilizatorul este considerat un nou, generat nou identificator unic, apoi a făcut o adresă URL nominalizare înlocuire și cookie-uri pentru el.

session_start Echipa () trebuie să fie numit în toate script-urile, care va utiliza variabilele de sesiune. și la ieșire orice date browser. Acest lucru se datorează faptului că cookie-urile sunt setate numai pentru a afișa informații pe ecran.

Obține identificatorul sesiunii curente, puteți utiliza funcția session_id ().

Puteți specifica un nume utilizând funcții session_name pentru sesiunea de vizualizare ([imya_sessii]). Acest lucru trebuie făcut înainte de inițializare a sesiunii. Ia numele sesiunii curente, puteți utiliza aceeași funcție, numită fără parametri: session_name ();

Exemplul 12.2. Creați sesiune

Redenumiți index.html fișier, pentru a procesa php-script-uri. Index.php de exemplu, de a crea o sesiune și a vedea ce ea va primi ID-ul și numele.

Exemplul 12.2. Creați sesiune

Dacă faci același lucru cu authorize.php dosar, valorile variabilelor de ieșire (sesiune id-ul și numele) va fi la fel dacă vom merge la ea cu index.php și nu închide înainte ca fereastra browser-ului (dacă identificatorul de sesiune se va schimba).

Înregistrează-variabile de sesiune

Cu toate acestea, prin ele însele ID-ul și numele sesiunii, vom folosi pentru a rezolva problemele noastre un pic. Dorim să trimită, și de a salva pentru noastre variabile de sesiune proprii (de exemplu, nume de utilizator și parola). Pentru a realiza acest lucru, trebuie doar să se înregistreze variabilele lor:

Rețineți că valorile nu sunt înregistrate și nume de variabile. Register variabilă doar o dată pe orice pagină în care se utilizează sesiunea. Numele variabile sunt transmise session_register (), funcția fără semnul $. Toate variabilele înregistrate devin astfel globale (de exemplu, accesibile de pe orice pagină) pentru această lucrare sesiune cu site-ul.

Register variabilă poate fi, de asemenea, pur și simplu scris, valoarea sa într-o matrice asociativă $ _SESSION. și anume scris

Această matrice conține toate (de exemplu, la nivel mondial) variabile de sesiune înregistrate.

Accesul la aceste variabile se realizează folosind un _SESSION matrice $ [ „var_name“] (sau $ HTTP_SESSION_VARS [ „VARIABLE_NAME“] pentru versiunea PHP 4.0.6 și versiunile anterioare). Dacă setarea este activată în opțiunea PHP register_globals. apoi la variabilele de sesiune care pot fi accesate variabile chiar obișnuite, cum ar fi aceasta: $ variabila.

Când register_globals = off (dezactivat), apoi utilizați session_register () pentru înregistrarea variabilelor trecut la POST metodă sau GET, este imposibil, de exemplu, pur și simplu nu funcționează. Și, în general, nu se recomandă să se utilizeze ambele metode, în același timp, se înregistrează variabilele. $ _SESSION și session_register (). (Deoarece PHP 5.3.0 nu este recomandat funcția session_register să se înregistreze variabile de sesiune (), și în plus, din moment ce versiunea PHP 6.0.0, această funcție va fi disponibilă în loc să se înregistreze variabile de sesiune, se recomandă utilizarea unei matrice $ _SESSION ..)

Exemplul 12.3. Înregistrează-variabile

Listarea 12.3a. authorize.php

Acum, după ce a ajuns la pagina secret_info.php. și pe orice altă pagină a site-ului, putem lucra cu numele de utilizator introdus și parola pe care vor fi stocate în matrice $ _SESSION. Astfel, dacă modificați codul paginilor secrete (rețineți că noi l-am redenumit în secret_info.php), după cum urmează:

Listarea 12.3b. secret_info.php

Ceea ce vom obține într-un browser de pe o pagină secretă din următoarele:

Ca rezultat, vom obține o listă de variabile. înregistrată la authorize.php și, de fapt, pagina foarte secretă.

Listarea 12.3c. Versiunea 2 secret_info.php