Programare Web: Laborator PHP

Lectură obligatorie

PHP 5 Tutorial

Cerință de implementare

Pentru aplicația web dezvoltată până în prezent în cadrul orelor de laborator, implementați funcționalitățile de mai jos. Backend-ul va fi scris în PHP vanilla (fără utilizarea altor framework-uri, librării sau extensii ale limbajului). Singurele extensii permise sunt cele din PHP PEAR (PHP Extension and Application Repository). La implementarea funcționalităților de mai jos nu se va utiliza JavaScript și nicio librărie de frontend derivată sau bazată pe JavaScript.

  1. Autentificare: aplicația va permite autentificarea utilizatorilor cu un nume de utilizator și o parolă, care vor fi stocate pe server într-o bază de date MySQL / MariaDB.
  2. Managementul sesiunii: implementați funcționalități de login și logout. Accesul la anumite pagini va fi permis doar dacă utilizatorul este autentificat și are rolul corespunzător (exemplu analog din aplicația AcademicInfo: notele pot fi vizualizate doar dacă studentul este autentificat; notele nu pot fi introduse în catalog dacă utilizatorul nu este autentificat, nu are rol de profesor sau nu este titularul disciplinei respective),
  3. Baza de date: pe partea de backend vor exista minimum două tabele SQL, între care să existe o relație.
  4. Funcționalitate „Remember me”: aplicația va permite opțiunea „Remember me” la autentificare, implementată cu ajutorul unui cookie persistent.
  5. Captcha: formularul de login va include un control de tip CAPTCHA (se poate utiliza o soluție din PHP PEAR).
  6. Upload de fișiere: aplicația va permite utilizatorului încărcarea unui fișier (de exemplu o cerere, poză de profil etc.), salvarea acestuia pe server, precum și ștergerea lui.
  7. Precompletare formulare: cel puțin o pagină / un view va conține controale de tip input / select / option / textarea precompletate cu informații existente în baza de date.
  8. Acces la baze de date: pe partea de backend se vor utiliza atât funcțiile din familia MySQLi, cât și PDO (PHP Data Objects) pentru interacțiunea cu baza de date. De asemenea, aplicația va permite conectarea la cel puțin o bază de date adițională (de exemplu: SQLite, PostgreSQL etc.), în afara de MySQL / MariaDB.

În cadrul orelor de laborator pot fi enunțate și cerințe suplimentare față de cele enumerate mai sus. Pentru fiecare întrebare adresată de cadrul didactic referitoare la codul sursă al rezolvării, la care studentul nu știe să răspundă, se vor scădea 2 puncte din nota laboratorului.