CONECTAREA PAGINILOR WEB A BAZE DE DATE Ivan George -Robert COORDONATOR ȘTIINȚIFIC Asist. Dr. Tudor Irina Iulie 2017 CRAIOVA 1 Cuprins Capitolul 1…. [627334]

UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE ȘTIINȚE
DEPARTAMENTUL DE INFORMATICĂ

PROIECT DE DIPLOMĂ
Ivan George -Robert

COORDONATOR ȘTIINȚIFIC
Asist. Dr. Tudor Irina

Iulie 2017
CRAIOVA
UNIVERSITATEA DIN CRAIOVA

FACULTATEA DE ȘTIINȚE
DEPARTAMENTUL DE INFORMATICĂ

CONECTAREA PAGINILOR WEB A BAZE DE
DATE

Ivan George -Robert

COORDONATOR ȘTIINȚIFIC
Asist. Dr. Tudor Irina

Iulie 2017
CRAIOVA

1

Cuprins
Capitolul 1. Noțiuni introductive despre Web Server ………………………….. ………………………….. ….. 4
1.1 . Ce este HTTP? ………………………….. ………………………….. ………………………….. ……………. 4
1.2. Ce este HTML? ………………………….. ………………………….. ………………………….. ………………… 6
1.3. Elemente de marcare HTML ………………………….. ………………………….. ………………………….. 9
1.4. Ce este un script CGI? ………………………….. ………………………….. ………………………….. …….. 11
1.4.1. Scopul standardului CGI ………………………….. ………………………….. ……………………….. 11
1.4.2. Exemple de scripturi CGI, cereri și răspunsuri ale serverelor Web ………………………. 13
1.5. Ce este un sistem de operare? ………………………….. ………………………….. ……………………….. 17
Capitolul 2. PHP ………………………….. ………………………….. ………………………….. ………………………. 20
2.1. Ce este PHP? ………………………….. ………………………….. ………………………….. ………………….. 20
2.2. Sintaxe de bază în PHP ………………………….. ………………………….. ………………………….. ……. 22
2.3. Gestionarea formularelo r cu PHP ………………………….. ………………………….. ………………….. 26
2.4. API, MySQLi, PDO și informații depsre conectarea la baza de date folosind PHP ………. 33
2.4.1 Ce este un API? ………………………….. ………………………….. ………………………….. ………… 33
2.4.2. Ce este un Connector? ………………………….. ………………………….. ………………………….. . 34
2.4.3. Ce este un Driver? ………………………….. ………………………….. ………………………….. ……. 35
2.4.4. Ce este o Extensie? ………………………….. ………………………….. ………………………….. …… 36
Capitolul 3. CSS ………………………….. ………………………….. ………………………….. ………………………. 36
3.1 . Ce este CSS? ………………………….. ………………………….. ………………………….. …………….. 36
3.1.1. Ce este și cum funcționeză un limbaj de tip Style Sheet? ………………………….. ……. 37
3.1.2. Componente ………………………….. ………………………….. ………………………….. …………. 37
3.2. Informații despre funcționabilitatea CSS ………………………….. ………………………….. ………… 39
3.2.1. Selectori ………………………….. ………………………….. ………………………….. ………………….. 40
3.2.2. Blocu l de declarații ………………………….. ………………………….. ………………………….. .. 44
3.2.3. Folosire ………………………….. ………………………….. ………………………….. ……………….. 45

2
3.2.4. Surse ………………………….. ………………………….. ………………………….. …………………… 47
3.2.5. Specificitate ………………………….. ………………………….. ………………………….. …………. 48
3.2.6. Moștenire ………………………….. ………………………….. ………………………….. …………….. 50
Capitolul 4. Prezentarea aplicației ………………………….. ………………………….. ………………………….. . 51
4.1. Interfața grafică ………………………….. ………………………….. ………………………….. ………………. 51
4.2. Coșul de cumpărături ………………………….. ………………………….. ………………………….. ………. 54
4.3. Panou de administrare ………………………….. ………………………….. ………………………….. ……… 59
Capitolul 5. Concluzii ………………………….. ………………………….. ………………………….. ……………….. 62
Capitolul 6. Bibliografie ………………………….. ………………………….. ………………………….. ……………. 63

3
INTRODUCERE

Odată cu apariția primului “World Wide Web” server și browser, creat de Tim Berners –
Lee în anul 1990, care a fost dat în folosință pentru uzul comercial în 1991 E -Commerce -ul a
inceput să prindă rădăcini. primele inovații în materie de E -Commerce au apărut în anul 1994
odată cu deschiderea primului sistem de online banking și deschiderea unui magazin de Pizza
creat de Pizza Hut.
Apariția E -Commerce -ului a făcut ca Web -ul să aibă o dezvoltare prolifică întrucat ideea
de a putea cumpăra, verifica și compara produsul fără a fi nevoie să te deplasezi la magazinul
respectiv a adus mulți susținători. O ramură importa ntă în dezvoltarea web au avut -o si
companiile ce veneau cu soluții de encrypție a datelor, securitatea informațiilor fiind o mare
problemă a web -ului în primii ani de existență.
Creearea de platforme unice și sigure care să atragă clienți era o provocare întrucât
securitatea informațiilor la debutul e -commerce -ului reprezenta o mare problemă, iar majoritatea
fondurilor pentru platforme erau investiți în metode de criptare și securizare a datelor pentru a
asigura consumatorilor de web o navigare sigură și c ertitudinea faptului că informațiile personale
sau bancare nu erau compromise sau furate.

Dezvoltarea web -ului nu a fost posibilă și nu este în continuare posibilă fără ajutorul web
serverelor. Un Web server este o colecție de aplicații, baze de date car e găzduiesc o pagină web
și o pun la dispoziția utilizato rilor prin protcolul HTTP. Web serverul conține mai multe relații
prin acre se transmit date externe sau interne, către web server sau dinspre web server către
client. Interdependența server -client s e bazează pe o aplicație de pe server care este programată
pentru transferul de fisiere sau date între client și server de obicei majoritatea serverlor web
folosesc Apache pentru această interdepentență. Informațiile transmise sau cerute de către
utilizato r sunt procesate de către un script CGI care verifică corectitudinea datelor introduse de
către utilizator sau permisiunea de a cere date de la server, cele mai folosite script -uri în ziua de
azi sunt PHP, Python, Perl. Datele introduse care conțin informa ții despre adresa, email, parolă
sunt introduse sau retrase dintr -o bază de date. Cele mai folosite baze da date de către web
serverele contemporane sunt MariaDB, MySQL, Drizzle.

4

Hypertext Transfer Protocol este metoda cea mai utilizată pentru transmitere a de
informații între client și server, este protocolul implicit al WWW sub formă de text. Cerințele
HTTP -ului sunt ca pe calculatorul unde se va salva informația să existe un program care înțelege
protocolul.

Capitolul 1. Noțiuni introductive despre Web Server

Un Web Server este acel server ce conține o colecție de aplicații specifice pentru citirea
unei pagini web și procesarea de informații trimise dinspre sau către server. El folosește
protocolul HTTP pentru transmisia de date, cerințele server -ului sunt acelea de a avea o aplicație
predestinată citirii de informații, de obicei se găsește în sistemul de operare al serverului.
Informațiile transmise către server sunt prelucr ate cu ajutorul scripturilor CGI ulterior datele
obținute prin prelucrarea informațiilor se pot introduce intr -o bază de date.
1.1 . Ce este HTTP?

Hypertext Transfer Protocol sau abreviat HTTP este un protocol prin care utilizatorul
comunică cu serverul pentru a face transfer de informații, el este fundamentul pentru comunicații
de date. HTTP este la bază un protocol de comunicare pe bază de TCP/IP, utilizat pentru a
furniza date (fisere imagine, rezultate ale unor interogări, fisiere HTML). Pentru a transfera
fisiere este nevoie de un port deschis către server și destinatar prin care informația să comunice,
implicit portul este 80 dar pot fi folosi te si alte porturi. HTTP -ul reprezintă un mod standardizat
de calculatoare pentru a comunica unul cu altul. El precizează modul în care informațiile vor fi
construite și trimise la server, precum și răspunsul serverelor la aceste solicitări.

5

1. Diagramă funcționare protocol HTTP

6
Încă de la începuturi chiar dacă autorul său Tim Berners -Lee a încercat să asigure un
transfer al datelor fară posibilitatea de a fi interceptat sau decriptat de alte surse decât server -ul și
browser -ul utilizatorului acest lucru nu a fost posibil decât pr in alte versiuni ulterioare ale
protocolului care au luat naștere odată cu dezvoltarea rapidă a web -ului. Versiunile consacrate și
acceptate de majoritatea serverelor ale HTTP -ului sunt:
 HTTP V0.9. Apărut în anul 1991 a fost prima versiune documentată a
protocolului publicată de către propiul autor Tim Berners -Lee. Au apărut verisuni
ulterioare ale protcolului dezvoltate de către alți teriți sub forma de
conveții(standarde). La aceste versiuni au lucrat mai multe grupuri cum ar fi
HTTP Working Group (HTTP W G) sau World Wide Web Consortium (W3C)
 HTTP V1.0. Apărut în anul 1996 odată cu standardul RFC 1945 (Request for
Comments) a adus în plus față de predecesorul său noi metode pe transmitere a
informațiilor precum și fișierele antet.
 HTTP/1.1. Apărut în anul 1997 standardul RFC 2068 a adus noi imbunătățiri.
Actualizări și îmbunătățiri ulterioare au fost aduse și in anul 1999.
 HTTP/2. A fost publicat in anul 2015 odată cu standardul RFC 7540

1.2. Ce este HTML?

HyperText Markup Language sau abreviat HTML este folosit pentru creerea paginilor
web într -un browser sau navigator. El este un limbaj de marcare ce este utilizat pentru
prezentarea ifnormațiilor – paragrafe, fonturi, tabele.
Apărut în anul 1993 sub simplul nume de HTML a evoluat pe parcursul anilor pentru a
putea oferii utlizatorului o experiență a navigatului pe o pagină web foarte plăcută prin simpla
înșiruire și prezentare a informațiilor. Este o formă de marcare orientată spre r amura de
prezentare a documentelor de tip text pe o singură pagină, ea folosește un program de redare
specializat, numit și agent utilizator HTML , cel mai bun software fiind browserul web. A fost
proiectat și gandit pentru a putea fi citit și editat de oam eni utilizând un editor de text simplu.
Totuși scrierea și modificarea lui necesită cunoștințe de bază a limbajului.

7
HTML -ul poate fi generat automat de către tehnologii de codare din partea serverului
cum ar fi PHP, JSP sau ASP și este interpretat de ser ver precum un cod HTML scris într -un
editor text.
Întrebuințările HTML -ului sunt multe el este folosit în ziua de azi chiar și în e -mail-uri.
Majoritatea aplicațiilor de e -mail folosesc un editor HTML încorporat pentru compunerea e –
mail-urilor și un motor de prezentare a e -mail-urilor de acest tip. Folosirea e -mail-urilor HTML
este un subiect controversat de acestea multe companii de mail le blochează intenționat.

Pentru a fi interpretate paginile HTML trebuie să aibe extensia fișierului “.html” sau
“.htm”. Un cod HTML este format din etichete și tag -uri. Etichetele sunt perechi, una de
deschidere <scrisIngrosat> și una de inchidere </scrisIngrosat> . Tag -urile sunt etichete care nu
au pereche , ele nu se închid și se folosec ca atare <tag /> . Ethichetele p ot primii in mare parte
attribute specific etichetei respective <scrisIngrosat atribut=”litere”> .
Componen ța unui document HTML este formată din 3 părți principale :
1. Versiunea HTML pe care o va folosii documentul
2. Zona antetului cu ethichetele <head> </head >
3. Zona cuprinsului cu etichetele <body> </body> sau <frameset> </frameset>
Versiunile cele mai utilizate în acest moment ale HTML -ului sunt :
 HTML 4.01 Strict
<!DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
 HTML 4 .01 Transitional
<!DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
 HTML 4.01 Frameset
<!DOCTYPE HTML PUBLIC " -//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

8
 HTML 5
<!DOCTY PE HTML>

HTML nu poate rula f ără ethichete cheie care determină și spun browserului sau
navigatorului de unde încep anumite secțiuni ale codului :
 <html> și </html> precizează browserului faptul că între aceste două etichete se va scrie
cod HTML
 <head> , </head> precizeaza browserului ca intre aceste două etichete se va scrie cod
HTML ce are legătură cu antentul, exemplu: legături cu alte fișiere externe, date despre
autor, date despre fila curentă, date ce pot fi preluate de către motoarele de căutare, ti tlul
documentului sau scripturi .
 <body> , </body> conține toate ethichetele afișate de către browser pe ecran.
Exemplu de pagină HTML care nu conține un specificator de versiune, browserul afisează
ethichetele dar nu poate fi interogat despre eventualele er ori:
<html>
<head>
<title>Exemplu</title>
</head>
<body>
Hello world!
</body>
</html>

HTML permite plasarea de comentarii în cod, acest lucru este realizat prin si mbolulrile
de inceput <!– comentariu se incheie odată cu detectarea simbolurilor de final –> . Textul
introdus intre aceste simboluri nu va fi interpretat de browser și nu va fi afișat către utilizator
totuși el poate fi găsit în fișier sau în sursa paginii.

9
1.3. Elemente de marcare HTML

Documentele HTML deși trebuie să conțină o structură specifică ethichetele și tag -urile
nu sunt case -sensitive, dar pentru compatibilitatea cu XHTML se scriu cu litere mici.
HTML -ul conține tag -uri utile pentru plasarea conținutului in pagină. Prin acesta textul
este mai ușor de citit și evidențiat
1. Etichet e și tag -uri care definesc stilul de afișare
 <b> </b> între aceste două ethichete textul va apărea îngroșat (bold)
 <i> </i> între aceste două ethicete textul va apărea înclinat (italic)
 <u> </u> între aceste două etichete textul va apărea subliniat (underline)
 <strong> </strong> între aceste două etichete textul va apărea
îngroșat (strong)
 <big> </big> între aceste două etichete textul va apărea MAI MARE
 <small> </small> între aceste două etichete textul va apărea mai mic.
 <sub> </sub> între aceste do uă etichete textul va apărea ca un indice .
 <sup> </sup> între aceste două etichete textul va apăreaca un exponent.
 <font size=”14” color=”red”> </font> între aceste două etichete textul va
apărea cu un font de 14 și o culoare roșie. Atributele din interioru l
ethichetei font -ului dau aparența textului.
 <pre> </pre> între aceste două etichete textul va apărea ca un text normal
doar că nu va fi interpretat de browser și va fi afișat ca atare, în iteriorul
lui se pot scrie ethichete acestea nu vor fi luate în co nsiderare, este folosit
pentru a afișa linii de cod HTML fără ca acestea să fie luate în
considerare.
 <code> </code> între aceste două etichete textul va apărea ca un text
normal este folosit pentru a specifica faptul că între aceste ethichete se află
cod ce nu aparține de HTML.
 <center </center> între aceste două etichete textul va apărea textul va
apărea centrat

10
2. Etichete ce definesc titluri:
 Ele sunt definite prin ethichetele <h1> pan ă la <h6>, mărimea lor fiind de
la mare la mic alături de importanța lo r cu cifra din etichetă este mai mică
cu atat importanța este mai mare.
3. Etichete și tag -uri ce definesc sectiuni :
 <div> </div> între aceste două etichete textul va aparține unei diviziuni
specifice și va fi formatat conform stilizării paginii respective sa u
prelucrat conform scripturilor aflate pe pagina respectivă.
 <p> </p> între aceste două etichete textul va fi interpretat ca un paragraf.
 <hr> acest tag va face ca linia curentă să fie trasată de la stanga la dreapta
cu o linie verticală
 <br> acest tag va face ca de la apri ția lui browserul sa treacă la o linie
nouă
4. Etichete ce definesc liste :
 <ul> </ul> între aceste două etichete se scriu elemente ce vor face parte
dintr -o listă nenumerotată(unordered list)
 <ol> </ol> între aceste două etichete se scriu e lemente ce vor face parte
dintr -o listă numerotată(ordered list)
 <li> </li> între aceste doua etichete se vor scrie elementele unei liste,
indiferent de tipul listei, un element între 2 tag -uri.
Exemplu :
<ul>
Lista cumparaturi
<li> Ou ă </li>
<li> Paine </li>
<li> Lapte </li>
</ul>
5. Etichete ce definesc tabelele:
 <table> </table> între aceste două etichete se vor scrie alte etichete ce țin
de structura unui tabel în HTML.
 <tr> </tr> va forma o linie noua în tabel.
 <td> < /td> va forma o celula nou ă în tabel
 <th> </th> este o celul ă din antet

11
 <thead> </thead> define ște secțiunea antet din tabel
 <tbody> </tbody> definește secțiunea body din table
1.4. Ce este un script CGI?

CGI sau Common Gateway Interface în programare es te un protocol standard pentru
serverele web. El are scopul și servește executarea programelor de tip aplicație consolă ( numite
și CLI, Command -line interface programs). Un CGI rulează pe un server web și generează pagini
web în mod dinamic. Programele pe care le rulează un CGI se numesc scripturi CGI. Modul în
care un script CGI va fi executat pe server este determinat de server. În cea mai mare parte din
timp un script CGI este folosit pentru a fi executat odată cu cererea de către utilizator și
genereaz ă cod HTML.
1.4.1 . Scopul standardului CGI
Fiecare server web rulează un soft de recunoaștere a protocolului HTTP, el răspunde la
cerere făcute din browser. În general, serverul HTTP are un director care este proiectat pentru a
colecționa. Odată făcută conexiunea cu serverul HTTP se pot transmite f ișiere către browserul
web, către serverul HTTP sau către toate browserele conectat la acel server HTTP. Folderul
principal dintr -un server HTTP se găsește de obicei sub locația /user/localserver/apache/htdocs
iar dacă numele domeniului server -ului este „h ttp://domeniu.ro” fi șierul care va fi executat prima
data prima dată va avea numele „index” iar in prioritate sunt extensile scripturilor CGI („.php”,
„.asp”, ”.py”) apoi extensia HTML.
Inițial, serverele foloseau software -uri diferite pentru a determina cum se va face
schimbul de informații. Ca rezultat, multe părți din scripturile apărute cu primele servere nu
functionau fără modificări chiar dacă serverul era la fel, odată schimbată modalitatea de schimb a
informațiilor scriptul trebuia adaptat pentru acel server. Acest lucru a devenit un motiv pentru a
se stabili un standard pentru schimbarea informațiilor numit CGI, ce definește un mod comun de
a interacționa cu schimbul de informații. Paginile web generate de programe ce sunt implicate în
soft-ul ser verului si respectă standardul CGI se numesc scripturi CGI.
Standardul a fost repede adoptat și în ziua de azi este suportat de majoritatea important a
software -urilor serverelor cum ar fi Apache, IIS, Nginx sau mai nou serverle bazate pe node.js

12
În primii ani a apariției web scripturile CGI era folosite pentru a procesa formulare. La
debut HTML -ul conținea formulare care aveau în eticheta lor un atribut acțiune ce specifica
fisierul către care se vor transmite informațiile. Odată apăsat butonul de tr imitere URI -ul era și
informațiile din formular erau trimise către fișierul specificat în atributul acțiune sub forma de
„query string”
Un server web își lasă propietarul să configureze ce URL -uri o să fie procesate de
scripturile CGI.
Acest lucru se fac e de obicei marcând un director din fișierul de configurare de
documente ce conține un script CGI. Numele lui este de obicei cgi -bin. De exemplu folderul
/user/local/apache/htdocs/cgi -bin poate fi asignat ca fiind un folder CGI pe serverul nostru web.
Cand un server web face o c erere de URL care indică către un fisier dintr -un folder CGI (e.x.,
http://example.com/cgi -bin/printenv.pl/with/additional/path?and=a&query=string) serverul web
nu va trimite către browser fisierul respective el va rula fișierul (/usr/local/apache/htdocs/cgi –
bin/printenv.pl) iar HTTP -ul va trimite după procesarea datelor din fișier informațiile prelucrate
către browser -ul web aceste informații pot fi text, fișiere sau cod HTML.
După cum a fost remarcat mai sus standardul CGI definește modalitatea prin care
informația adițională este trimisă odată cu cererea către script. De exemplu, dacă se adaugă
slashuri și nume de directoare sau variabile de exemplu /with/additional/path , atunci calea este
salvată în variabila globală PATH _INFO înainte ca scriptul să fie rulat. Dacă parametrii sunt
trimisi prin metoda GET a protocolului HTTP (adică un semn de intrebare va fi pus după URL
urmat de un parametru și valoarea lui http ://exemplu.com/calcul.php?paramentru=valoare) atunci
parametri i sunt salvati in variabila QUERY_STRING înainte ca scriptul să fie rulat. Dacă
parametrii sunt trimisi către script prin metoda POST a protocolului HTTP, ei sunt trimisi direct
către intrarea standard a scriptului. Scriptul poate citii aceste variabile sa u date de intrare și se
poate adapta la cerereile pe care le face browserul către el.

Când un server Web execută un script CGI el produce o intrare în consolă folosind
variabilele globale sau intrările standard. Intrarea standard este ca și scrierea de m ana a
informaților într -o consolă, în acest caz în scriptul CGI, web server -ul face scrierea. Scriptul CGI
scrie datele de ieșire într -un standard de ieșire prestabilit, iar datele de ieșire prelucrate sunt
transmire către browser ca și pagină HTML.

13

1.4.2 . Exemple de scripturi CGI, cereri și răspunsuri ale serverelor Web

In exemplul de mai jos avem un script CGI scris în limbajul de programare Perl care arată
toate variabilele ce au fost trimise către serevrul Web

#!/usr/bin/perl

=head1 DESCRIPTION

printenv — Un program CGI care afiseaza variabilele curente

=cut
print "Content -type: text/plain \n\n";

for my $var ( sort keys %ENV ) {
printf "%s = \"%s\"\n", $var, $ENV {$var};
}

Dacă browserul Web face o cerere cu o metoda GET un server Web pe 64 de biți ce
rulează Microsoft Windows cygwin intoarce următoarele informații (exemplu) :
COMSPEC="C: \Windows \system32 \cmd.exe"
DOCUMENT_ROOT="C:/Program Files (x86)/Apache Software
Foundation/Apache2.2/htdocs"
GATEWAY_INTERFACE="CGI/1.1"
HOME="/home/SYSTEM"
HTTP_ACCEPT="text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_CHARSET="ISO -8859 -1,utf-8;q=0.7,*;q=0.7"
HTTP_ACCEPT_ENCODING="gzip, deflate"

14
HTTP_ACCEPT_LANGUAGE="en -us,en;q=0.5"
HTTP_CONNECTION="keep -alive"
HTTP_HOST="example.com"
HTTP_USER_AGENT="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101
Firefox/5.0"
PATH="/home/SYSTEM/bin:/bin:/cygdrive/c/progra~2/php:/cygdrive/c/windows/system32:…"
PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC"
PATH_INFO="/foo /bar"
PATH_TRANSLATED="C: \Program Files (x86) \Apache Software
Foundation \Apache2.2 \htdocs \foo\bar"
QUERY_STRING="var1=value1&var2=with%20percent%20encoding"
REMOTE_ADDR="127.0.0.1"
REMOTE_PORT="63555"
REQUEST_METHOD="GET"
REQUEST_URI="/cgi –
bin/printenv.pl/foo/bar?var1=value1&var2=with%20percent%20encoding"
SCRIPT_FILENAME="C:/Program Files (x86)/Apache Software Foundation/Apache2.2/cgi –
bin/printenv.pl"
SCRIPT_NAME="/cgi -bin/printenv.pl"
SERVER_ADDR="127.0.0.1"
SERVER_ADMIN= "(server admin's email address)"
SERVER_NAME="127.0.0.1"
SERVER_PORT="80"
SERVER_PROTOCOL="HTTP/1.1"
SERVER_SIGNATURE=""
SERVER_SOFTWARE="Apache/2.2.19 (Win32) PHP/5.2.17"
SYSTEMROOT="C: \Windows"
TERM="cygwin"
WINDIR="C: \Windows"

15
Nu toate variabilele prezente sunt definite de standardul CGI. De obicei variabilele ce
sunt definite de standardul CGI sunt cele ce incep cu PATH_INFO, QUERY_STRING, HTTP_
(care este folosita pentru a face cereri HTTP)
Din informațiile date putem să ne dăm seama că browserul folosit este Firefox care
rulează pe un sistem de operare Windows 7, serverul Web este Apache ce rulează pe un sistem
de simulează Unix și faptul că scriptul se numeste /cgi -bin/printenv.pl
Conținutul generat de program poate fi orice, atata timp cat est e scris sub standardul de
iesire serverul web o să îl trimită către browser.
Următoarele variabile sunt transmise către scripturile CGI :
 Variabile specifice serverului :
 SERVER_SOFTWARE : numele/versiunea serverului HTTP.
 SERVER_NAME : numele sau adresa IP a gazdei .
 GATEWAY_INTERFACE : CGI /versiune .
 Veriabilele specifice cererii :
 SERVER_PROTOCOL : HTTP/ versiune .
 SERVER_PORT : TCP port (zecimal ).
 REQUEST_METHOD : numele metodei HTTP folosit ă.
 PATH_INFO : informații despre calea ce se va accesa .
 PATH_TRANSLATED : locație cu calea completă de pe server, dacă există
PATH_INFO .
 SCRIPT_NAME : calea relativă către script, /cgi-bin/script.cgi .
 QUERY_STRING : partea din URL d e dupa caracterul ?. Șirur de interogare poate fi
compus din perechi *name =value separate prin caracterul & (cum ar
fi var1=val1&var2=val2…) acestea sunt folosite cand se transmite informație folosind
metoda GET a protcolului HTTP definită de HTML application/x -www -form –
urlencod ed.
 REMOTE_HOST : numele gazdei utilizatorului .
 REMOTE_ADDR : Adresa IP a utilizatorului (zecimala cu punct ).

16
 AUTH_TYPE : tipul de autentificare dacă este cazul .
 REMOTE_USER variabila folosită pentru diferitele tiprui de AUTH_TYPE .
 REMOTE_IDENT : verifică identarea, numai dacă serverul a fost setat să facă asta .
 CONTENT_TYPE : Setează tipul conținutului dacă informația a fost transmisă prin una
dintre metodele PUT sau POST, specificate în antetul HTTP .
 CONTENT_LENGTH : Lungimea conținutul in cifre zecimale care este definită în
antetul HTTP .
 Variabilele trimise de utilizator mai pot conține
(HTTP_ACCEPT , HTTP_ACCEPT_LANGUAGE , HTTP_USER_AGENT , HTTP_
COOKIE ș.a.m.d ) ce conțin valori specifice antetului HTTP și au același sens cu cele de
mai sus .
Programul returnează rezultatul sub forma standardului de ieșire, care începe cu antetul și
o linie goală.
Antetul este criptat în așa f el încat și antentul HTTP trebuie să conțină tipul MIME la fel
ca și documentul returnat. Antetele, suplimentate de serverul Web, sunt în general transmise
către browser odată cu răspunsul de la HTTP.
Mai jos avem un program ce calculează suma a două nume re întregi, programul este scris
în Python împreună cu codul HTML și este rulat de CGI -ul de pe serverul Web:
<!DOCTYPE html>
<html >
<body >
<form action ="adunare .cgi" method ="POST" >
Introduce ți cele două numere :<br />
Primul număr : <input type="text" name ="num1" /><br />
Al doilea număr : <input type="text" name ="num2" /><br />
<input type="submit" value ="Adunare " />
</form >
</body >
</html >

17
Codul de mai sus este prez ent într -un fișier de pe serverul Web, odată apăsat butonul de
Adunare o să ne trimită către „adunare.cgi” ce conține următorul cod:
#!/usr/bin/python

import cgi
import cgitb
cgitb .enable ()

input_data =cgi.FieldStorage ()

print 'Content -Type:text/html' #Continut html
print #Lasam o linie goala
print '<h1> Rezultate adunarii </h1>'
try:
num1 =int(input_data ["num1" ].value )
num2 =int(input_data ["num2" ].value )
except :
print '<p>Ne cerem scuze dar nu putem aduna doua numere care nu sunt intregi .</p>'
return 1
sum=num1 +num2
print '<p>{0} + {1} = {2}</p>' .format (num1 ,num2 ,sum)

Fisierul va trimite inapoi c ătre utilizator și browserul lui web o pagină de tip HTML cu
rezultatele aferente rulării codului.
1.5. Ce este un sistem de operare?

Sistemul de operare este un sistem software ce administrează componentele har d și
resursele soft și furnizează servicii comune pentru programele din calculator. Înafară de
firmware -uri toate programele de pe un calculator necesită un sistem de operare pentru a
funcționa.

18
Sistemele de operare programează sarcinile prin intermediul time -sharing în așa fel încât
mai mulți utilizatori pot folosii resursele sistemului într -un mod eficient fără ca acesta să se
blocheze sau să închidă accesul către alte resurse.
Pentru funcțiile componentelor hardware, fie ele de intrar e și de ieșire sau alocare de
memorie, sistemul de operare actionează ca un intermediar între componentele hardware și
programe, deși codurile din aplicații cateodată fac apeulri ce trimit către o funcție din sistemul de
operare sau sunt intrerupte de acea sta, componentele hardware de obicei execută aceste lucruri.
Sistemele de operare sunt regăsite pe multe dispozitive ce conține computere – de la super
computere către servere web către console de jocuri către telefoane mobile.

Există multă tipuri de sisteme de operare, fiecare proiectat pentru a fi performant în
anumite situații cheie. Cele mai cunoscute tipuri de sisteme de operare sunt :
 Single – and multi -tasking, un sistem single -taskin g poate s ă ruleze un singur program
simultan, în schimb un sistem multi -tasking poate să ruleze mai multe prorame în paralele
în același timp. Acest lucru se datorează time -sharing -ului, care împarte timpul dintre
anumite operații din interiorul procesorul ui către alte operații. Toate sistemele de operare
ce au la bază Unix folosesc multi -tasking fie le pe 16 sau 32 de biti.
 Single and multi -user, un sistem single -user nu distinge utilizatorii unii de alții dar poate
să ruleze mai multe programe în tandem. In schimb un sistem multi -user extinde
conceptul de bază a unui sistem multi -tasking și poate împărții resursele, procesele și
2. Diagramă funcționare sistem de
operare

19
spațiul de pe disk către mai mulți utilizatori și permite acestor utilizatori să folosească
atât resursele lor cât și pe cele ale altor utilizatori.
 Templated, un sistem de operare template este distribuit și folosit prin intermediul
serverelor cloud, acesta creează o imagine unice a unei mașini virtuale ce are rolul unui
sistem de operare „guest”, apoi acesta se salvează cu ajotrul anumitor instrumente pentru
a fi folosit mai departe pe alte mașini virtuale. Tehnica este foarte utilizată în domeniul
virtualizării și foarte popular î n depozitele mari de servere.
 Embedded, un sistem de operare embedded este proiectat să ruleze pe comp utere
embedded. În mare parte sunt proiectate să ruleze pe dispositive mici ca și PDA -urile ce
au autonomie mică. Sunt făcute în așa fel încât să opereze cu un număr de resurse
limitate. Sunt proiectate pentru a fi foarte compacte și eficiente.
 Real-time, un sistem de operare real -time garantează faptul că o să proceseze un
eveniment sau anumite date la un moment specific din timpul zilei. Un sistem real -time
poate fi single – sau multi -tasking, în cazul în care este multitasking, el folosește algoritmi
speciali pentru a programa un anumit eveniment sau a procesa datele la timp.
 Library, un sistem de operare library este acel sistem de operare care foloseste serviciile
oferite sub forma de librări. Aceste librări sunt compuse cu ajutorul aplicațiilor și a
codurilor pentru a construii unikernels, cautare intr -un singur spațiu de memorie, sau
imagini ale mașinilor virtuale pentru a putea fi folosite pe servere cloud sau sisteme
embed ded.

20
Capitolul 2. PHP

2.1. Ce este PHP?
PHP este un limbaj server -side scripting care a fost proiectat pentru dezvoltarea web dar
este folosit in ziua de azi ca un limbaj de programare întreg. Original creat de autorul sau,
Rasmus Lerdorf, în anul 1994 el este acum produs de o echipa de rezvoltare și r eferențiere
numită „The PHP Development Team”. Acronimul PHP a provenit în trecut de la „Personal
Home Page” dar în prezent numele său a fost modificat și păstrat în cel de „PHP: Hypertext
Preprocessor”

Dezvoltarea PHP -ului a început în anul 1995 când au torul său Ramus Lerdorf a scris
numeroase CGI -uri în limbajul de programare C cu scopul de ași întrețina propia pagină web. El
a extins aceste CGI -uri pentru a putea lucra cu baze de date și forumlare denumind astfel propia
creație în „Personal Home Page/F orms Interpreter” sau pe scrut PHP/FI.

PHP/FI a fost proiectat pentru a ajuta la creerea de pagini web dinamice. Pentru a
accelera depanarea și rezolvarea eventualelor erori el a lansat limbajul sub numele de „Personal
Home Page Tools (PHP Tools) versio n 1.0” pe forumul Usenet în anul 1995 pe data de 8 iunie.
Această lansare deja deținea funcționabilitățile de bază pe care le avea PHP -ul în anul 2013.
Funcționabilități care includeau abilitatea de a lucra cu formulare, de a insera cod HTML,
variabile def inite aproximativ ca în limbajul Perl, diferența era ca era mult mai simplu de folosit,
mai limitat si mai puțin consistent decât Perl.

Intenția lui Lerdorf nu era aceea ca PHP -ul să devină un nou limbaj de programare. O
echipă de dezvoltare a început să se formeze iar după luni de muncă și testare au lansat PHP/FI 2
pe 2 noiembrie 1997.

În 1997 Zeev Suraski și Andi Gutmans au rescris parser -ul de bază al PHP -ului (soft -ul
ce forma structurile de date după ce ele au fost trimise către server) punând ast fel bazele PHP 3

21
și schimbând numele lui în acronimul recursiv „PHP: Hypertext Preprocessor”. După lansare
testarea cu publicul a PHP -ului 3 a început în anul 1998. Suraski și Gutmans au început apoi să
rescrie funcționabilitățile de bază ale limbajului cr eeând astfel Zend Engine în anul 1999. Zend
Engine este motorul ce interpretează PHP -ul, a apărut odată cu PHP 4 și a fost scris în C fiind un
modul back -end care pentru prima dată putea fi folosit î nafară aplicațiilor PHP. El oferă
gestionarea memoriei și a resurselor, și alte servicii de bază pentru limbajul PHP. Performanța,
fiabilitatea și puterea de extindere au jucat un rol foarte important în creșterea semnificativă a
PHP-ului.
Zend Engine este folosit intern de PHP ca și un compilator și ca motor d e rulare. Script –
urile PHP sunt încărcate în memorie și compilate în opcode -urilor (parți ce dictează limbajului
mașină ce operații trebuie făcute pentru fișierul respective) iar după rularea opcode -urilor
rezultatul HTML este trimis către utilizator.
Structur a interpretoarelor este una simplistă care se rezumă la 3 părți de bază:
 Partea interpretorului care analizeaz ă codul introdus, îl traduce și îl execută.
 Partea funcționabilității care implementează funcționabilitatea limbajului (funcțiile,
denumirea de variabile etc).
 Partea de interfață care comunică cu serverul Web.
Zend se ocupă în totalitate de partea 1 și o porțiune din partea 2. PHP -ul se ocupă complet de
partea 2 și 3.

3. Diagramă ce arată cum funcționează motorul Zend împreună cu alte funcționabilități.

22
2.2. Sintaxe de bază în PHP

Pentru ca interpretatorul de pe serverul Web s ă citească codul PHP acesta trebuie să
indeplinească 3 pași.
 Fișierul din care a fost executat să aibă extensia .php
 Codul să fie corect din punct de vedere sintatic altfel pagina va afișa erori
 Codul să fie scris între ethichete PHP

<?php
//Etichete PHP, codul trebuie scris între aceste două etichete pentru a putea fi interpretat.
?>

Afișarea mesajelor de tip text pe chat se face prin comanda „echo” urmată de șirul de
caractere pe care dorim să îl afișăm :

<?php
echo "Primul meu cod PHP" ;
?>

Rezultatul generat va fi urm ătorul

4. Pagina generata din codul anterior

23
Fiind un limbaj high -end și interpretabil PHP -ul nu are nevoie, în mare parte din timp, să
îi specificăm tipul de variabile pe care dorim să îl folosim, el îl va determina singur fără nici o
problemă :
<?php

$variabila1 = 3; //Variabila de tip intreg
$variabila2 = 0.9; //Variabila cu zecimala dupa virgula
echo $variabila1 + $variabila2 ; //Rezultatul adunarii

?>

Acest cod se va rula, întrucat PHP -ul față de alte limbaje de programare cum ar fi
C/C++/C#, Java încearcă să interpreteze tipul variabilelor. Rezultatul obținut este:

Deși în mare parte din timp PHP -ul încearcă să interpeteze variabilele cand vine vorba de
vectori aceștia trebuie definiți prin comanda array() care ii spune variabilei curente faptul ca ea
este un vector.

5. Pagina rezultat adunare

24
<?php

$vector = array (); //Definim variabila vector ca fiind un vector de elemente
$vector [1] = 2; //Primul cu indexul 1 element valoare de tip integer
$vector [3] = 3; //Al doilea element cu indexul 3, valoare de tip integer
$vector [6] = "string" ; //Al 3 -lea element cu indexul 6, valoare de tip sir de caractere
$vector [-1] = 4.2; //Al 4 -lea element cu idnexul -1, valoare de tip float

var_dump ($vector ); //Afisam informatiile din vector

?>

După cum se poate vedea în exemplul de mai sus PHP -ul nu restricționează tipul unui
vector la un set de date în plus știe să lucreze cu index -uri negative iar pentru valori de tip șir de
caractere nu este nevoie copierea lor în vector ci doar asignarea șirului de caractere.

6. Rezultat afisare elemente din ve ctor

Creerea variabilelor în PHP necesită doar simbolul $ înainte de prima literă, ele nu pot
începe cu cifre sau alte simboluri care sunt predestinate altor operații de exemplu următorul cod
va genera o eroare :

25

<?php

$3 = 5;

echo $3;

?>

Eroarea generat ă este următoarea:

7. Pagina eroare

Însă underline este un simbol acceptat următorul cod fiind valid și rulând afișând pe ecran
rezultatul dorit .
<?php

$_asdas = 3;

echo $_asdas ;

?>

26

2.3. Gestionarea formularelor cu PHP

Pentru ca PHP -ul să se poat ă folosii de formulare acesta are nevoie de creerea unui
formular sintactic corect in HTML , iar scriptul să fie apelat de acel formular. Mai jos avem un
exemplu care arată cum trebuie scris un formular în HTML.
<form action= "php.php" method= "post" >
<h2> Adunarea, înmulțirea și împărțirea a 2 valori date </h2>
Valoare 1: <input type= "number" name= "valoare1" ><br/>
Valoare 2: <input type= "number" name= "valoare2" ><br/>
<input type= "submit" value= "Calculează" >
</form>

Odat ă apăsat se va trimite prin metoda specificată în atributul „method” valorile către
fișierul specificat în atributul „action” al etichetei form. Fișierul PHP conține următoarele linii de
cod.
<?php

$variabila1 = $_POST ['valoare1' ];
$variabila2 = $_POST ['valoare2' ];

$suma = $variabila1 + $variabila2 ;

$produs = $variabila1 * $variabila2 ;

$cat = $variabila1 / $variabila2 ;

echo "Suma este: " . $suma ;
echo "<br/>" ;
echo "Produsul este: " . $produs ;
echo "<br/>" ;

27
echo "Catul este: " . $cat;

?>

Codul HTML generază următoarea pagină .

La apăsarea butonului calculează se va transmite către fișierul php.php de pe serverul
web prin metoda POST valorile din casetele formularului. Rezultatul va fi cod HTML pe care îl
afișează PHP -ul.

8. Pagina formular inainte de procesare

28

Următoarele date au fost trimise către fișier în antetul paginii și au fost interpretate de
către serevrul Web.
HTTP/1.1 200 OK =>
Date => Wed, 26 Jul 2017 17:33:39 GMT
Server => Apache/2.2.22 (Ubuntu)
Location => localhost/php.php
Vary => Accept -Encoding
Content -Length => 76
Connection => close
Content -Type => text/html

În exemplul de mai jos vom calcula suma, produsul și câtul celor două variabile folosind
metoda GET în locul metodei POST. Codul HTML este următorul:
<form action= "php.php" method= "get">
<h2> Adunarea, înmulțirea și împărțirea a 2 valori date </h2>
Valoare 1: <input type= "number" name= "valoare1" ><br/>
Valoare 2: <input type= "number" name= "valoare2" ><br/>
9. Pagina formular dupa procesare

29
<input type= "submit" value= "Calculează" >
</form>

Observa ți cum singura diferență între POST și GET când vine vorba de codul HTML este
doar specificarea metodei în atributul method din eticheta formularului. Pagina generată ulterior
este idetică la aparență cu cea din exemplul anterior.

Deși aspectul este identic codul PHP trebuie modificat astfel încât să reflecte faptul că
retragem informația din URL prin metoda GET.
<?php

$variabila1 = $_GET ['valoare1' ];
$variabila2 = $_GET ['valoare2' ];

$suma = $variabila1 + $variabila2 ;
10. Pagina formular GET

30

$produs = $variabila1 * $variabila2 ;

$cat = $variabila1 / $variabila2 ;

echo "Suma este: " . $suma ;
echo "<br/>" ;
echo "Produsul este: " . $produs ;
echo "<br/>" ;
echo "Catul este: " . $cat;

?>

Odată ce este apăsat butonul calculează URL se modifică și ne trimite către fișierul
specificat adică php.php, adițional la acest URL se adaugă toate casetele din formulare respectiv,
URL -ul devenind http://localhost/php.php?valoare1=12&valoare2=20 . La fel cum putem
obersva în poza de mai jos codul PHP rulează în același mod odată ce i -am adus modificările
necesare .

11. Pagina formular GET procesat

31
Dacă metoda POST necesită un formular prin care să se transmită datele pentru metoda
GET acest lucru nu mai este valabil, putând ac cesa script -ul PHP chiar dacă nu este apelată
pagina HTML ci doar URL către calea script -ului împreună cu variabilele necesare. De exemplu
accesând link -ul http://localhost/php.php?valoare1=15 &valoare2= 40 direct din browser va avea
același efect ca și apăs area butonului.

PHP-ul poate genera cod HTML în funcție de condițiile ce ii se dau, de exemplu el poate
genera o pagină diferită dacă butonul de trimitere a formularului a fost apăsat înainte. Din aceast
motiv se spune că el poate genera pagini web dinami ce, întrucat acestea se schimbă și se mulează
după datele pe care le primesc de la utilizatori sau deținători.

Codul de mai jos va genera o pagina care se va schimba odat ă cu apăsarea butonului
„Apasă” .

<!DOCTYPE html>
<html>
<head>
<title> <?php if (isset($_POST ['buton' ])) echo "Titlu 2" ; else echo "Titlu 1" ; ?></title>
</head>

<body>
<h1> <?php if (isset($_POST ['buton' ])) echo "Formular trimis" ; else echo "Formular
netrimis" ; ?></h1>

<form method= "post" action= "php.php" >
<input type= "submit" value= "Apasa" name= "buton" >
</form>

</body>
</html>

32

Pagina generată înainte de apăsarea butonului:

Pagina generată după apăsarea butonului:

13.Pagina rezultat functie isset

PHP a detectat faptul că butonul a fost apăsat și a schimbat titlul și conținutul paginii.
12. Pagina testare functie isset

33
2.4. API, MySQLi, PDO și informații depsre conectarea la baza de
date folosind PHP

2.4.1 Ce este un API?

Appilcation Programming Interface sau API definește clase, metode, funcții și variabile
pe care aplicația ta va trebuii să le apeleze pentru a obține un rezultat împreună cu un set de date.
În acest caz aplicațiile care trebuie să comunice cu bazele date au nevoie de unul sau mai multe
API-uri. Majoritatea lor se regăsesc în extensi ile PHP -ului.
Stilurile API -urilor pot fi procedurale sau orientate pe obiecte. Cu un API procedural
apelezi funcțiile pentru a obține rezultatul dorit, cu un API orientat pe obiecte inițializezi clase
apoi apelezi metodele acelor clase pentru a obține un obiect ce conține rezultatele dorite. Dintre
cele două cea mai bună este ceea pe care o preferi sau varianta care duce la cele mai moderne
implementari și un cod bine organizat.

În imaginea de mai jos aveți ilustrată cum funcționează un API atunci când este apelat.

14. Diagrama API

34
2.4.2 . Ce este un Connector?

În documentația MySQL termenul de connector se referă la o parte din software care ne
permite aplicației noastre să se conecteze la un server cu bază de date MySQL. MySQL deține
conectori pentru o varietate largă de limbaje de programare, unul dintre ele fiind și PHP.
Dacă aplicația ta necesită să comunice cu un server ce conține o bază de date trebuie să
scrii cod PHP care să execute astfel de activități , conectarea la baza de d ate, verificarea
conexiunii către cod și baza de date, interogarea bazei de date precum și alte opreații specifice
bazelor de date. Software -ul trebuie să conțină API -ul pe care aplicația PHP o va folosii și va
trebuii să poată să manipuleze conexiuni într e aplicația ta și serverul ce conține baza de date,
posibil să fie nevoie de alte librări intermediare pe parcursul procesului. Acest software este
cunoscut sub numele generic de connector, ceea ce îți permite conectarea aplicației tale la un
server cu o b ază de date.

În imaginea de mai jos aveți reprezentat rolul conectorului

15. Diagrama connector

35

2.4.3 . Ce este un Driver?

Driver -ul este aceea parte din software proiectată să comunice cu un tip specificat de bază
de date. Driver -ul poate apela la librări, cum ar fi MySQL Client Library sau la alte drivere
MySQL Native Driver. Aceste librări implementeză un protocol low -level folosit pentru
comunicarea cu un server ce deține bază de date MySQL.
De exemplu stratul de abstra cție al bazei de date PDO (sau PHP Data Objects) folosește
mai multe drivere specifice pentru a realiza acest lucru. Unul dintre drivere este chiar PDO
MySQL driver, care ne lasă să interferăm cu interfața serverului MySQL.
De multe ori persoanele foloses c termenii de connector și driver pe dos, ceea ce poate
duce la confuzie. În documentația MySQL termenul de „driver” este rezervat pentru un software
ce prevede o parte a unui connector folosită special pentru conectarea la o bază de date specifică.

În imaginea de mai jos putem observa cum functionează un driver :

16. Diagrama driver

36
2.4.4. Ce este o Extensie?

În documentația PHP o să ne întâlnim de multe ori cu termenul de extensie. Codul PHP
este format dintr -un miez căruia ii se pot aduce extensii suplimentare pentru mai multă
funcționabilitate. Extensiile ce țin de PHP MySQL, cum ar fi extensia mysqli și extensia mysql,
sunt implmentate folosind framework -ul PHP extension.
O extensie dezvăluie un API către programator, ceea ce îi p ermite să folosească
facilitățile lui. Totuși, unele extensii care folosesc frameworkul PHP extension nu dezvăolui un
API către programator.
Termenii API și extensie nu trebuie să fie confundați cu faptul că înseamnă același lucru,
întrucat extensia nu tr ebuie să îi dea acces programatorului la un API.
Care sunt principalele API -uri din PHP pe care le oferă MySQL? Există trei API -uri
principale când dormi să ne conectăm la un server cu bază de date MySQL :
 PHP's MySQL Extension
 PHP's mysqli Extension
 PHP D ata Objects (PDO)
Fiecare dintrele ele are avantajele și dezavantajele propii. În discuția de mai jos voi încerca să
fac o scurtă descriere despre fiecare API cât și ceea ce oferă în plus.
Capitolul 3. CSS

3.1 . Ce este CSS?

CSS sau Cascading Style Sheets este un limbaj de tip style sheet folosit pentru a înfățișa
prezentarea unui document scris intr -un limbaj de tip markup. Deși este folosit cel mai des
pentru a seta un stil vizual pentru pagini web și interfațe pentru utilizatori scrise în HTML
sau XHTML, el poate fi olosit pe orice document de tip XML (inclusive XML simplu, SVG
și XUL) ș i este aplicabil pentru redarea în vorbire . Împreună cu HTML și JavaScript, CSS
este o piatră de temelie folosită de majoritatea siteurilor web pentru a crea con ținut captivant

37
pentru utilizatori, interfațe pentru aplicațiile web, interfațe de utlizator pentru multe aplicații
mobile.
3.1.1. Ce este și cum funcționeză un limbaj de tip Style Sheet?

Un limbaj de tip style sheet este un limbaj de programare creat cu scoup d e a infrumuseța
prezentarea unor documente structurate. O parte atractiva a acestor limbaje de programare este
faptul că diferite stiluri pot fi aplicate pe structura logică a documentului pentru a produce
diferite prezentări ale documentului.
Un limbaj de programare modern de tip style sheet cu o mare răspândire este chiar Cascading
Style Sheets, care este folosit pentru a stiliza documente scrie in limbaje precum HTML,
XHTML, SVG, XUL, precum și alte limbaje de programare de tip markup.
Pentru stilizarea conținutului din documentele ce urmează să fie prezentate un set de reguli
stilistice trebuie aplicate, reguli care descriu spre exemplu culoarea, font -ul sau așezarea în
pagină. O colecție de reguli stilistice se numeste fisier de tip style sheet. Style s heets care
prezintă documente scrise au o lungă istorie, ele au fost folosite prima dată de către editoarele de
text și tipografii pentru a asigura consistența prezentărilor, ortografia și punctuația. În publicarea
electronică, style sheet -urile sunt folos inte cel mai des pentru prezentarea vizuală în defavoarea
ortografiei și a punctuației.

3.1.2. Componente

Sintaxa este unul dintre principalele componente a unui limbaj de prog ramare de tip style
sheet. O sintaxă este necesară pentru a exprima totul într -o man ieră în care și mașina și omul
poate citii. De exemplu mai jos regăsim o sintaxă CSS :
h2 { font -size: 12px }

38
Selectorii specifică care elemente o să fie sub influența regulii de stilizare. Astfel ei devin
lipiciul dintre structurile documentului și regulile stilizării într -un limbaj de tip style sheet. În
exemplul de mai sus selectorul „h2” selectează toate eleme ntele de tip h2. Selectori complexi
sunt folosiți pentru a selecta elemente pe baza contextului lor, a atributelor sau a conținutului.

17. Selectori CSS
Toate limbajele de tip style sheet au conceptual de propietăți cărora trebuie să le atribui
valori prestabilite sau logice pentru ca aspectul unui element să se modifice. Propietatea „font –
size” folosită mai este strict o propietate a limbajului CSS. Limbajele de tip style sheet au de
obicei în jur de 50 care ajută la prezentarea documentelor.

18. Pl asare propietăți CSS

39
Toate limbajele de programare de tip style sheet suportă un fel de model de formatare.
Multe limbaje de tip style sheet au un model de formatare vizual care arată, în cateva detalii, cum
este textul și alt conținut așexat în prezenta rea finală. De exemplu, modelul de formatare CSS
specifică faptul că elementel e de tip block -level (din care "h2 " este un exemplu) se extind pentru
a umple lățimea elementului părinte. Unele limbaje style sheet au un model de formatare audio.

19. Mode l formatare vizuala CSS
3.2. Informații despre funcționabilitatea CSS

CSS este conceput în primul rând pentru a permite separarea prezentării și a conținutului,
inclusiv aspecte precum layou t-ul, culorile și fonturile. Această separare poate îmbunătăți
accesibilitatea conținutului, poate oferi mai multă flexibilitate și control în specificațiile
caracteristicilor de prezentare, permite mai multor pagini HTML să partajeze formatarea prin
specificarea CSS -ului relevant în tr-un fișier separat .css și să reducă complexitatea și repetarea în
conținutul structural.
Separarea formatării și a conținutului face posibilă prezentarea aceleiași pagini de
marcare în diferite stiluri pentru diferite metode de randare, cum ar fi pe ecr an, prin imprimare,

40
prin voce (prin intermediul browserului bazat pe vorbire sau cititor de ecran) și tactil pe baza
unor dispositive care redau alfabetul Braille . De asemenea, poate afișa diferit pagina web, în
funcție de dimensiunea ecranului sau de disp ozitivul de vizualizare. De asemenea, cititorii pot
specifica o altă foaie de stil (style sheet) , cum ar fi un fișier CSS stocat pe calculatorul propriu,
pentru a l înlocui pe cel specificat de autor.
Modificările aduse designului grafic al unui document (s au a sute de documente) pot fi
aplicate rapid și ușor , prin editarea câtorva linii din fișierul CSS pe care îl folosește apicația , mai
degrabă decât prin modificarea marcajului în documente.
Specificația CSS descrie o schemă prioritară pentru a determina c e reguli de stil se aplică
dacă mai multe reguli se potrivesc cu un anumit element. În această așa -numită cascadă,
prioritățile (sau greutățile) sunt calculate și atribuite regulilor, astfel încât rezultatele să fie
previzibile.
Specificațiile CSS sunt men ținute de Consorțiul World Wide Web (W3C). Internet media
type (tip MIME) text/ css este înregistrat ă pentru utilizare a CSS cu revizia RFC 2318 (martie
1998). W3C operează un serviciu gratuit de valida re CSS pentru documente.

3.2.1. Selectori

În CSS, sele ctorii declară care parte a marcajului aplică un stil prin potrivirea etichetelor și
atributelor în marcajul propriu -zis/
Selectorii se pot aplica la:
 Toate elementele de tipul specific, de ex. Anteturile de nivelul al doilea h2
 Elemente specificate prin a tribut, în special:
 Id: un identificator unic în cadrul documentului
 Clasă: un identificator care poate adnota mai multe
elemente într -un document
 Elemente în funcție de modul în care sunt plasate în raport cu ceilalți în arborele
de documente.

41
Clasele și ID-urile sunt case -sensitive, încep cu litere și pot include caractere
alfanumerice și subliniere. O clasă se poate aplica oricărui număr de elemente de elemente. Un
ID poate fi aplicat numai unui singur element.
Pseudo -clasele sunt folosite în selectorii CSS pentru a permite formatarea pe baza
informațiilor care nu sunt conținute în arborele de documente. Un exemplu de pseudo -clasă pe
scară largă este :hover care identifică conținutul numai atunci când utilizatorul "indică"
elementul vizibil, de obicei ți nând cursorul mouse -ului peste el. Acesta este atașat unui selector
ca în a:hover sau #elementid :hover . O pseudo -clasă clasifică elementele documentului,
cum ar fi :link sau :visited întrucât un pseudo -element face o selecție care poate consta din
elemente parțiale, cum ar fi ::first-line sau ::first-letter .
Selectorii pot fi combinați în multe feluri pentru a obține o mare spe cificitate și
flexibilitate. Selectorii multipli pot fi uniți într -o listă distanțată pentru a specifica elementele
după locație, ti p de element, id, clasă sau orice combinație a acestora. Ordinea selectorilor este
important. De exemplu, div .myClass {color: red;} se aplic ă tuturor elementelor din
clasa myClass care sunt în interiorul elementelor div, în timp ce .myClass div{color: red;}
se aplică tuturor elementelor div care se află în elementele clasei myClass.

Următorul tabel oferă un rezumat al sintaxei selectorului care indică utilizarea și
versiunea CSS care a introdus -o.
Model Folosin ță Prima dată
aparută în CSS
E Un element de tip E 1
E:link Un element E este ancora sursă a unei hiperlegături a cărei
destinație nu este încă vizitată (: link) sau deja vizitate (:
visited) 1
E:active Un element E în timpul anumitor acțiuni ale utilizatorilor 1
E::first -line Prima linie formatată a unui element E 1

42
E::first -letter Prima literă formatată a unui element E 1
.c Toate elementele cu clasa = "c" 1
#myid Elementul cu id = "myid" 1
E.warning Un element E a cărui clasă este "avertizare" (limbajul
documentului specifică modul de determinare a clasei) 1
E#myid Un element E cu ID egal cu "myid" 1
E F Un element F descendent al unui element E 1
* Orice element 2
E[foo] Un element E cu un atribut "foo" 2
E[foo="bar"] Un element E a cărui valoare de atribut "foo" este exact
egală cu "bar" 2
E[foo~="bar"] Un element E a cărui valoare de atribut "foo" este o listă a
valorilor separate de spațiul alb, dintre care unul este exact
egal cu "bar" 2
E[foo|="en"] Un element E al cărui atribut "foo" are o listă de valori
separate prin liniuțe începând (din stânga) cu "en" 2
E:first -child Un element E, primul copil al părintelui său 2
E:lang(fr) Un element de tip E în limba "pentru" (limba de
documentare specifică modul în care limba este
determinată) 2
E::before Conținut înainte de conținutul elementului E 2

43
E::after Conținut după conținutul elementului E 2
E > F Un element F descedent al unui element E 2
E + F Un element F precedent imediat de un element E 2
E[foo^="bar"] Un element E a cărui valoare de atribut "foo" începe exact
cu șirul „bar” 3
E[foo$="bar"] an E element whose "foo" attribute value ends exactly with
the string "bar" 3
E[foo*="bar"] Un element E a cărui valoare de atribut "foo" se termină
exact cu șirul "bar" 3
E:root Un element E, rădăcina documentului 3
E:nth -child(n) Un element E, al n -lea copil al părintelui său 3
E:nth -last-
child(n) Un element E, al n -lea copil al părintelui său, numărând de
la ultimul 3
E:nth -of-type(n) Un ele ment E, cel de -al doilea frate al tipului său 3
E:nth -last-of-
type(n) Un element E, cel de -al doilea frate de tip, numărând de la
ultimul 3
E:last -child Un element E, ultimul copil al părintelui său 3
E:first -of-type Un element E, primul frate de același tip 3
E:last -of-type Un element E, ultimul frate de același tip 3

44
E:only -child Un element E, numai copilul părintelui său 3
E:only -of-type Un element E, doar pentru fratele său de același tip 3
E:empty Un element E care nu are copii (inclusiv noduri de text) 3
E:target Un element E fiind ținta adresei URL de trimitere 3
E:enabled Un element de interfață cu utilizatorul E care este activat 3
E:disabled Un element de interfață cu utilizatorul E care este dezactivat 3
E:checked Un element al interfeței utilizator E care este bifat (de
exemplu, un buton radio sau casetă de selectare) 3
E:not(s) Un element E care nu se potrivește cu selectorii simpli s 3
E ~ F Un element F precedat de un element E 3

3.2.2. Blocul de declarații

Un bloc de declarație constă dintr -o listă de declarații în bretele. Fiecare declarație în sine
constă dintr -o proprietate, doua puncte (:) și o valoare. Dacă există mai multe declarații într -un
bloc, trebuie puse punct și virgulă (;) pentru a separa fiecare declarație.

Proprietățile sunt specificate în standardul CSS. Fiecare proprietate are un set de valori
posibile. Unele proprietăți pot afecta orice tip de element, iar altele se aplică numai anumitor
grupuri de elemente.

45
Valorile pot fi c uvinte cheie, cum ar fi "center" sau "inherit ", sau valori numerice, cum ar
fi 200px (200 pixeli), 50vw (50% din lățimea ferestrei) sau 80% (80% din lățimea ferestrei).
Valorile culorilor pot fi specificate cu ajutoru l cuvintelor cheie (de ex. "red "), valorilor
hexazecimale (de ex., # FF0000, de asemenea abreviate ca # F00), valorilor RGB pe o scară de la
0 la 25 5 (e.x. rgb(255, 0, 0)) Valorile RGBA care specifică atât transparența culorii, cat și cea
alfa(e.x. rgba (255, 0, 0, 0.8)), sau HSL sau HSLA valori (e.x . hsl( 000, 100%, 50%),hsla(
000, 100%, 50%, 80%)).

3.2.3. Folosire

Înainte de CSS, aproape toate atributele de prezentare ale documentelor HTML erau
conținute în marcajul HTML. Toate culorile fontului, stilurile de fundal, alinierile elementului,
marginea și dimensiunile trebuiau să fie descrise în mod explicit, adesea în mod repetat, în cadrul
codului HTML. CSS permite autorilor să mute o mare parte din acea informație într -un alt fișier,
foaia de stil, rezultând un HTML mult mai simplu.

De exemplu, titlurile (elementele h1), sub -rubricile (h2), sub -subtitlurile (h3), etc., sunt
definite structural folosind HTML. În imprimantă și pe ecran, alegerea fontului, dimensiunii,
culorii și accentului pentru aceste elemente este prezentată.

Înainte de CSS, autorii de documente care au dorit să atribuie astfel de caracteristici
tipografice, să spunem că toate titlurile h2 au trebuit să repete marcajul de prezentare HTML
20. Model bloc declarații

46
pentru fiecare apariție a tipului de titlu. Acest lucru a făcut ca documentele să fie mai complexe,
mai mari și mai greșite și mai greu de întreținut. CSS permite separarea prezentării de structură.
CSS poate defini culoarea, fontul, alinierea textului, mărimea, marginea, spațierea, aspectul și
multe alte caracteristici tipografice și pot face acest lucru în mod independent pentru
vizualizările pe ecran și imprimat e. CSS definește de asemenea stiluri non -vizuale, cum ar fi
viteza de citire și accentul pentru cititorii textului audio. W3C a depreciat acum utilizarea tuturor
marcajelor de prezentare HTML.

De exemplu, în pre -CSS HTML, un element de titlu definit cu t ext roșu va fi scris ca:
<h1><font color ="red" > Capitol 1. </font></h1>

Folosind CSS, același element poate fi codat folosind proprietăți de stil în locul atributelor de
prezentare HTML:
<h1 style ="color: red;" > Capitol 1. </h1>

Un fișier CSS "extern", așa cum este descris mai jos, poate fi asociat unui document HTML
utilizând următoarea sintaxă:
<link href="path/to/file.css" rel="stylesheet" type="text/css" >

Un cod CSS intern poate fi introdus în secțiunea de cap a codului. Codifi carea începe cu eticheta
de stil. De exemplu,
<style >
h1 {color : red;}
</style >

47

3.2.4. Surse

Informațiile CSS pot fi furnizate din diverse surse. Aceste surse pot fi browserul web,
utilizatorul și autorul. Informațiile de la autor pot fi clasificate în continuare în linie, tipul media,
importanța, specificitatea selectorului, ordinea regulilor, mo ștenirea și definiția proprietății.
Informațiile despre stil CSS pot fi într -un document separat sau pot fi încorporate într -un
document HTML. Foi de stil multiple pot fi importate. Diferite stiluri pot fi aplicate în funcție de
dispozitivul de ieșire util izat; De exemplu, versiunea de ecran poate fi destul de diferită de
versiunea tipărită, astfel încât autorii să poată adapta prezentarea corespunzător pentru fiecare
mediu.

Foaia de stil cu cea mai mare prioritate controlează afișarea conținutului. Declar ațiile care nu
sunt setate în sursa cea mai înaltă prioritate sunt transferate către o sursă de prioritate mai mică,
cum ar fi stilul agentului utilizator. Acest proces se numește cascadă.

Unul dintre scopurile CSS este de a permite utilizatorilor un cont rol mai mare asupra
prezentării. Cineva care găsește titluri roșii italiene greu de citit poate aplica o foaie de stil
diferită. În funcție de browser și de site -ul Web, utilizatorul poate alege între diferitele foi de stil
furnizate de designeri sau poate elimina toate stilurile adăugate și poate vizualiza site -ul folosind
stilul implicit al browserului sau poate să înlocuiască doar stilul rubricii roșii italice fără a altera
alte atribute.
Mai jos avem schema de priorități CSS ( de la cea mai mare prioritat e până la cea mai mică)

Prioritate Tipul de sursă CSS Descriere
1 Importanță Adontarea ‘ !important ’ suprascrie tipurile de priorități

48
anterioare
2 Pe linie Un stil aplicat unui element HTML prin atributul HTML "stil"
3 Tipul media O definiție a proprietății se aplică tuturor tipurilor de
suporturi media, cu excepția cazului în care este definită o
CSS specifică mass -media
4 Definită de utilizator Majoritatea browserelor au funcția de accesibilitate: un
CSS definit de utilizator
5 Selectivitatea
specificatorului Un selector contextual specific (#heading p) suprascrie
definiția generică
6 Ordinea regulilor Ultima declarație de regulă are o prioritate mai mare
7 Moștenirea părintească Dacă nu este specificată o proprietate, ea este moștenită
de la un element p ărinte
8 Definirea proprietății CSS
în documentul HTML Regula CSS sau stilul CSS pe linie suprascrie o valoare
implicită a browserului
9 Valorile implicite ale
browserului Prioritatea minimă: valoarea implicită a browserului este
determinată de specificațiile valorii inițiale W3C

3.2.5. Specificitate

Specificitatea se referă la greutățile relati ve ale diferitelor reguli. Aceasta determină stilurile
care se aplică unui element atunci când se pot aplica mai multe reguli. Pe baza specificațiilor, un
simplu selector (de exemplu, H1) are o specificitate de selectori de clasă 1, care au o specificitate

49
de 1,0 și selectori de ID o specificitate de 1,0,0. Deoarece valorile specificității nu se reportează
ca în sistemul zecimal, se utilizează virgule pentru a separa "cifrele" (o regulă CSS având 11
elemente și 11 clase ar avea o specificitate de 11,11, nu 121).

Astfel, următorii selectori de reguli au ca rezultat specificitatea indicată:
Selectori Specificitate
H1 {color: white;} 0, 0, 0, 1
P EM {color: green;} 0, 0, 0, 2
.grape {color: red;} 0, 0, 1, 0
P.bright {color: blue;} 0, 0, 1, 1
P.bright EM.dark {color: yellow;} 0, 0, 2, 2
#id218 {color: brown;} 0, 1, 0, 0
style=" " 1, 0, 0, 0

Exemplu, se considera acest cod HTML
<!DOCTYPE html>
<html >
<head >
<meta charset ="utf-8">
<style >
#xyz { color : red; }
</style >
</head >
<body >
<p id="xyz" style ="color: blue;" > Pentru a demonstra specificitatea </p>

50
</body >
</html >

În exemplul de mai sus, declarația din atributul de stil suprascrie cel din elementul
<style> deoarece are o specificitate mai mare.

3.2.6. Moștenire

Moștenirea este o trăsătură cheie în CSS; Se bazează pe relația descendent -descendent care
operează. Moștenirea este mecanismul prin care proprietățile se aplică nu numai unui element
specifi c, ci și descendenților săi . Moștenirea se bazează pe arborele de documente, ca re este
ierarhia elementelor XHTML într-o pagină bazată pe rela ții de moștenire . Elementele
descendente pot moșteni valorile proprietății CSS de la orice element strămoș care le include. În
general, elementele descendente moștenesc proprietăți legate de te xt, dar proprietățile legate de
așezarea în elementul curent(cutie) nu sunt moștenite. Proprietățile care pot fi moștenite sunt:
culoarea, fontul, spațierea cu litere, înălțimea liniei, stilul de listă, textul -aliniere, text -indent,
text-transform, vizib ilitatea, spațiul alb și spațierea cuvintelor. Proprietăți care nu pot fi
moștenite sunt fundal, margine, afișaj, float și limpede, înălțime și lățime, margine, min și max
înălțime și lățime, schiță, preaplin, umplutură, poziție, decorare text, aliniere ve rticală și z -index.

Moștenirea împiedică anumite proprietăți să fie declarate mereu într -o foaie de stil,
permițând dezvoltatorilor de software să scrie mai puțin CSS. Îmbunătățește încărcarea mai
rapidă a paginilor web de către utilizatori și permite clienților să economisească bani pe lățime
de bandă și costurile de dezvoltare.

51
Capitolul 4. Prezentarea aplicației

4.1. Interfața grafică

Interfața grafică a pagini web este împărțită în 3. Prima parte reprezintă antetul paginii
unde se reg ăsesc link -uri către pagina de logare sau de înregistrare în cazul în care u tilizatorul nu
a efectua t autentificarea pe cont sau nu s -a înregistrat pe pagina web sau link -uri către mesajele
primite prin intermediul aplicației, detalii despre cont sau coșul de cumpărături.

21. Antet parte grafica

În imaginea de mai sus putem o besrva cum arată antetul paginii atunci cand utilizatorul
nu este autentificat pe niciun cont.

22. Antet parte grafica login
În imaginea de mai sus putem obeserva cum arată antetul paginii atunci cand utilizatorul
este autentificat pe cont. Utilizatoru l dispune de link -uri care trimit către mesaje, coșul de
cumpărături precum și către informațiile contului care cuprind adresa de livrare email .

A doua parte a interfa ței grafice o reprezintă conținutul paginii unde este afișată pagina
web în sine. Diferă de la pagină la pagină în funcție de ceea ce vrem ca utilizatorul să observe pe
pagină totuși ele păstrează un stil similar chiar dacă informația diferă.

52
Mai jos puteti observa cum arată pagina de întampinare:

23. Cont inut parte grafica

Pe fiecare pagină se regăsește meniul prezent în poza de mai sus, el este meniul principal
cu ajutorul căruia putem să navigam pe pagina web.

53
A treia parte a interfa ței grafice o reprezintă subsolul unde găsim link -uri către paginile
web din aplicație precum și către categoriile de produse prezente până în acest moment, precum
si informații despre anul și autorul paginii web.

24. Subsol parte grafica cu autentificare

Dacă utilizatorul nu s -a autentificat sub solul se modifică la fel ca și antetul.

25. Subsol parte grafica fara auntentificare

54

4.2. Coșul de cumpărături
Pentru a plasa o comandă în coșul de cumpărături este necesar să acesăm pagina cu
produsul pe care dorim să îl plasăm în coș și să apăsăm pe butonul „Add to cart”, ca exemplu
imaginea de mai jos.

Odată apăsat butonul o să fim redirecționați pe pagina produsului unde putem vedea mai
multe detalii despre acesta și putem selecta cantitat ea pe care dorim să o cumpărăm. Odată setata
cantitatea tot ce trebuie să facem este să apăsăm pe butonul „Add to cart” iar produsul va fi
plasat în coșul nostru de cumpărături .

26. Selectare produs dorit

55

Odată apăsat butonul vom primii un mesaj de confirmare pe ecran care ne va spune dacă
produsl a fost adăugat în coș.

28. Confirmare adaugare in cos

Odată adăugat în cosul de cumpărături singurul lucru ce ne rămâne de făcut pentru a
plasa comanda este să o confirmăm iar acest lu cru se face din coșul de cumpărături apăsând pe

56
butonul „Buy product” din subsolul articolului pentru care dorim să plasăm comanda. În coșul de
cumpărături putem observa informații precum statutul comenzii, cantitatea comandată, prețul per
articol și prețu l total.

În coșul de cumpărături mai putem vizualiza informații precum totalul cumpărăturilor sau
articole care ne -au fost livrate.

29. Plasare comanda
30. Verificare comenzi

57
Odată plasată comanda o să primim un mesaj ca re ne va indica dacă comanda a fost
plasată cu succes.

De îndată ce un operator ne accepta comanda plasată putem vizualiza ce comenzi au fost
acceptate chiar din coșul de cumpărături.

31. Mesaj confirmare plasare comanda
32. Comenzi plasate 1

58
Putem verifica cand a fost acceptată sau respinsă comanda noastră d e pe pagina cu
mesaje asocitată contului respectiv.

Odat ă livrată comanda un operator va semnala acest lucru iar produsul va apărea
ca și livrat în coșul de cumpărături .

33. Mesagerie
34. Comenzi livrate

59

4.3. Panou de administrare

Panul de administrare al aplicației noastre reprezintă locul de unde se acceptă, resping
comenzile sau se adaugă și modifică categorii, produse sau privilegii ale administratorilor.
Pentru a accesa pagina de administrare este necesar să accesăm folderul admin. Acest
lucru se face prin schimbarea URL -ului din browser și adăugarea în locul pagi nii curente a
folderului admin.

Pagina de întampinare a panoului de administrare este una simplista care ne anunță că am
intrat în panou de administrare și ca putem începe acțiunile dorite.

36. Pagină î ntampinare panou admin
În antetul paginii o să găsim întotdeauna meniul principal care ne permite să adăugam un
admin să ne dezautentificăm sau să gestionăm magazinul.

35. Autentificare panou administratori

60

Meniul „Manage shop” este împărțit în 2 categorii. „Add zone” și „Manage zone”, din
zona de adăugare putem adăuga articole sau categorii iar în zona de gestionare putem să
gestionam articolele adăugate, comenzile utilizatorilor sau categoriile.

Pentru a adăuga un produs este necesar să selectăm „Add products” iar panoul de
administrare ne va trimite pe o pagină nouă.

După completarea formularului, încărcarea unei imagini și selectarea categoriei produsul
va fi adăugat pe pagina web și va fi disponibil utilizatorilor pentru a putea fi cumpărat.

37. Vizualizare meniu
38. Adaugare produs

61
Pentru a gestiona produsele accesăm din meniul „Manage shop” categoria „Manage
products” de pe această pagină putem modifica sau șterge un produs existent în magazin. Pentru
realimentarea produselor se folosește modificarea c antității.

Pentru a gestiona comenzile utilizatorilor accesăm din meniul „Manage shop” categoria
„Manage orders” de pe această pagină putem accepta, șterge o comanda existentă. Putem
semnala comenzile ca fiind livrate sau putem anula comenzile din anumite motive.

39. Gestionare produse
40. Gestionare comenzi

62
Capitolul 5. Concluzi i

Având în vedere evoluția tehnologică accelerată a paginilor web actuale determinată de
nevoile sporite de mobilitate a utilizatorilor dar și de entuziasmul care nu poate fi neglijat al
tinerei generații pentru utilizarea acestora, consider că paginile web sunt o parte importantă a
lumii contemporane .

Cu puterea de procesare și folosirea mai rară a ramilor, limbajele de programare web
ajung tot mai aprope de ce rințele a limbajelor de programare low level și cu viteza de
comunicare între server și utilizator , acestea reușesc să devină componente viabile ale unor
sistemelor de automatizare, în specia l în ce privește monitorizarea comenzilor și ma nagementul
produselor .

Evoluția explozivă a pieței terminalelor inteligente mobile din ultimii ani a fost
caracterizată de schimbări importante în tehnologiile înglobate, dar și de o serie de noi apariții în
rândul sistemelor de operare pentru acestea. Odată cu ele a fost dezvoltată în paralel piața de
pagini web ce oferă servicii de vânzare cumpărare sau magazine online .

Consider că această lucrare demonstrează viabilitatea ideii propuse, de utilizare a
terminalelor a paginilor web pentru magazine o nline cu scopul de a ușora în viața de zi cu zi
achiziționarea unui articol prin intermediul unei aplicații web în mediul online.

63
Capitolul 6. Bibliografie

 L. Ullman, "PHP pentru World Wide Web", Editura Teora, Bucuresti, 2004
 Site-ul oficial al PHP: http://www.php.net
 L. Welling, L. Thomson, "Dezvoltarea aplicatiilor Web cu PHP si MySQL", Editura
Teora, Bucuresti, 2004: http://www.teora.ro
 S. Buraga, "Tehnol ogii Web", Editura Matrix Rom, Bucuresti, 2001:
http://www.infoiasi.ro/~busaco/books/web.html
 Sabin Buraga, Proiectarea siturilor Web, Editura Polirom, Iași, 2002
 Luke Wroblewski, Site -Seeing -A Visual Approach To Web Usability, Hungry Minds,
New York, 2002
 Valentin Clocotici, H T M L – manual on -line:
http://www.infoiasi.ro/~val/htmlearn.htm
 Ștefan Tanasă, Scurtă prezentare a limbajului HTML :
http://thor.infoiasi.ro/~stanasa/web/html.html
 * * *, HyperText Markup Language (HTML) Home Page :
http://www.w3.org/MarkUp/
 * * *, Basics of HT ML:
http://www.htmlgoodies.com/primers/basics.html

Similar Posts