Sesiunile in php

Post Title

        Buna, acesta este penultimul tutorial din baza php, va mai urma unul pentru cookie, dar in acesta o sa vorbesc despre sessiuni. Seiunile sunt varabile super globale si reprezinta un mod de stocare a informatiilor cand utilizatorul schimba pagina, cu alte cuvine chiar daca pagina sa schimbat sau sa facut refresh sesiunea nu va fi pierduta.

        Sesiunile fuctioneaza astfel, de fiecare data cand un cineva viziteaza o pagina serverul creeaza un cookie (SID) , iar pe server va exista un fisier cu numele acelui cookie, astfel de fiecare data cand este creata o sesiune aceasta va fi stocata in acel fisier. 

Sesiunile sunt initializare explicit de programator prin functia session_start() , atentie functia pentru sesiuni trebuie sa fie pe prima linie a pagini php pentru a nu se trimite alte headere inaintea sesiuni, cu alte cuvinte nu o sa puteti pune un echo inainte de session_start insa puteti folosi session_name() pentru a denumi sesiunea dupa bunul plac, implicit este PHPSESSID , insa sa trecem la un exemplu clar :

  1.  
  2. <html>
  3. <head><title>Micul Programator</title></head>
  4. <body>
  5. <?php
  6. session_name("MiculProgramator");
  7. if (!isset($_SESSION['nume'])) {
  8. echo 'Bun venit , vizitatorule <br />
  9. <form method="post" >
  10. Introdu un nume : <input type = "text" name="nume" ><br />
  11. <input type = "submit" name="login" value="LOGIN">
  12. </form>';
  13. } else {
  14. echo 'Bun venit, '.$_SESSION['nume'].'<br />
  15. <form method="post" >
  16. <input type = "submit" name="logout" value="LOGOUT">
  17. </form>';
  18. }
  19. if (isset($_POST['login'])) { //daca sa apasat butonul de login
  20. if (!isset($_SESSION['nume'])) { //daca nu exista sesiune
  21. $_SESSION['nume'] = $_POST['nume'] ; //setam o noua sesiune
  22. echo '<meta http-equiv="refresh" content="1">' ; //facem refresh la pagina
  23. }
  24. }
  25. if (isset($_POST['logout'])) { // daca sa apasat butonul de logout
  26. unset($_SESSION['nume']); //facem unset la sesiune
  27. session_destroy(); // distrugem sesiunea curenta
  28. echo '<meta http-equiv="refresh" content="1">' ; //facem refresh la pagina
  29. }
  30. ?>
  31. </body>
  32. </html>

 

Am facut mai sus un simplu login si logout , iar acum o sa explic scriptul:

 

Sesiunile se seteaza prin $_SESSION['nume'] = valoare; si ca la orice array se poate face unset la o anumita cheie , insa destrugerea sesiuni se face prin session_destroy()

 

Daca o sa rulati pentru prima data scriptul o sa vedeti o imagine la fel ca aceasta 

 

 

Iar dupa ce o sa introduce-ti un nume, una similara cu 

 

 

Daca o sa dati refresh la pagina o sa constatati ca o sa va apara tot Bun venit, Marian deoarece sesiunea ramane , acum am sa va arat cateva functii utilie, una dintre ele este , session_id() care da id-ul sesiunii

 

Acum ca avem o sesiune putem modifica un pic in script sa mai adauga un echo cu session id, exemplu :

  1.  
  2. echo 'Bun venit, '.$_SESSION['nume'].'<br />
  3. <form method="post" >
  4. <input type = "submit" name="logout" value="LOGOUT">
  5. </form><br>';
  6. echo session_id();

 

Si o sa observati un string gen : 01qdn887d9g6jo22ge5i7utsk0

 

O alta functie care vreau sa o adaug este session_encode() care serializeaza o sesiune iar reversul functiei este session_decode()

 

Un exemplu a folosiri functiei este nume|s:6:"Marian";

 

Aici gasiti o lista (http://www.php.net/manual/en/ref.session.php) cu toate functiile pentru sesiuni, si va rog nu ezitati sa intrebati daca vi se pare ceva ambigu

 

Urmatorul tutorial va fi despre cookie apoi cum se face inregistrarea si logarea folosind baza de date cookie si sesiuni, asa ca pana data viitoare bafta si nu ezitati sa intrebati 

 

Autor articol

Ştiinţa fără religie este şchioapă, religia fără ştiinţă este oarbă (Albert Einstein)

Articolul urmator


Acest articol nu este comentat, fii primul care o face

Trebuie sa fii logat sa poti lasa un comentariu Autentificare Inregistrare Logare cu Facebook
top