{"id":2624,"date":"2026-04-27T09:34:49","date_gmt":"2026-04-27T06:34:49","guid":{"rendered":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/?page_id=2624"},"modified":"2026-04-27T09:46:44","modified_gmt":"2026-04-27T06:46:44","slug":"programare-web-laborator-php","status":"publish","type":"page","link":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/programare-web\/programare-web-laborator-php\/","title":{"rendered":"Programare Web: Laborator PHP"},"content":{"rendered":"<h2>Lectur\u0103 obligatorie<\/h2>\n<p><a href=\"https:\/\/www.w3schools.com\/php\/default.asp\" target=\"_blank\" rel=\"noopener\">PHP 5 Tutorial<\/a><\/p>\n<h2>Cerin\u021b\u0103 de implementare<\/h2>\n<p>Pentru aplica\u021bia web dezvoltat\u0103 p\u00e2n\u0103 \u00een prezent \u00een cadrul orelor de laborator, implementa\u021bi func\u021bionalit\u0103\u021bile de mai jos. Backend-ul va fi scris \u00een PHP vanilla (f\u0103r\u0103 utilizarea altor framework-uri, libr\u0103rii sau extensii ale limbajului). Singurele extensii permise sunt cele din <a href=\"https:\/\/pear.php.net\/\" target=\"_blank\" rel=\"noopener\">PHP PEAR<\/a> (PHP Extension and Application Repository). La implementarea func\u021bionalit\u0103\u021bilor de mai jos nu se va utiliza JavaScript \u0219i nicio libr\u0103rie de frontend derivat\u0103 sau bazat\u0103 pe JavaScript.<\/p>\n<ol>\n<li>Autentificare: aplica\u021bia va permite autentificarea utilizatorilor cu un nume de utilizator \u0219i o parol\u0103, care vor fi stocate pe server \u00eentr-o baz\u0103 de date MySQL \/ MariaDB.<\/li>\n<li>Managementul sesiunii: implementa\u021bi func\u021bionalit\u0103\u021bi de login \u0219i logout. Accesul la anumite pagini va fi permis doar dac\u0103 utilizatorul este autentificat \u0219i are rolul corespunz\u0103tor (exemplu analog din aplica\u021bia AcademicInfo: notele pot fi vizualizate doar dac\u0103 studentul este autentificat; notele nu pot fi introduse \u00een catalog dac\u0103 utilizatorul nu este autentificat, nu are rol de profesor sau nu este titularul disciplinei respective),<\/li>\n<li>Baza de date: pe partea de backend vor exista minimum dou\u0103 tabele SQL, \u00eentre care s\u0103 existe o rela\u021bie.<\/li>\n<li>Func\u021bionalitate \u201eRemember me\u201d: aplica\u021bia va permite op\u021biunea \u201eRemember me\u201d la autentificare, implementat\u0103 cu ajutorul unui cookie persistent.<\/li>\n<li>Captcha: formularul de login va include un control de tip CAPTCHA (se poate utiliza o solu\u021bie din PHP PEAR).<\/li>\n<li>Upload de fi\u0219iere: aplica\u021bia va permite utilizatorului \u00eenc\u0103rcarea unui fi\u0219ier (de exemplu o cerere, poz\u0103 de profil etc.), salvarea acestuia pe server, precum \u0219i \u0219tergerea lui.<\/li>\n<li>Precompletare formulare: cel pu\u021bin o pagin\u0103 \/ un view va con\u021bine controale de tip <code>input<\/code> \/ <code>select<\/code> \/ <code>option<\/code> \/ <code>textarea<\/code> precompletate cu informa\u021bii existente \u00een baza de date.<\/li>\n<li>Acces la baze de date: pe partea de backend se vor utiliza at\u00e2t func\u021biile din familia MySQLi, c\u00e2t \u0219i PDO (PHP Data Objects) pentru interac\u021biunea cu baza de date. De asemenea, aplica\u021bia va permite conectarea la cel pu\u021bin o baz\u0103 de date adi\u021bional\u0103 (de exemplu: SQLite, PostgreSQL etc.), \u00een afara de MySQL \/ MariaDB.<\/li>\n<\/ol>\n<p>\u00cen cadrul orelor de laborator pot fi enun\u021bate \u0219i cerin\u021be suplimentare fa\u021b\u0103 de cele enumerate mai sus. Pentru fiecare \u00eentrebare adresat\u0103 de cadrul didactic referitoare la codul surs\u0103 al rezolv\u0103rii, la care studentul nu \u0219tie s\u0103 r\u0103spund\u0103, se vor sc\u0103dea 2 puncte din nota laboratorului.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lectur\u0103 obligatorie PHP 5 Tutorial Cerin\u021b\u0103 de implementare Pentru aplica\u021bia web dezvoltat\u0103 p\u00e2n\u0103 \u00een prezent \u00een cadrul orelor de laborator, implementa\u021bi func\u021bionalit\u0103\u021bile de mai jos. Backend-ul va fi scris \u00een PHP vanilla (f\u0103r\u0103 utilizarea altor framework-uri, libr\u0103rii sau extensii ale&hellip; <a href=\"https:\/\/www.cs.ubbcluj.ro\/~bufny\/programare-web\/programare-web-laborator-php\/\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":267,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/wp-json\/wp\/v2\/pages\/2624"}],"collection":[{"href":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/wp-json\/wp\/v2\/comments?post=2624"}],"version-history":[{"count":3,"href":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/wp-json\/wp\/v2\/pages\/2624\/revisions"}],"predecessor-version":[{"id":2628,"href":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/wp-json\/wp\/v2\/pages\/2624\/revisions\/2628"}],"up":[{"embeddable":true,"href":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/wp-json\/wp\/v2\/pages\/267"}],"wp:attachment":[{"href":"https:\/\/www.cs.ubbcluj.ro\/~bufny\/wp-json\/wp\/v2\/media?parent=2624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}