Introducere în PHP – Ghidul de la A la Z

În partea anterioară a ghidului complet în PHP am discutat despre lucrurile elementare: variabile, funcții și integrarea formularelor cu PHP. Partea a doua a ghidului este o completare la prima și nu numai, tot în aceasta putând fi găsite  informații despre loops, arrays și câteva funcții noi ce le-ai putea utiliza în proiectele tale. Ținând cont că formele HTML sunt principalul loc unde apare PHP, m-am gândit că ar fi mai bine dacă aș amănunți și mai mult acest capitol.

În tutorialul anterior s-a discutat despre $_POST și $_GET. În acesta vom discuta de încă 3 variabile superglobale: $_FILES, $_COOKIES și $_SESSION.

 

1.$_FILES – încărcarea unei imagini

Mai jos este un exemplu edificator care va arată cum puteți maxima utilizarea funcției $_FILES. Puteți găsi o mulțime de informații pe manualul php.net, dar în exemplul de mai jos o să găsiți toate informațiile necesare pentru a înțelege exemplul. Totuși, înainte de a vedea exemplul o să vă spun unde puteți utiliza aceasta funcție. Funcția $_FILES se utilizează în special la încărcarea imaginilor, videoclipurilor sau mai bine spus a aplicațiilor media.

Iar acum, să explicăm codul de mai sus. Forma HTML știm cu toții pentru ce este, dar singurul lucru nou ce l-am adăugat este enctype(type of encoding). El anunță browser-ul că prin acest formular se vor încărca pe server fișiere, date în general și de aceea vom avea nevoie ca acesta să ne furnizeze niște mici elemente particulare.

Cum funcționează file upload? Chiar și în absența codului PHP, imaginea este încărcată într-un fișier temporar, cu un nume temporar de asemenea. Codul PHP doar preia imaginea din folderul temporar și o plasează în folderul creat de noi, uploads. Simplificat spus, va trebui să luăm o imagine dintr-un loc și să o punem în alt loc.

Începem cu două variabile, $file_name respectiv $tmp_dir. Prima variabilă ne ajută să aflăm numele imaginii, iar $tmp_dir ne furnizează numele temporar al imaginii.

În pasul următor identificăm formatul imaginii și aruncăm o excepție dacă nu am găsit un format corespunzător. În acest exemplu prindem excepția cu blocul catch, deși adesea preferăm doar să o aruncăm și să o prindem în altă parte. Pentru a realiza verificarea formatului utilizăm funcția preg_match. Preg_match este o funcție care verifica dacă un parametru sau mai mulți există într-un anumit string sau o variabilă în cazul nostru. Fără $ de la final, userul ar putea încărca un fișier de forma gif.exe, lucru nedorit. Deci…după cum vă așteptați $-ul forțează ca imaginea să aibă extensiile specificate numai la final.

Adăugarea operatorului ! la început semnalează dacă cerința nu este respectată – dacă nu s-a găsit vreo extensie corespunzătoare atunci afișează un anumit mesaj. Dacă cerința este respectată atunci vom muta fila recent încărcată în folderul uploads. De asemenea, dacă am ajuns în acel punct înseamnă ca toți parametrii au fost adevărați – vom actualiza variabila $status, căreia îi vom asigna parametrul true.

Apoi scriptul PHP merge sub forma HTML.Dacă scriptul a ajuns în stadiul în care a încărcat imaginea, înseamnă că totul a fost adevărat => $status este “pornit”. Dacă variabila este “pornită”, atunci putem în final să-i dăm userului un link pentru a-și vedea imaginea.

 

2.$_COOKIE – Când și unde să-l utilizăm?

Un cookie este utilizat adesea pentru a identifica un user. El conține o cantitate redusă de informații pe care site-ul și-ar dori să le insereze în computerul userului. De fiecare dată când intri pe aceeași pagină într-un browser, se va trimite cookie-ul deja existent, iar în acest fel se oferă un grad de permanentizare site-ului(ex. username și parola gata completate până săptămâna viitoare). Putem utiliza PHP pentru a crea și citi cookie-uri.

În exemplul de mai jos puteți vedea un caz simplu de utilizare a cookie-urilor – afișarea unui mesaj de bun venit. Dacă intri pentru prima oară pe acea pagina te va întâmpina cu un mesaj de bun venit! Dacă intri a doua, a treia sau a n-oara te va întâmpina cu un alt mesaj. Când userul intră pe pagina recent creată el nu are nici un cookie în calculator de la acea pagină. Fiindcă nu are, afișăm mesajul de bun venit și creăm un cookie. Cookie-ul va rămâne stocat pe PC și, la următoarea vizită, îi vom arată alt mesaj…simplu! Iar acum să transpunem în cod.

Iar acum codul pentru eliminare.php, pagina ce ne va ajuta să ștergem cookie-ul. Ștergându-l vom primi din nou mesajul de întâmpinare pentru un nou venit.

 

3.$_SESSION

Față de funcția $_COOKIE, unde putem seta timpul până la autodistrugerea cookie-ului, funcția $_SESSION se va autodistruge imediat după ce ieși din browser. Iar acum te întrebi? La ce ne-ar ajuta asta? Nu ar fi mai bine să utilizăm atunci funcția $_COOKIE? Principala trăsătură a unui cookie este timpul său de expirare. Acela este un parametru fix, dar există foarte multe cazuri când am vrea un cookie mai special, activ doar când user-ul este pe site. Odată ce userul pleacă, am vrea să ștergem acel cookie. Totuși o astfel de abordare presupune un timp de expirare variabil…userul e asincron…pleacă și vine când vrea. Tocmai de aceea, apare necesitatea unei noțiuni noi, sesiunea(studenții înțeleg ((-: ).

De asemenea, și din motive de siguranță, utilizăm $_SESSION fiindcă cine știe…un hacker ar putea să descarce acel cookie și ar putea să îți vadă astfel username-ul și parola.

Mai jos este un exemplu elocvent care vă arată importanța funcției session; este un script de logare ce conține 3 file PHP. Prima conține pagina de logare, a doua este pagina destinată membrilor, iar a treia este cea de delogare.

Acum să explicăm ce este cu pagina de mai sus. Singurul lucru pe care îl punctez este că pentru a ne conecta la baza de date folosim PDO(PHP Data Objects). El este de fapt o clasă ce conține o mulțime de metode. Pentru a accesa aceste metode trebuie desigur să ne-o instanțiem printr-un obiect și să accesăm metodele de bază, pentru a ne putea conecta și interoga baza de date. Dacă studiați mai atent codul o să observați că este și un pic de MySQL. În tutoriale nu am acoperit și MySQL, dar puteți afla o mulțime de lucruri pe mysql.com sau php.net. Dar ca să vă fie mai ușor, mai jos este codul MySQL necesar pentru a crea tabelele și baza de date.

După ce am creat baza de date, cu tabelul și cele 3 câmpuri am introdus un username și o parolă.

Se observă ca sus, în antet am creat o sesiune care să memoreze parola și username-ul. Acestea provin de la variabilele din partea de jos a scriptului.

Iar acum pagina de logout:

Din exemplele de mai sus putem observa un lucru.Pentru a initializa o sesiune trebuie declarata sus în antetul paginii. Pentru a face acest lucru utilizăm funcția session_start(); și pentru a termina o sesiune, inclusiv cu informațiile ce le conține vom utiliza funcția session_destroy(); care trebuie să fie desigur după session_start();

Pentru sugestii sau eventuale completări nu evitați să lăsați un comentariu.

Ștefănescu Marian

Pasionat de științe exacte, drumeții.

1 Comment

  1. Vadim   •  

    Interresant cred ca ma ajutat putin mai arata si cu ce cod pot introduce o poza la limbajul PHP

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.