Nu am uitat că menirea principală a acestui site nu este doar de a prezenta cărţi şi a oferi posibilitatea ca utilizatorii să-şi împărtăşească impresiile despre ea ci şi să cumpere! Vom face o singură pagina pentru coşul de cumpărături, pagină cu ajutorul căreia vom putea adauga, modifica sau scoate cărţi din coş şi asta în mai puţin de 100 de linii de cod. Dar înainte de a începe ne întrebăm, pe bună dreptate: dacă vizitatorul adaugă o carte în coş dar apoi doreşte să cumpere altă carte, unde se păstrează informaţiile despre prima carte vândută? Nu se pierd odată ce a ieşit din pagina cos.php?
Am putea oare să le păstrăm în baza de date? Am putea dar pentru asta ar trebui să corelăm informaţia din baza de date cu utilizatorul şi ar fi destul de complicat.
Am putea să trimitem informaţiile despre cartea cumparată mai departe prin URL? şi aşa ar fi prea complicat. Din fericire, PHP ne oferă o metodă foarte usoara şi la îndemană de a păstra informaţiile, pe tot timpul cât este vizitat site-ul: sesiunile.
Sesiuni
Sesiunile sunt mijlocul prin care putem păstra o serie de informaţi în memorie. Astfel, cumpărătorul nostru poate adauga o carte în coş şi apoi să continue să viziteze site-ul. Informaţiile despre cartea sau cărţile deja adăugate în coş se vor păstra în memorie şi noi le putem accesa doar atunci când este nevoie. Sesiunile expiră după 3 ore (puteţi lăsa browserul deschis peste noapte şi dimineaţă să reîncărcaţi o pagină care afişează nişte variabile de sesiune pentru a vedea că nu sunt acolo) sau după ce toate instance browserului sunt închise. Într-o sesiune datele pot fi salvate într-o variabilă de tip array, numita $_SESSION. înainte de a folosi această variabilă pentru a stoca informaţii trebuie să apelăm funcţia predefinită session_start(). session_start porneşte o sesiune dacă nu există niciuna sau o reiniţializează / continuă pe cea existentă. dacă aceasta a fost deja pornită.
Informaţiile din sesiune, spre deosebire de cookie-uri, sunt stocate pe server directorul pentru fisiere temporare, Pe unele sisteme Windows, dacă directorul temporar nu este setat cum trebuie, va trebui să deschideţi php.ini şi să setaţi chiar voi directorul temporar unde să fie păstrate sesiunile. Pentru a vedea dacă configuraţia dvs. este corectă, creaţi un nou fisier sesiune.php în care scrieţi: