Asist.Ph.D.Eng Stoica Spahiu Cosmin Iulie 2014 CRAIOVA UNIVERSITATEA DIN CRAIOVA FACULTATEA DE AUTOMATICĂ, CALCULATOARE I Ș ELECTRONICĂ DEPARTAMENTUL… [603678]

UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE I Ș
ELECTRONICĂ
DEPARTAMENTUL DE CALCULATOARE I TEHNOLOGIA Ș
INFORMA IEI Ț
PROIECT DE DIPLOMĂ
Coșeran A. Andreea-Mădălina
COORDONATOR TIIN IFIC Ș Ț
Asist.Ph.D.Eng Stoica Spahiu Cosmin
Iulie 2014
CRAIOVA

UNIVERSITATEA DIN CRAIOVA
FACULTATEA DE AUTOMATICĂ, CALCULATOARE I Ș
ELECTRONICĂ
DEPARTAMENTUL DE CALCULATOARE I TEHNOLOGIA Ș
INFORMA IEI Ț
Magazin online de componente electronice
Coșeran A. Andreea-Mădălina
COORDONATOR TIIN IFIC Ș Ț
Assist.Ph.D.Eng Stoica Spahiu Cosmin
Iuie 2014
CRAIOVA
ii

DECLARA IE DE ORIGINALITATE Ț
Subsemnata COȘERAN ANDREEA-MĂDĂLINA , studentă la specializarea Calculatoare Romană
din cadrul Facultă ii de Automatică, Calculatoare i Electronică a Universită ii din Craiova, certific ț ș ț
prin prezenta că am luat la cunoștință de cele prezentate mai jos și că îmi asum, în acest context,
originalitatea proiectului meu de licență:
cu titlul Magazin online de componente electronice
coordonată de Assist.Ph.D.Eng Stoica Spahiu Cosmin
prezentată în sesiunea Iulie 2014.
La elaborarea proiectului de licență, se consideră plagiat una dintre următoarele acțiuni:
reproducerea exactă a cuvintelor unui alt autor, dintr-o altă lucrare, în limba română sau prin
traducere dintr-o altă limbă, dacă se omit ghilimele și referința precisă,
redarea cu alte cuvinte, reformularea prin cuvinte proprii sau rezumarea ideilor din alte
lucrări, dacă nu se indică sursa bibliografică,
prezentarea unor date experimentale obținute sau a unor aplicații realizate de alți autori fără
menționarea corectă a acestor surse,
însușirea totală sau parțială a unei lucrări în care regulile de mai sus sunt respectate, dar care
are alt autor.
Pentru evitarea acestor situații neplăcute se recomandă:
plasarea între ghilimele a citatelor directe și indicarea referinței într-o listă corespunzătoare la
sfărșitul lucrării,
indicarea în text a reformulării unei idei, opinii sau teorii și corespunzător în lista de referințe
a sursei originale de la care s-a făcut preluarea,
precizarea sursei de la care s-au preluat date experimentale, descrieri tehnice, figuri, imagini,
statistici, tabele et caetera,
precizarea referințelor poate fi omisă dacă se folosesc informații sau teorii arhicunoscute, a
căror paternitate este unanim cunoscută i acceptată. ș
Data, Semnătura candidat: [anonimizat],
4.06.2014
iii

UNIVERSITATEA DIN CRAIOVA
Facultatea de Automatică, Calculatoare și Electronică
Departamentul de Calculatoare i Tehnologia Informa iei ș țAprobat la data de
…………………
Șef de departament,
Prof. dr. ing.
Marius BREZOVAN/
Emil PETRE
PROIECTUL DE DIPLOMĂ
Numele i prenumele student: [anonimizat]/-ei: ș Coșeran Andreea-Mădălina
Enun ul temei: ț Magazin online de componente electronice
Datele de pornire:Aplicația este realizată în întregime în pagini PHP.
Codul este realizat în programul Adobe Dreamweaver cs4.
Aplicația rulează pe serv er.
Con inutul proiectului:țProiectul este realizat din două parti: una teoretică care se
refera la noțiuni generale despre web design și una practică
care se referă la aplicația în sine.
Material grafic obligatoriu:
Consulta ii: ț Periodice
Conducătorul tiin ific ș ț
(titlul, nume i prenume, semnătura): șAssist.Ph.D.Eng. Stoica Spahiu Cosmin
Data eliberării temei:01.12.2013
iv

Termenul estimat de predare a
proiectului:13.06.2014
Data predării proiectului de către
student i semnătura acestuia: ș
v

UNIVERSITATEA DIN CRAIOVA
Facultatea de Automatică, Calculatoare și Electronică
Departamentul de Calculatoare i Tehnologia ș
REFERATUL CONDUCĂTORULUI TIIN IFIC Ș Ț
Numele i prenumele candidatului/-ei: ș COȘERAN A. ANDREEA-MĂDĂLINA
Specializarea: Calculatoare
Titlul proiectului: Magazin online de componente electronice
Loca ia în care s-a realizat practica de ț
documentare (se bifează una sau mai
multe din op iunile din dreapta): țÎn facultate □
În produc ie ț□
În cercetare □
Altă loca ie: [ țse detaliază]
În urma analizei lucrării candidatului au fost constatate următoarele:
Nivelul documentăriiInsuficient
□Satisfăcător
□Bine
□Foarte bine

Tipul proiectuluiCercetare
□Proiectare
□Realizare
practică □Altul
[se detaliază ]
Aparatul matematic utilizatSimplu
□Mediu
□Complex
□Absent

UtilitateContract de
cercetare □Cercetare
internă □Utilare
□Altul
[se detaliază ]
Redactarea lucrăriiInsuficient
□Satisfăcător
□Bine
□Foarte bine

Partea grafică, deseneInsuficientă
□Satisfăcătoar
e □Bună
□Foarte bună

Realizarea
practicăContribu ia autorului țInsuficientă
□Satisfăcătoar
e □Mare
□Foarte mare

Complexitatea
temeiSimplă
□Medie
□Mare
□Complexă

Analiza cerin elor ț Insuficient Satisfăcător Bine Foarte bine
vi

□ □ □ □
ArhitecturaSimplă
□Medie
□Mare
□Complexă

Întocmirea
specifica iilor ț
func ionalețInsuficientă
□Satisfăcătoar
e □Bună
□Foarte bună

ImplementareaInsuficientă
□Satisfăcătoar
e □Bună
□Foarte bună

TestareaInsuficientă
□Satisfăcătoar
e □Bună
□Foarte bună

Func ionarea țDa
□Par ială ț
□Nu

Rezultate experimentaleExperiment propriu
□Preluare din bibliografie

BibliografieCăr iț Reviste Articole Referin e web ț
Comentarii
i ș
observa ii ț

În concluzie, se propune:
ADMITEREA PROIECTULUI
□RESPINGEREA PROIECTULUI

Data, Semnătura conducătorului tiin ific, ș ț
vii

viii

REZUMATUL PROIECTULUI
În acest proiect este vorba despre gestionarea și întreține rea unui magazin online de componente
electronice. Aplicația rulează pe serv er LocalHost cu ajutorul programului WampServ er. Baza de date
este realizată cu phpMyAdmin din cadrul aceluiași program. Paginile sit e-ului sunt realizate în
limbajul web php cu ajutorul programului Adobe Dreamweaver cs4.
Magazinul Online este destinat tuturor persoanelor, fiind gestionat de către un admin care are
sarcina de a menține funcționarea acestuia în siguranța și de a simplifica utilizarea lui. Acesta are rolul
de a adăuga,modifica, șterge categoriile sau produsele care sunt disponibile utilizatorului. Clientul are
posibilitatea doar de a vizualiza ofertele disponibile și de a le cumpara dacă acesta dorește.
ix

CUPRINS
1INTRODUCERE…………………………………………………………………………….. 1
2PROGRAMAREA WEB …………………………………………………………………….. 2
2.1PROGRAMAREA DE TIP CLIENT SIDE…………………………………………………………………… 2
2.1.1HTML(HyperTextMarkupLanguage) …………………………………………………………. 2
2.1.2CSS (Cascading Style Sheet) …………………………………………………………………. 4
2.1.3JavaScript…………………………………………………………………………………………… 4
2.2PROGRAMAREA DE TIP SERVER SIDE…………………………………………………………………… 7
2.2.1PHP……………………………………………………………………………………………………. 9
2.2.2Baze de date…………………………………………………………………………………….. 11
2.2.3Limbajul SQL…………………………………………………………………………………….. 13
2.3COMERTUL ELECTRONIC……………………………………………………………………………….. 14
2.3.1Tranzactii online………………………………………………………………………………… 16
2.3.2Sistemul de confirmare prin email ………………………………………………………… 17
3APLICATIA SOFTWARE …………………………………………………………………. 18
3.1PREZENTARE GENERALA………………………………………………………………………………. 18
3.2INTEFATA SITE-ULUI…………………………………………………………………………………….. 19
3.2.1Zona de administrare …………………………………………………………………………. 21
3.2.2Magazinul online………………………………………………………………………………… 28
3.3SOFTURI FOLOSITE…………………………………………………………………………………….. 43
3.3.1Dreamweaver……………………………………………………………………………………. 43
3.3.2Wamp Server…………………………………………………………………………………….. 47
3.4MODELUL RELAȚIONAL AL BAZEI DE DATE…………………………………………………………… 49
4CONCLUZII………………………………………………………………………………… 50
5BIBLIOGRAFIE……………………………………………………………………………. 51
6REFERINȚE WEB …………………………………………………………………………. 52
CD / DVD……………………………………………………………………………………….. 53
x

LISTA FIGURILOR
FIGURA 1. EXEMPLU………………………………………………………………………………………………………………………………. 6
FIGURA 2. CREEAREA OBIECTELOR…………………………………………………………………………………………………………… 7
FIGURA 3. MODELUL CLIENT-SERVER……………………………………………………………………………………………………….. 8
FIGURA 4. SITE ROOT……………………………………………………………………………………………………………………………. 20
FIGURA 5. ADMIN.PHP…………………………………………………………………………………………………………………………… 21
FIGURA 6. INDEX.PHP……………………………………………………………………………………………………………………………. 22
FIGURA 7. .LISTA CATEGORII………………………………………………………………………………………………………………….. 22
FIGURA 8. ADAUGA CATEGORIE NOUA…………………………………………………………………………………………………….. 24
FIGURA 9. LISTA DE PRODUSE………………………………………………………………………………………………………………… 25
FIGURA 10. ADAUGARE PRODUSE…………………………………………………………………………………………………………… 26
FIGURA 11. INCARCA IMAGINEA…………………………………………………………………………………………………………….. 27
FIGURA 12. INDEX.PHP………………………………………………………………………………………………………………………….. 28
FIGURA 13.INREGISTRARE CLEINTI…………………………………………………………………………………………………………. 30
FIGURA 14. INREGISTRARE CU SUCCES……………………………………………………………………………………………………. 31
FIGURA 15. ACCES UTILIZATOR………………………………………………………………………………………………………………. 32
FIGURA 16. PRODUSE…………………………………………………………………………………………………………………………… 34
FIGURA 17. INTEGRATE…………………………………………………………………………………………………………………………. 35
FIGURA 18. PRODUSE……………………………………………………………………………………………………………………………. 36
FIGURA 19. LISTA COS………………………………………………………………………………………………………………………….. 38
FIGURA 20. COS CUMPARATURI………………………………………………………………………………………………………………. 41
FIGURA 21. METODA PLATA…………………………………………………………………………………………………………………… 41
FIGURA 22. FINALIZARE PLATA………………………………………………………………………………………………………………. 42
FIGURA 23. INTERFATA DW……………………………………………………………………………………………………………………. 44
FIGURA 24 CREARE SITE……………………………………………………………………………………………………………………….. 44
FIGURA 25. SERVER BEHAVIORS…………………………………………………………………………………………………………….. 45
FIGURA 26. BINDINGS…………………………………………………………………………………………………………………………… 45
FIGURA 27. WAMP SERVER…………………………………………………………………………………………………………………….. 48
FIGURA 28. PHP MYADMIN…………………………………………………………………………………………………………………….. 48
FIGURA 29. MODELUL RELATIONAL………………………………………………………………………………………………………… 49
xi

xii

1INTRODUCERE
Dezvoltarea rapidă a Internetului s-a datorat faptului că accesul la documentația protocoalelor
obligatorii a fost și este liber și gratuit. În 1969 S. Crocker a inițiat o serie de „note de cercetare”
denumite RFC (Request for Comments), numerotate cronologic și devenite cu timpul accesibile
gratuit on-line (în Internet). Marea schimbare a început în 1989, când Tim Berners Lee de la Centrul
European pentru Fizica Nucleară din Geneva (CERN) a pus bazele dezvoltării primului prototip al
World Wide Web (WWW sau web).
Aplicațiile Internetului sunt numeroase: în primul rând afișarea de informații mai mult sau
mai puțin statice cu formă de text, imagini și sunete (așa-numitele pagini web), apoi poșta electronică
e-mail, transferul de fișiere de date și informații, chat, video și video on demand, telefonie și telefonie
cu imagine prin Internet, televiziune prin Internet, e-commerce, sondări de opinie, mediu pentru
răspândirea știrilor, mediu pentru toate genurile de grafică și muzică, deschiderea unei sesiuni de lucru
de la distanță, grupuri de discuții pe teme prestabilite, jocuri interactive prin rețea, operații bancare
(Internet banking), transmitere de fișiere și multe, multe altele. Pentru folosirea tuturor acestor
aplicații din web este nevoie în general doar de un singur program multi-funcțional numit browser.
Exemple de browsere: Chrome, Internet Explorer, Mozilla Firefox (provenit din Netscape Navigator),
Opera, Apple Safari etc.
Cu timpul, optimizarea unei pagini web(SEO) a unui site a devenit un serviciu oferit de
unele companii și/sau corporații, odată cu apariția primelor site-uri pe internet, și care reprezintă
totalitatea tehnicilor prin care un site web este adus la o formă în care este propulsat mai sus în lista de
rezultate date de un motor de căutare pentru diverse cuvinte-cheie. La începuturile internetului,
motoarele de căutare afișau în urma unei căutari, pagini în a căror descriere se afla cuvântul de
căutare. Deoarece webmasterii (proprietarii de site-uri) au făcut abuz de acest factor, motoarele de
căutare au alcătuit algoritmi mult mai complecși, care includ :
Textul din titlu
Numele de domeniu
Elementele HTML
Frecvența unui cuvânt cheie, atât în pagină cât și global
Atributele pentru imagini ALT
Titlul link-urilor
Numărul total de hyperlink-uri de la și spre o pagină

2PROGRAMAREA WEB
Programarea web poate fi impartit a in mai multe tipuri, iar o dezvoltare simplista ar putea
contine:
-Client side coding
-Server side coding
Un limbaj de tip server side este asemanator cu Java script si permite integrarea de mici
scripturi in codul HTML al unei pagini web. Cand sunt executate, aceste scripturi ne dau un control
mai mare asupra a ceea ce apare in fereastra browserului decat o pagina simpla scrisa numai in
HTML.
Limbajele de tip client sunt citite si executate de browser dupa descarcarea paginii web de pe
server. PHP, in mod contrar, ca si limbajele de tip server, sunt rulate pe server inainte de a trimite
pagina web catre browser.
2.1Programarea de tip Client Side
Se refera in general la programe care sunt executate de browserul web al userului. Ele sunt de
obicei integrate intr-un document HTML, dar pot, de asemenea, sa fie parti ale unor fisiere
separate(CSS, JavaScript).
2.1.1HTML(HyperTextMarkupLanguage)
Un fișier care conține hipertext este scris într-un limbaj specific numit HiperText Markup Language
(HTML). HTML este un limbaj care permite inserarea de text, sunete, imagini, legaturi catre alte
pagini Web, etc.
Pagina principala a unui domeniu este fisierul index.html respectiv index.htm. Această pagină
este setată a fi afi ată automat la vizitarea unui domeniu. De exemplu la vizitarea domeniului ș
www.nume.ro este afi ată pagina www.nume.ro/index.html. ș
Componenta unui document HTML este:
1. versiunea HTML a documentului
2. zona head cu etichetele <head> </head>
3. zona body cu etichetele <body> </body> sau <frameset> </frameset>
Versiunea HTML poate fi:
HTML 4.01 Strict
2

<!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 ">
HTML 5
<!DOCTYPE HTML>
Toate paginile HTML încep i se termină cu etichetele <html> i </html>. În interiorul acestor ș ș
etichete găsim perechile <head>, </head> i <body>, </body>. ș
“Head” con ine titlul paginii între etichetele <title> i </title>, descrieri de tip <meta>, stiluri pentru ț ș
formatarea textului, scripturi i linkuri către fisiere externe (de exemplu scripturi, fi iere de tip CSS ș ș
sau favicon).
Etichetele de tip meta con in cuvinte cheie, descrierea paginii, date despre autor, informa ii ț ț
utile motoarelor de căutare i au următorul format: <META NAME="nume" CONTENT="continut"> ș
Exemplu: link către un fisier extern CSS: <link rel="stylesheet" type="text/css" href="css.css">
“Body” găzduie te practic toate etichetele afi ate de browser pe ecran. Exemplu: ș ș
<HTML>
<HEAD>
<TITLE> Exemplu HTML </TITLE>
</HEAD>
<BODY>
<p>
Hello World!
3

</BODY>
</HTML>
Editarea unui fisier HTML se poate face utilizand un editor de texte obisnuit (Notepad, Word,
etc) sau un editor de texte dedicat (Dreamweaver).
2.1.2CSS (Cascading Style Sheet)
CSS este un standard pentru formatarea elementelor unui document HTML. Stilurile se pot
ata a elementelor HTML prin intermediul unor fi iere externe sau în cadrul documentului, prin ș ș
elementul <style> i/sau atributul style ș.
Legăturile dintre HTML și CSS se realizează cu ajutorul elementului STYLE. Stilurile pot fi
definite ca:
-stiluri in-line care se definesc ca atribute STYLE. Aproape toate elementele HTML(cu
excepția elementelor BASE, HEAD, BASE FONT, HTML, META, PARAM, SCRIPT,
STYLE, TITLE) permit acest atribut. Valorile atributului STYLE constau dintr-o listă de
specificații, sub forma nume-proprietate: valoare, pusă între ghilimele și separate prin
punct și virgulă;
-foi de stil în interiorul unui document, plasate în partea de antet a documentului, în
interiorul blocului <STYLE>…</STYLE> ;
-foi de stil,definite într-un fișier extern, care se poate lega la orice pagină WEB
2.1.3JavaScript
JavaScript este un limbaj de programare folosit mai ales pentru introducerea unor
funcționalități în paginile web. Codul Javascript din aceste pagini este rulat de către browser.
Limbajul este binecunoscut pentru folosirea sa în construirea siteurilor web, dar este folosit și pentru
acesul la obiecte încastrate (embedded objects) în alte aplicații. În ciuda numelui și a unor similarități
în sintaxă, între JavaScript și limbajul Java nu există nicio legătură.
Cea mai des întâlnită utilizare a JavaScript este în scriptarea paginilor web. Programatorii web
pot îngloba în paginile HTML script-uri pentru diverse activități cum ar fi verificarea datelor
introduse de utilizatori sau crearea de meniuri și alte efecte animate.
O tehnică de construire a paginilor web tot mai întâlnită în ultimul timp este AJAX, abreviere
de la „Asynchronous JavaScript and XML”. Această tehnică constă în executarea de cereri HTTP în
4

fundal, fără a reîncărca toată pagina web, și actualizarea numai anumitor porțiuni ale paginii prin
manipularea DOM-ului paginii. Tehnica AJAX permite construirea unor interfețe web cu timp de
răspuns mic, întrucît operația (costisitoare ca timp) de încărcare a unei pagini HTML completă este în
mare parte eliminată.
Scripturile JavaScript pot fi incluse în pagina Web în două moduri:
-prin intermediul etichetei <SCRIPT> </SCRIPT>;
-prin intermediul unei proceduri eveniment.
Exemplul 1:
<HTML>
<HEAD>
<TITLE>javascript1</TITLE>
</HEAD>
<BODY>
<H1>Primul exemplu JavaScript</H1><HR>
<SCRIPT language="JavaScript">
document.write("Buna ziua!")
</SCRIPT>
</BODY>
</HTML>
Pagina rezultata dupa rularea scriptului de mai sus:
Figura 1. Exemplu
Exemplu 2:
<HTML>
5

<HEAD>
<TITLE>javascript2</TITLE>
<SCRIPT language="JavaScript">
function PrintCard()
{
document.write("<B>Numele:</B> ", this.nume, "<BR>");
document.write("<B>Adresa:</B> ", this.adresa, "<BR>");
document.write("<B>Telefonul:</B> ", this.telefon, "<HR>");
}
function Card(num, adr, tel)
{
this.nume=num;
this.adresa=adr;
this.telefon=tel;
this.PrintCard=PrintCard;
}
</SCRIPT>
</HEAD>
<BODY>
<H1 align="center">Crearea obiectelor</H1>
Inceputul scriptului<HR>
<SCRIPT language="JavaScript">
// Crearea a trei obiecte noi
ana=new Card ("Ana Munteanu", "Str. Apusului, nr.2, Bucuresti",
"6162345")
ion=new Card("Ion Popescu", "Str. Zorilor nr.1, Ploiesti",
"456789");
radu=new Card("Radu Ionescu", "Str. Noptii, nr.3, Pitesti",
"201202");
// Afisarea lor
ana.PrintCard();
ion.PrintCard();
radu.PrintCard();
</SCRIPT>
Sfarsitul scriptului
</BODY>
</HTML>
Pagina rezultata dupa rularea scriptului de la Exemplu 2:
6

Figura 2. Crearea obiectelor
Scripturile integrate în cadrul paginilor sunt evaluate după ce încărcarea paginii s-a încheiat
dar înainte ca aceasta să fie afișată. Pe de altă parte, scripturile stocate ca fișiere separate sunt evaluate
înaintea tuturor scripturilor in-line (adică a celor incluse în pagină). Funcțiile definite în cadrul
scripturilor nu sunt executate automat la încărcarea paginilor ci abia atunci când acestea sunt apelate,
fie prin eticheta <SCRIPT> fie printr-o procedură eveniment .
2.2Programarea de tip server side
În tehnologia informației , un server este un program de aplicație care furnizează servicii altor
aplicații (numite aplicații client), aflate pe același calculator sau pe calculatoare diferite. De obicei,
aplicația server așteaptă conexiuni din partea aplicațiilor client. Se mai numește server și calculatorul
pe care rulează una sau mai multe asemenea aplicații. Deseori soluția pentru mari aplicații cu mulți
utilizatori se bazează tocmai pe arhitectura client-server, care constă din cel puțin 2 aplicații (și
deseori cel puțin 2 computere).
Serverele ocupă un loc important în tehnologia informaticii, la fel ca și minicomputerele în trecut,
care însă au fost înlocuite. Un server este o aplicație pe computer, uneori chiar un computer întreg,
care operează continuu în rețeaua sa și așteaptă solicitări din partea altor calculatoare din rețea.
Serverele pot fi folosite simultan și pentru alte scopuri, dar când nevoile o cer, ele pot fi rezervate
exclusiv pentru funcția de server. De exemplu, un calculator se poate folosi într-un birou simultan
pentru două scopuri, ca stație de lucru și ca server pentru celelalte calculatoare din birou.
7

Deseori unul și același computer poate juca ambele roluri, și de server, și de client, în același
timp. Numele de server este un alt termen pentru Host computer – computer gazdă, spre deosebire de
alte elemente "inteligente" din rețea cum ar fi routerele și switch-urile.
În zilele noastre serverele se aseamănă fizic cu celelalte calculatoare uzuale, deși configurația
hardware este deseori optimizată pentru funcționarea lor ca servere. Multe componente de hardware
sunt identice cu cele ce le găsim într-un calculator personal. Totuși serverele rulează sisteme de
operare și programe specializate care sunt foarte diferite față de cele folosite pe calculatoare personale
și stațiile de lucru.
Figura 3. Modelul Client- Server
Serverele au apărut în paralel cu rețelele de calculatoare. Rețelele permit calculatoarelor să
comunice unul cu celalalt, iar cu cât rețeaua este mai mare apare nevoia ca un calculator să ia rolul de
server care să deservească alte calculatoare (acestea interacționând eventual direct cu utilizatorii
umani), care își asumă la rândul lor rolul de client.
Și după apariția serverelor rețelele s-au dezvoltat și au crescut mai departe; în schimb
minicomputerele – care erau mai eficiente decât cele personale dar mai puțin eficiente
decât mainframe-urile – au dispărut sau au fost "absorbite" de unele din aceste servere (au preluat
rolul de server).
Apariția rețelelor cu calculatoare personale, a Internetului și răspândirea utilizatorilor acestor
servicii au dat un impuls puternic dezvoltării serverelor.
Diferența majoră între computerele personale și servere nu este partea hardware ci partea
de software. Pe servere rulează sisteme de operare care sunt special proiectate pentru acestea. De
asemenea ele rulează aplicații special proiectate pentru procesele dorite.
8

Modelul client-server este o structură aplicație distribuită care partajează procesarea între
furnizorii de servicii numiți servere și elementele care solicită servicii, numite clienți. Adesea, clienții
și serverele comunică prin rețea, având suporturi hardware diferite, dar se pot afla și pe același sistem.
Un server rulează unul sau mai multe programe server, care partajează resursele cu clienții. Clientul
nu partajează niciuna dintre resursele proprii, dar apelează la resursele serverului prin funcțiile-server.
Clienții inițiază comunicația cu serverele și așteaptă mesajele acestora.
2.2.1PHP
PHP este un limbaj de programare. Numele PHP provine din limba engleză și este un acronim
recursiv : Php: Hypertext Preprocessor. Folosit inițial pentru a produce pagini web dinamice, este
folosit pe scară largă în dezvoltarea paginilor și aplicațiilor web. Se folosește în principal înglobat în
codul HTML, dar începând de la versiunea 4.3.0 se poate folosi și în mod „linie de comandă”,
permițând crearea de aplicații independente. Este unul din cele mai importante limbaje de programare
web open-source și server-side, existând versiuni disponibile pentru majoritatea web serverelor și
pentru toate sistemele de operare. Conform statisticilor este instalat pe 20 de milioane de situri web și
pe 1 milion de servere web.. Este disponibil sub Licent ṭa PHP s ṭi Free Software Foundation îl
considerã a fi un software liber.
Inițial, limbajul a fost dezvoltat de inventatorul său, Rasmus Lerdorf. Odată cu creșterea
numărului de utilizatori, dezvoltarea a fost preluată de o nouă entitate, numită The PHP
Group (Grupul PHP).
PHP-ul este unul din cele mai folosite limbaje de programare server-side, apărând pe 9 din cele
37 milioane de domenii cercetate în studiu. De asemenea, există un grafic al creșterii folosirii PHP-
ului pe site-ul oficial. Popularitatea de care se bucură acest limbaj de programare se datorează
următoarelor caracteristici :
-Familiaritatea : sintaxa limbajului este foarte ușoară combinând sintaxele unora din cele
mai populare limbaje Perl sau C;
-Simplitatea : sintaxa limbajului este destul de liberă. Nu este nevoie de includere de
biblioteci sau de directive de compilare, codul PHP inclus într-un document executându-
se între marcajele speciale;
-Eficiența : PHP-ul se folosește de mecanisme de alocare a resurselor, foarte necesare unui
mediu multiutilizator, așa cum este web-ul;
-Securitate : PHP-ul pune la dispoziția programatorului un set flexibil și eficient de măsuri
de siguranță;
-Flexibilitate : fiind apărut din necesitatea dezvoltării web-ului, PHP a fost modularizat
pentru a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server
web, PHP-ul a fost integrat pentru numeroasele servere web existente;
9

-Gratuitate : este probabil cea mai importantă caracteristică a PHP-ului. Dezvoltarea PHP-
ului sub licența open-source a determinat adaptarea rapidă a PHP-ului la nevoile web-
ului, eficientizarea și securizarea codului .
PHP este un limbaj de programare destinat în primul rând Internetului, aducând dinamică unei
pagini web. Este unul dintre cele mai importante limbaje de programare web open-source (este
gratuit și, în plus, utilizatorii pot acționa liber asupra procesului de dezvoltare) și server-side (codul
sursă nu se rulează pe calculatorul celui care vizualizează pagina, ci pe serverul web). În prezent este
utilizată versiunea 6 a acestui limbaj.
Prin CGI (Common Gateway Interface) se înțelege o interfață a unui server de web, care
extinde funcționalitățile acestuia. CGI nu se referă la un anumit limbaj de programare, ci definește un
modul standardizat, prezent în cadrul unui server HTTP. Prin intermediul acestui modul se stabilesc
regulile prin care server-ul va pasa datele primite de la un utilizator către o aplicație scrisă într-un
anumit limbaj de programare, pentru ca apoi să întoarcă rezultatele acestei aplicații înapoi la
utilizator.
Limbajul PHP, în marea majoritate a cazurilor, se folosește sub formă de secvențe de cod
inserate în cadrul unui document HTML. Din acest motiv, vom prefera termenul de „script PHP”
celui de program PHP. Structura unui script PHP este foarte asemănătoare cu cea a unui cod scris în
limbajul C, mai ales în sensul în care structurile de programare au aceeași sintaxă și aceeași
funcționalitate. Rolurile de bază ale unui script PHP constau în aceea că scipt-ul poate prelua date
trimise de către o pagină web de la un client (în general, datele pot fi trimise de către o pagină web
prin intermediul formularelor) și de a executa o secvență de program în urma căreia va rezulta un cod
HTML, cod pe care clientul îl va primi sub forma unei pagini web. Clientul nu va avea acces la codul
efectiv al script-ului, ci, prin faptul că acesta se află pe server și se rulează tot pe acesta, va primi
direct HTML-ul generat de script.

Exemplu de pagina HTML cu un script PHP :
<HTML>
<HEAD>
<TITLE> HTML cu Script PHP </TITLE>
</HEAD>
<BODY>
10

<? php
echo „Acest text este afisat de scriptul PHP”;
? >
</BODY>
</HTML>
Instrucțiunea „echo” cuprinsă între acestea este o instrucțiune specifică limbajului PHP, ea având rolul
de a scrie în pagina web textul ce urmează după cel cuprins între ghilimele.
PHP nu este un limbaj de programare de sine-stătător (cum ar fi C++, spre exemplu) ci se folosește în
simbioză în primul rând cu HTML, și deci pentru a rula, are nevoie neapărată de un server de web
(http server). Practic, pentru a face ca pe calculatorul nostru să poată rula fișiere php, avem nevoie să
instalăm, pe lângă limbajul PHP, și un server de web, și de a face legătura dintre cele două.
2.2.2Baze de date
Majoritatea site-urilor care au continut folosesc un sistem de baze de date.
În sensul larg, o bază de date (database) este o colecție de date corelate din punct de vedere
logic, care reflectă un anumit aspect al lumii reale și este destinat unui anumit grup de utilizatori. În
acest sens, bazele de date pot fi create și menținute manual (un exemplu ar fi fișele de evidență a
cărților dintr-o bibliotecă, așa cum erau folosite cu ani în urmă) sau computerizat, așa cum sunt
majoritatea bazelor de date în momentul de față. O definiție într-un sens mai restrâns a unei baze de
date este următoarea:
O bază de date este o colecție de date centralizate, creată și menținută
computerizat, în scopul prelucrării datelor în contextual unui set de aplicații.
Prelucrarea datelor se referă la operațiile de introducere, ștergere, actualizare
și interogare a datelor.
Simple colecții de fișe (documente pe hârtie) sau fișiere de date care conțin date, dar nu
permit operații de interogare nu sunt considerate baze de date. De exemplu, datele memorate în fișiere
pe disc într-o aplicație de calcul tabelar (Microsoft Excel) sau documentele memorate de un editor de
texte (ca Microsoft Word) nu sunt considerate baze de date.
Orice bază de date are următoarele proprietăți implicite:
-Baza de date este o colecție logică coerentă de date ce are cel puțin un înțeles;
11

-Baza de date este destinată, construită și populată de date despre un domeniu bine
precizat. Ea are un grup de utilizatori și se adresează unui anumit grup de aplicații;
-O bază de date reprezintă câteva aspecte ale lumii reale creând orizontul propriu.
Schimbările orizontului sunt reflectate în baza de date. Față de vechile metode de
înregistrare a datelor privind diferite activități pe fișe (documente scrise) sau chiar în fișiere pe disc,
sistemele de baze de date oferă avantaje considerabile, ceea ce explică extinsa utilizare a acestora.
Câteva dintre avantajele oferite sunt:
-Controlul centralizat al datelor, putând fi desemnată o persoană ca responsabil cu
administrarea bazei de date;
-Viteză mare de regăsire și actualizare a informațiilor
-Sunt compacte: volumul ocupat de sistemele de baze de date este mult mai redus decât
documetele scrise;
– Flexibilitatea ce constă în posibilitatea modificării structurii bazei de date fără a fi
necesară modificarea programelor de aplicație;
-Redundanță scăzută a datelor memorate, care se obține prin partajarea datelor între mai
mulți utilizatori și aplicații.
În sistemele de baze de date, mai multe aplicații pot folosi date comune, memorate o
singură dată. De exemplu, o aplicație pentru gestionarea personalului dintr-o universitate și o
aplicație pentru gestionarea rezultatelor la examene din aceeași universitate care folosește o
singură bază de date, pot folosi aceleași informații referitoare la structurarea facultăților.
– Posibilitatea introducerii standardelor privind modul de stocare a datelor, ceea ce permite
interschimbarea datelor între organizații;
-Menținerea integrității datelor prin politica de securitate (drepturi de acces diferențiate în
funcție de rolul utilizatorilor), prin gestionarea tranzacțiilor și prin refacerea datelor în caz
de funcționare defectuoasă a diferitelor componente hardware sau software.
– Independența datelor față de suportul hardware utilizat. Sistemul de gestiunea a bazelor
de date oferă o vizualizare a datelor, care nu se modifică atunci când se schimbă suportul
de memorare fizic, ceea ce asigură imunitatea structurii bazei de date și a aplicațiilor la
modificări ale sistemului hardware utilizat.
2.2.3Limbajul SQL
Limbajul SQL se bazează pe interogări și are ca obiect bazele de date relaționale. Bazele de
date relaționale au fost introduse în 1970 de același cercetător de la IBM (E.F. Codd) care a pus
bazele normalizării. Modelul bazelor de date relaționale reprezintă baza de date ca o colecție de
tabele, fiecare dintre acestea relaționând cu cel puțin un altul. SQL este un limbaj prin intermediul
12

căruia, utilizând comenzi derivate din limbajul natural, i se comunicăunui SGBD ce se dorește.
Comenzile SQL permit, astfel, interogarea, inserarea, actualizarea și ștergerea datelor. SQL este
referit uneori ca și limbaj neprocedural. Asta înseamnă că nu este nevoie săs e expliciteze locul unde
SQL trebuie să caute un set de date, de exemplu. Este suficient să i se spună ce anume se dorește.
Localizarea informației dorite în baza de date este sarcina SGBD-ului. În cazul limbajelor
procedurale, fiecare interogare trebuie creată, compilată și executată. Sistemele de gestiune a bazelor
de date comerciale utilizează SQL-ul în 2 nivele, astfel:
– Comenzile SQL se scriu direct ca și linie de comandă, ceea ce face ca SGBD-ul să
interpreteze imediat comenzile și săfurnizeze rezultatul. Această metodă de procesare se numește
SQL interactiv.
– Cel de-al doilea nivel se numește SQL programat și constăîn integrarea comenzilor SQL într-un
limbaj ca C, Basic, Cobol etc.
Exemplu de instructiuni SQL:
-Instrucțiunea CREATE TABLE se foloseste pentru a crea un tabel nou.
CREATE TABLE nume_tabel (câmp_1 tip_date_1, …, câmp_n tip_date_n);
-Instructiunea SELECT se utilizeaza pentru extragerea datelor din tabele:
SELECT câmp_1, …, câmp_n FROM nume_tabel;
-Instrucțiunea UPDATE permite modificarea inregistrarilor din baza de date:
UPDATE nume_tabel
SET valoare_câmp_de_modificat = valoare
WHERE criteriu_selectie_inregistrare;
-Instrucțiunea INSERT VALUES
INSERT INTO nume_tabel <(câmp_1, …, câmp_n)>
VALUES (valoare_câmp_1, …, valoare_câmp_n);
-Instrucțiunea DELETE sterge unul sau mai multe articole existente:
Delete from nume_tabela where nume_camp=100;
-Instrucțiunea DROP permite stergerea unui tabel sau intregii baze de date:
DROP table nume_tabela;
DROP database nume_baza;
-Instrucțiunea SHOW listeaza baza de date existenta , tabelele din baza de date sau
campurile unei tabele:
SHOW databases;
SHOW tables;
SHOW fields from nume_tabela;
13

2.3Comertul electronic
Comerțul electronic este demersul de cumpărare sau vânzare prin intermediul transmiterii de
date la distanță, demers specific politicii expansive a marketingului companiilor comerciale. Prin
intermediul Internetului se dezvoltă o relație de servicii și schimb de mărfuri între ofertant și viitorul
cumparător. În anii 1990 compania IBM, printr-o campanie publicitară corespunzătoare, a făcut
popular și termenul echivalent Electronic Business. Un termen înrudit este E-Trade, care se referă la
tranzacțiile bursiere electronice.
Utilizarea tuturor mijloacelor electronice pentru participarea la o activitate de comerț
electronic poartă denumirea de tranzacție electronică.
Strâns legate de comerțul electronic pot fi legate și alte activități electronice, de exemplu
servirea cumpărătorilor, livrarea mărfii (dacă e vorba de medii electronice), colaborarea cu partenerii
de afaceri sau și conducerea unei organizații prin mijloace electronice.
În tranzacțiile comerciale clasice se disting următoarele etape:
-informarea comercială referitoare la tranzacție și anume cercetarea de marketing;
-încheierea contractului comercial general;
-comandarea/vânzarea produsului sau a serviciului;
-plata.
În cadrul comerțului electronic pot fi tranzacționate bunuri și servicii digitale (sunt excluse
fazele logistice), iar locul în care sunt tranzacționate aceste bunuri digitale poartă denumirea de piață
electronică (în limba engleză e-marketspace) – contextul virtual în care cumpărătorii și vânzătorii se
găsesc unii pe alții și tranzacționează afaceri electronice.
Comerțul electronic permite participarea atât a persoanelor fizice și juridice, cât și
a statului sau a instituțiilor acestuia. În funcție de relațiile dintre acești participanți au luat naștere mai
multe categorii de comerț electronic.
Cele mai frecvente categorii de comerț electronic sunt:
-B2B (business-to-business): este un model de comerț electronic în care toți participanții
sunt companii sau alte organizații. În România, domeniul B2B este o afacere foarte
promițătoare, datorită penetrării Internetului în firme la nivel înalt. Studii recente arată că
în România există mai mult de 1,1 milioane de utilizatori care intră pe Internet de la locul
lor de muncă (inclusiv școli și universități), și peste 42.000 de domenii de nivel înalt sunt
înregistrate.
-B2C (business-to-consumer): model de comerț electronic în care companiile vând la
cumpăratori individuali – persoane fizice. În România, piața electronică B2C se află încă
14

într-un stadiu de formare. Consumatorii încă experimentează online, dar sunt încă multe
obstacole ce trebuie să fie învinse înainte de a se schimba comportamentul clienților;
aceste probleme sunt legate de crearea securității transacțiilor, asigurarea protecției
clienților, mărirea vitezei de transfer în rețea sau chiar asigurarea accesului la Internet.
Majoritatea utilizatorilor Internet particulari au acces la Internet prin intermediul locului
lor de muncă, și numai circa 200.000 de oameni dispun de un acces personal. Office of
National Statistics din Marea Britanie susține că vânzările B2C pe glob au depășit 10
miliarde de dolari în 2001, piața fiind în plină expansiune.
-B2G (business-to-gouvernment): Guvernele utilizează canale de comerț electronic pentru
creșterea eficienței operațiunilor și îmbunătățirea serviciilor oferite cetățenilor-clienți. O
arie de interes pentru guverne în domeniul afacerilor este intensificarea utilizării
Internetului și a rețelelor VAN, pentru diseminarea informației, a oportunităților, cotațiilor
primite de la vânzători/furnizori de bunuri și servicii.
2.3.1Tranzactii online
Aceste tipuri de comerț necesită tranzacționări online ale produselor. Iată răspunsuri la
câteva întrebări comune despre tranzac ii online: ț
-Ce este o conexiune securizată? O conexiune securizată este un schimb criptat de
informa ii între site-ul Web pe care îl vizita i i Internet Explorer. Criptarea este furnizată ț ț ș
printr-un document oferit de site-ul Web, denumit certificat. Când se trimit informa ii ț
către site-ul Web, acestea sunt criptate în computer i decriptate în site-ul Web. În mod ș
normal, informa iile nu se pot citi sau falsifica în timpul trimiterii, dar este posibil ca ț
cineva să găsească o modalitate de a sparge criptarea. Chiar dacă este criptată conexiunea
dintre computer i site-ul Web, acest lucru nu garantează faptul că site-ul Web este de ș
încredere. Confiden ialitatea poate fi compromisă de modul în care site-ul Web utilizează ț
sau distribuie informa iile dvs. ț
-Conexiunile securizate sunt confidențiale ? Nu neapărat. Chiar dacă informa iile ț pe care le
trimite i i le primi i sunt criptate (codificate), este posibil ca o parte intermediară să vadă ț ș ț
site-ul Web la care vă conecta i. tiind site-ul Web la care vă conecta i, este posibil ca ț Ș ț
cealaltă parte să tie destul de bine ce face i pe acel site. De exemplu, dacă sunte i în ș ț ț
căutarea unei slujbe noi utilizând computerul de la serviciu, este posibil ca firma să
verifice cuvintele cheie din site-urile Web sau să păstreze un jurnal al site-urilor vizitate.
Dacă încărca i un CV pe un site Web de slujbe, documentul poate fi criptat, dar firma va ț
ti că sunte i în căutarea unui alt loc de muncă.ș ț
-Cum aflu dacă am o conexiune securizată? În Internet Explorer, ve i vedea o pictogramă ț
lacăt în bara Stare de securitate. Bara de stare a securită ii este amplasată în partea ț
dreaptă a barei Adresă. Certificatul utilizat la criptarea conexiunii con ine i informa ii ț ș ț
15

despre identitatea proprietarului site-ului Web sau a organiza iei. Face i clic pe lacăt ț ț
pentru a vizualiza identitatea site-ului Web.
-Cum sporesc siguranța tranzacțiilor online? În timp ce pe Web nu există o garan ie a ț
siguran ei, ave i posibilitatea să diminua i problemele de confiden ialitate sau securitate ț ț ț ț
online utilizând site-uri Web pe care le cunoa te i i în care ave i încredere. Internet ș ț ș ț
Explorer nu poate spune dacă proprietarul unui site Web este de încredere. Încerca i să ț
utiliza i site-uri pe care le-a i mai utilizat anterior sau care sunt recomandate de prieteni de ț ț
încredere sau de familie. De asemenea, trebuie să activa i Filtrul pentru în elătorie din ț ș
Internet Explorer pentru a ajuta la identificarea site-urilor Web frauduloase.
2.3.2Sistemul de confirmare prin email
Sistemul de confirmare de e-mail-uri trimite un mesaj automat expeditorului de e-mail
suspect. În cazul în care expeditorul răspunde la mesaj (prin urmare de autentificare, a faptului că el
sau ea este o persoană "reală") sistemul de confirmare de e-mail va adăuga adresa la lista albă a
utilizatorului. Mesajul original va fi livrat în căsuța poștală a utilizatorului. Având în vedere că
persoana a fost adăugat în lista albă, mesajele ulterioare de la el sau ea vor fi livrate automat în casuța
poștală a utilizatorului. Procesul de confirmare nu va fi repetat.
Fluxul diagramă ajută la ilustrarea procesului de confirmare e-mail. Este important de reținut
faptul că mesajele care necesită confirmare sunt mesajele de la expeditori care nu sunt în lista albă sau
lista neagră și cele care au trecut prin filtrul spam, fără a fi șterse automat .
16

3APLICATIA SOFTWARE
3.1Prezentare generala
Am ales ca aplicatie pentru lucrarea de licenta dezvoltarea unui magazin online de componente
electronice, ce ofera mai multe facilitati:
-Adaugarea de categorii si produse;
-Editarea/ stergerea acestora;
– Inregistrarea utilizatorilor;
-Posibilitatea de a cumpara produsele, etc.
Site-ul contine o baza de date denumita electronix, care este alcatuita din mai multe tabele:
-categorii_tabel, ce contine id_categorie ( fiecarei categorii nou introduse i se genereaza
un id automat si crescator ) si id_descriere (denumirea categoriilor introduse de
administrator);
-produse_tabel, cu cod_produse, cod_furnizor ( administratorul le introduce pentru fiecare
produs nou adaugat) , denumire, pret, disponibilitate ( 0 pentru indisponibil si 1 pentru
disponibil), id_categorie si imagine;
-user_tabel, ce contine user_id ( se aloca automat), user_nume (il introduce utilizatorul) ,
user_email ( mailul utilizatorului) , user_statusActivare ( 0 pentru inactiv si 1 pentru activ)
si password (parola aleasa de utilizator) ;
-cos_cumparaturi, cu Counter , user_id ( identificarea userului dupa id), idProdus
(coincide cu cod_produse), Cantitate si cumparare_ok.
3.2Intefata site-ului
17

Conexiunea intre baza de date si site-ul magazinului se face cu ajutorul fisierului
conexiune_magazin.php .
<?php if (!isset ($_SESSION)) {
session_start();
}?>
<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_conexiune_magazin = "localhost";
$database_conexiune_magazin = "electronix";
$username_conexiune_magazin = "root";
$password_conexiune_magazin = "";
$conexiune_magazin = mysql_pconnect($hostname_conexiune_magazin,
$username_conexiune_magazin, $password_conexiune_magazin) or
trigger_error(mysql_error(),E_USER_ERROR);
?>
Sesiunea reprezinta un mecanism ce permite retinerea informatiilor despre starea clientului.
Daca serverul nu a mai “intalnit” clientul respectiv, el genereaza o noua sesiune.
Aplicatia este compusa din doua parti principale:
-zona de administrare a magazinului ;
-magazinul online.
Cele doua se afla in stransa legatura, deoarece produsele si categoriile pe care le adaugam din
sectiunea de administrare sunt vizibile pe site-ul magazinului, iar administratorul are posibilitatea de a
vedea utilizatorii care s-au inregistrat in baza de date.
Structura aplicatiei este urmatoarea:
18

Figura 4. Site root
3.2.1Zona de administrare
Toata sectiunea grafica de administrare este construita pe baza unui template,
BasaAdmin.dwt.php. Designul este dat de un fisier extern, aflat in folderul style, twoColFixLtHdr.css
si de stiluri inline.
19

In partea din stanga, sub logo-ul magazinului, avem un sidebar care contine un meniu cu
link-uri catre Administrare(index.php), Lista de produse, Lista de categorii si Clienti.
Continutul sidebarului este dat de fisierul php admin.php, care se afla in folderul includes,
printr-o interogare php:
<div id="sidebar1">
<?php include ("../includes/admin.php");
?>
<!– end #sidebar1 –></div>
Pagina admin.php contine linkurile catre paginile cu functii de editare, adaugare, stergere:
Figura 5. Admin.php
Continutul principal al paginii are, de asemenea, link-uri catre Adaugare categorii, Adaugare
Produse si Editare produse.
20

Figura 6. Index.php
Accesand linkul Lista de categorii, avem posibilitatea de a vedea categoriile de produse
deja existente si de efectuare a unor operatii ca Editare/ Stergere sau Adaugare categorie noua.
Figura 7. Lista categorii
Selectia si vizualizarea categoriilor este posibila cu ajutorul unui query mysql:
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
21

$query_Recordset1 = "SELECT * FROM categorii_tabel ORDER BY
categorii_tabel.id_descriere ASC"; /*selecteaza toate datele din categorii_tabel ordonate
ascendent dupa id_descriere */
$Recordset1 = mysql_query($query_Recordset1, $conexiune_magazin) or
die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
Un Recordset reprezinta un script folosit pentru a afisa date ce sunt stocate intr-un tabel MySQL.
Dupa ce am extras informatiile care ne intereseaza, le putem afisa in pagina:
<?php do { ?>
<tr>
<td><?php echo $row_Recordset1['id_descriere']; ?></td>
<td><a href="editare_categorii.php?recordID=<?php echo
$row_Recordset1['id_categorie']; ?>">Editare / </a>
<a href="sterge_categorii.php?recordID=<?php echo
$row_Recordset1['id_categorie']; ?>">Stergere</a></td>
</tr>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
Dupa ce pagina a fost afsata cu datele cerute din baza de date, “curatam” recordsetul cu
instructiunea:
<?php
mysql_free_result($Recordset1);
?>.
Adaugarea unei noi categorii in baza e date se face prin adaugarea denumirii categoriei in
campul Descriere si apasarea butonului de tip submit:
$insertSQL = sprintf("INSERT INTO categorii_tabel (id_descriere) VALUES (%s)",
22

GetSQLValueString($_POST['id_descriere'], "text"));
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$Result1 = mysql_query($insertSQL, $conexiune_magazin) or die(mysql_error());
$insertGoTo = "lista_categorii.php"; /*redirecteaza catre pagina Lista categoriilor */
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
Figura 8. Adauga categorie noua
Editarea categoriilor permite decat redenumirea lor, deoarece id-ul categoriei se aloca
automat.
$updateSQL = sprintf("UPDATE categorii_tabel SET id_descriere=%s WHERE
id_categorie=%s",
GetSQLValueString($_POST['id_descriere'], "text"),
GetSQLValueString($_POST['id_categorie'], "int"));
Stergerea se executa din pagina sterge_categorii, care contine scriptul:
if ((isset($_GET['recordID'])) && ($_GET['recordID'] != ""))
{
23

$deleteSQL = sprintf("DELETE FROM categorii_tabel WHERE id_categorie=%s",
GetSQLValueString($_GET['recordID'], "int"));
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$Result1 = mysql_query($deleteSQL, $conexiune_magazin) or die(mysql_error());
$deleteGoTo = "lista_categorii.php";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING']; }
Pagina cu lista de produse permite aceleasi functii ca si cea cu lista categoriilor, ca adaugarea,
stergerea sau editarea produselor, afisand cate 10 produse pe pagina.
Figura 9. Lista de produse
Adaugarea produselor se face din pagina adaugare_prod.php . Aceasta contine un tabel care
are mai multe campuri obligatorii ce trebuiesc completate pentru a introduce un nou produs in baza
de date.
24

Figura 10. Adaugare produse
$insertSQL = sprintf("INSERT INTO produse_tabel (cod_produse, cod_furnizor, denumire,
pret, disponibilitate, id_categorie, imagine) VALUES (%s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['cod_produse'], "int"),
GetSQLValueString($_POST['cod_furnizor'], "int"),
GetSQLValueString($_POST['denumire'], "text"),
GetSQLValueString($_POST['pret'], "double"),
GetSQLValueString($_POST['disponibilitate'], "int"),
GetSQLValueString($_POST['id_categorie'], "int"),
GetSQLValueString($_POST['imagine'], "text"));
Dupa ce a introdus datele obligatorii, administratorul are poate atribui produsul unei anumite
categorii deja create care sunt afisate in Dynamic list, poate incarca o imagine sau poate selecta
stocul (Disponibil/ Epuizat).
Functia incarcaImginea apeleaza pagina gestionare_prod.php
25

<script>
function incarcaImaginea()
{ self.name = 'opener';
remote = open ('gestionare_prod.php', 'remote', 'width=400, height = 150, location =
no, scrollbars = yes, menubars = no, toolbars = no, resizable = yes, fullscreen = no, status =
yes');
remote.focus();}
</script>.
Pagina gestionare_prod.php este cea care incarca imagininea in baza de date, in folderul
"../docs/produse/".
Figura 11. Incarca imaginea
Administratorul site-ului poate sterge din baza de date userii inregistrati, cu ajutorul codului
din pagina sterge_user.php :
$deleteSQL = sprintf("DELETE FROM user_tabel WHERE user_id=%s",
GetSQLValueString($_GET['recordID'], "int"));
3.2.2Magazinul online
La fel ca la sectiunea de administrare, partea grafica a magazinul online este bazata pe un
template, diferit fata de cal anterior, main.dwt.php, care este legat de fisierul main.css:
<link href="../style/main.css" rel="stylesheet" type="text/css" />
26

Figura 12. Index.php
In zona header-ului avem inserata imaginea cu logo-ul magazinului, care reprezinta si un
link catre index.php.
<h1>
<a href="../index.php"><img src="../images/logo_0.png" width="300" height="100"
alt="logo_trans" />
</a>
27

</h1>
Containerul paginii contine un AccordionMenu implementat de Dreamweaver, printr-un fisier
JavaScript inclus in folderul SpryAssets, cu cateva informatii despre magazin, precum si datele de
contact. Acesta este apelat in pagina principala de scriptul :
<script src="SpryAssets/SpryAccordion.js" type="text/javascript"></script>
<link href="SpryAssets/SpryAccordion.css" rel="stylesheet" type="text/css" />
In partea stanga a paginii avem un sidebar care ne arata categoriile introduse de administrator
sub forma unui meniu si optiuni de inregistrare/ log in pentru clienti. Sidebarul este complet efectuat
in alta pagina, catalog.php, si este apelat prin scriptul :
<?php include ("includes/catalog.php"); ?>
Un recordset afiseaza toate intrarile din tabelul categorii_tabel si le ordoneaza dupa numarul intrarii:
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$query_Recordset1 = "SELECT * FROM categorii_tabel ORDER BY
categorii_tabel.id_categorie";
$Recordset1 = mysql_query($query_Recordset1, $conexiune_magazin) or
die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
Daca utilizatorul care navigheaza pe site nu este inregistrat, el are posibilitatea de a se
inregistra, folosind formularul de inregistrare pus la dispozitie lor. Sintaxa urmatoare introduce datele
utilizatorilor in baza de date, in tabelul user_tabel.
$insertSQL = sprintf("INSERT INTO user_tabel (user_nume, user_email,
user_statusActivare, password) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['user_nume'], "text"),
GetSQLValueString($_POST['user_email'], "text"),
GetSQLValueString($_POST['user_statusActivare'], "int"),
GetSQLValueString($_POST['password'], "text"));
28

Figura 13. Inregistrare clienti
In cazul in care utilizatorul reuseste inregistrarea, este redirectionat catre pagina
inreg_succes.php, unde este anuntat ca a fost inregistrat cu succes si ca se poate loga cu emailul si
parola alese.
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO user_tabel (user_nume, user_email,
user_statusActivare, password) VALUES (%s, %s, %s, %s)",
GetSQLValueString($_POST['user_nume'], "text"),
GetSQLValueString($_POST['user_email'], "text"),
GetSQLValueString($_POST['user_statusActivare'], "int"),
GetSQLValueString($_POST['password'], "text"));
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$Result1 = mysql_query($insertSQL, $conexiune_magazin) or die(mysql_error());
$insertGoTo = "inreg_succes.php";
29

if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
Figura 14. Inregistrare cu succes
Pe sectiunea de log in, clientul trebuie sa introduca emailul si parola:
30

Figura 15. Acces utilizator
Daca logarea s-a efectuat cu succes, va aparea mesajul “Bine ati venit! Multumim pentru
logare”. In caz contrar, va aparea un mesaj de atentionare: “ Atentiune! A existat o eroare in procesul
de logare!” si un link pentru a reincerca logarea.
Scriptul urmator afiseaza, cu ajutorul functiei ObtineNumeUser inclusa in
“../includes/functii.php” numele utilizatorului inregistrat
<?php
if ((isset($_SESSION['MM_Username'])) && ($_SESSION['MM_Username'] != ""))
{
echo "Salut, ";
echo ObtineNumeUser($_SESSION['MM_UserId']);
?>
Functia ObtineNumeUser selecteaza din tabelul user_tabel numele utilizatorului :
function ObtineNumeUser ($identificator)
31

{
global $database_conexiune_magazin, $conexiune_magazin;
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$query_QueryFunction = sprintf("SELECT user_tabel.user_nume FROM user_tabel
WHERE user_tabel.user_id = %s" ,$identificator );
$QueryFunction = mysql_query($query_QueryFunction, $conexiune_magazin) or
die(mysql_error());
$row_QueryFunction = mysql_fetch_assoc($QueryFunction);
$totalRows_QueryFunction = mysql_num_rows($QueryFunction);
return $row_QueryFunction['user_nume'];
mysql_free_result($QueryFunction);
}
Daca dam click pe una din categorii, in container ne va aparea o galerie de imagini cu toate
produsele din categoria respectiva; in cazul in care nu exista inca produse, serverul ne va raspunde ca
nu exista inca produse in acea categorie.
<div class="prod_result">
<?php if ($totalRows_dateProd > 0) { // Show if recordset not empty ?>
<?php do { ?>
<div class="produse">
<div class="img_prod">
<img src="docs/produse/<?php echo $row_dateProd['imagine']; ?>" width="90"
height="90" /><br /> </div>
<div class="text_prod"><a href="prod_mari.php?recordID=<?php echo
$row_dateProd['cod_produse']; ?>"> <?php echo $row_dateProd['denumire']; ?></a>
<br />
Pret:<?php echo $row_dateProd['pret']; ?> lei </div>
32

</div>
<?php } while ($row_dateProd = mysql_fetch_assoc($dateProd)); ?>
<?php } // Show if recordset not empty ?>
<?php if ($totalRows_dateProd == 0) { // Show if recordset empty ?>
Nu exista inca produse in aceasta categorie
<?php } // Show if recordset empty ?>
</div>
Figura 16. Produse
33

Figura 17. Integrate
Produsele electronice astfel afisate au o poza descriptiva, o denumire si pret. Daca dam click pe
un produs anume, ajungem la posibilitatea de a adauga produsul respectiv in cosul de cumparaturi.
De asemenea, in cazul in care nu suntem inregistrati, ne apare un mesaj care ne avertizeaza ca
trebuie sa fim inregistrati pentru a putea cumpara produsul si un link catre pagina
inregistrare_clienti.php .
<?php echo $row_dateProd['denumire'];
?>
<table width="70%" border="0">
<tr>
<td><img src="docs/produse/<?php echo $row_dateProd['imagine']; ?>"
width="250" height="250" /></td>
<td valign="top"> <p> <?php echo $row_dateProd['denumire']; ?> </p>
34

<p>Pret:<?php echo $row_dateProd['pret']; ?> lei
<?php if ((isset($_SESSION['MM_UserId'])) &&
($_SESSION['MM_UserId']!=""))
{?>
<p><a href="adaug_cos.php?recordID=<?php echo
$row_dateProd['cod_produse']; ?>">Cumpara produsul</a></p>
<?php }
else
{?>
Trebuie sa fiti <a href="inregistrare_clienti.php">inregistrat</a> pentru a putea
cumpara.
<?php } ?> </td>
Figura 18. Produse
35

Dupa ce am apasat pe butonul Cumpara produsul, suntem redirectati catre pagina ce contine
cosul de cumparaturi, lista_cos.php. Produsul a fost deja adaugat in tabelul cos_cumparaturi cu
ajutorul codului din pagina adaug_cos.php:
$insertSQL = sprintf("INSERT INTO cos_cumparaturi (user_id, idProdus, cantitate )
VALUES (%s, %s, %s)",
GetSQLValueString($_SESSION['MM_UserId'], "int"),
GetSQLValueString($_GET['recordID'], "text"),1 );
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$Result1 = mysql_query($insertSQL, $conexiune_magazin) or die(mysql_error());
$insertGoTo = "lista_cos.php";
Query- ul urmator selecteaza produsele din tabel:
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$query_DateCumparaturi = sprintf("SELECT * FROM cos_cumparaturi WHERE
cos_cumparaturi.user_id = %s and cos_cumparaturi.cumparare_ok = 0",
GetSQLValueString($varUser_DateCumparaturi, "int"));
$DateCumparaturi = mysql_query($query_DateCumparaturi, $conexiune_magazin) or
die(mysql_error());
$row_DateCumparaturi = mysql_fetch_assoc($DateCumparaturi);
$totalRows_DateCumparaturi = mysql_num_rows($DateCumparaturi);
36

Figura 19. Lista cos
In aceasta pagina avem optiunile de a sterge produsele din cos si de a selecta metoda de plata.
Prin doua functii definite in alt fisier, pe pagina cu posibilitatea de a cumpara ne sunt afisate
denumirea produselor si pretul acestora.
function ObtineNumeProdus ($identificator)
{
global $database_conexiune_magazin, $conexiune_magazin;
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$query_QueryFunction = sprintf("SELECT denumire FROM produse_tabel WHERE
cod_produse = %s" ,$identificator );
$QueryFunction = mysql_query($query_QueryFunction, $conexiune_magazin) or
die(mysql_error());
$row_QueryFunction = mysql_fetch_assoc($QueryFunction);
$totalRows_QueryFunction = mysql_num_rows($QueryFunction);

37

return $row_QueryFunction['denumire'];
mysql_free_result($QueryFunction);
}
function ObtinePretProdus ($identificator)
{
global $database_conexiune_magazin, $conexiune_magazin;
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$query_QueryFunction = sprintf("SELECT pret FROM produse_tabel WHERE
cod_produse = %s" ,$identificator );
$QueryFunction = mysql_query($query_QueryFunction, $conexiune_magazin) or
die(mysql_error());
$row_QueryFunction = mysql_fetch_assoc($QueryFunction);
$totalRows_QueryFunction = mysql_num_rows($QueryFunction);
return $row_QueryFunction['pret'];
mysql_free_result($QueryFunction);
}
In fisierul lista_cos.php, suma de plata este initializata cu zero. In tabul Produse se afiseaza
denumirea produsului, iar in totalul de plata este calculat prin adunarea pretului afisat cu functia
ObtinePretProdus:
<table width="100%" border="0">
<tr>
<td>Produse</td>
<td>Unitati</td>
<td>Pret</td>
38

<td>Actiuni</td>
</tr>
<?php $suma = 0;
?>
<?php do { ?>
<tr>
<td><?php echo ObtineNumeProdus($row_DateCumparaturi['idProdus']); ?></td>
<td><?php echo $row_DateCumparaturi['Cantitate']; ?></td>
<td><?php echo ObtinePretProdus($row_DateCumparaturi['idProdus']); ?></td>
<td><a href="sterg.php?recordID=<?php echo $row_DateCumparaturi['idProdus']; ?
>">Sterge</a></td>
</tr>
<?php $suma=$suma+ ObtinePretProdus($row_DateCumparaturi['idProdus']); ?>
<?php } while ($row_DateCumparaturi = mysql_fetch_assoc($DateCumparaturi)); ?>
<tr>
<td>&nbsp;</td>
<td align="right">Total:</td>
<td><?php echo $suma ;?> Lei</td>
<td>&nbsp;</td>
</tr>
</table>
39

Figura 20. Cos cumparaturi
Urmand linkul de la Selectati metoda de plata , suntem redirectionati pe o pagina unde putem
alege una dintre metodele de plata:
Figura 21. Metoda de plata
40

Daca alegem sa finalizam plata prin transfer bancar, produsele vor fi livrate dupa primirea
confirmarii platii pe email:
Figura 22. Transfer
41

3.3Softuri folosite
Un IDE (Integrated Development Environment) inseamna o aplicatie software care ofera
faciliteaza munca programatorilor in dezvoltarea software. Acestea sunt dedicate anumitor limbaje de
programare. De obicei, un IDE contine:
– un editor de cod;
-Caracteristici de completare automata a codului;
-Un debugger;
-Compiler.
Exemple de IDE-uri:
-Visual Studio (C\C++, C#, VB.NET);
-Nebeans ( pentru Java, C/C++);
-Eclipse ( Java);
-Dreamweaver ( HTML, PHP, CSS, JavaScript);
3.3.1Dreamweaver
Adobe Dreamweaver CS4 este unealta perfecta pentru a dezvolta aplicatii web. In el se
regasesc necesitatile programatorilor si designerilor totodata, datorita interfetei grafice cu care este
dotat. Dezvoltatorul poate scrie cod sau se poate folosi de functiile sale built in, cum ar fi inserarea
imaginilor , tabelelor, butoanelor etc, din meniul Insert (Figura 23)
Se pot de asemenea, crea site-uri (o colectie de fisiere si foldere care corespund unui website
de pe un server). De exemplu, in Figura 24. sunt evidentiate radacina ( root) magazinului Electronix.
Tot aici se specifica si modelul serverului (PHP MySQL), prefixul URL-ului (adresa pe care o scriem
in bara browserului pentru a accesa paginile web dorite. De exemplu, http://localhost/ ne va deschide
pagina home a siteului, index.php) precum si adresa unde se afla folderul pentru testare
( C:\wamp\www).
42

Figura 23. Interfata DW
Figura 24. Creare site
43

Dreamweaver vine cu un set de Comportamente ale Serverului (Server behaviors) care permit
adaugarea usoare de functionalitati dinamince unui site:
Figura 25. Sever behaviors Figura 26. Bindings
Alegerea unei functionalitati insereaza automat un script in pagina web:
RECORDSET:
<?php if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "",
$theNotDefinedValue = "")
{ if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; }
$theValue = function_exists("mysql_real_escape_string") ?
mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
44

case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined": $theValue = ($theValue != "") ? $theDefinedValue :
$theNotDefinedValue; break; } return $theValue;} }
mysql_select_db($database_conexiune_magazin, $conexiune_magazin);
$query_Recordset1 = "SELECT * FROM categorii_tabel ORDER BY
categorii_tabel.id_categorie";
$Recordset1 = mysql_query($query_Recordset1, $conexiune_magazin) or
die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1); ?>
LOG IN USER:
45

<form id="form1" name="form1" method="POST" action="<?php echo
$loginFormAction; ?>">
<p> <label for="user_email">Email:</label> <span id="sprytextfield1">
<input type="text" name="user_email" id="user_email" />
<span class="textfieldRequiredMsg">Camp obligatoriu!</span><span
class="textfieldInvalidFormatMsg">Adresa invalida.</span></span></p>
<p>Parola: <label for="password"></label>
<span id="sprytextfield2"><input type="password" name="password" id="password" />
<span class="textfieldRequiredMsg">Camp obligatoriu!</span></span></p>
<p> <label for="button"></label>
<input type="submit" name="button" id="button" value="Trimite" /> </p>
</form>
3.3.2Wamp Server
Wamp Server este o aplicatie care instaleaza un server pe calculatorul personal. Acesta permite
dezvoltatorilor web sa-si testeze aplicatiile ca si cum s-ar afla online, pe un server al unor servicii de
host.
Aplicatia are urmatoarele functionalitati:
-Gestionarea bazelor de date cu ajutorul phpMyAdmin;
-Accesul la fisierele site-ului;
-Schimbarea setarilor serverului.
De obicei, vizualizarea websiteului se face scriind in bara de adrese a browserului “localhost” sau
dand click pe pictograma aplicatiei si alegand din meniu “Localhost”, ca in Figura 27:
46

Figura 27. Wamp Server
Daca alegem “www directory”, ne duce in folderul in care se afla site-ul, de exemplu
“C:\wamp\www “.
phpMyAdmin ne arata detaliile serverului si ne permite accesul la baza de date si tabelele ei, inclusiv
operatii ca Adaugare/ stergere/ editare baza de date, adaugare/ modificare/ stergere tabele, etc.
Figura 28. PhpMyAdmin
47

3.4Modelul rela ional al bazei de date ț
In modelul rela ional, o bază de date este compusa dintr-o multime de relatii, fiecare relatie ț
reprezentand un tip de entitate sau o asociere dintre doua sau mai multe tipuri de entitati.
Intr-o baza de date, fiecare relatie este unica.
Figura 29. Modelul rela ional al bazei de date electronix ț
Rela iile intre tabele sunt:ț
-Id_categorie(produse_tabel) Id_categorie(categorii_tabel)
-Cod_produse (produse_tabel) idProdus (cos_cumparaturi)
-User_id (user_tabel) user_id (cos_cumparaturi)
48

4CONCLUZII
Site-ul web al unui magazin reprezinta, la ora actuala, forma cea mai comuna de proiectare si
desfasurare a marketingului din zona online.
Internetul, cu toate facilitățile sale, a devenit o componentă extrem de importantă a fiecăruia
dintre noi. Folosim acestă resursă pentru a face cumpărături online, pentru a face programări online,
pentru a cumpăra bilete de avion sau de tren, pentru a ne delecta cu fisierele media pe care le pune la
dispoziție și, de ce nu, pentru a ne ajuta sa socializăm.
Aplicațiile Internetului sunt numeroase, așa că de ce nu ne-am bucura de fiecare resursă pe
care o pune la dispoziție? Spre exemplu, combinația dintre tehinicile folosite, alternarea in codul sursă
al programului, a scripturilor Java, al interogărilor PHP, al conexiunilor către o bază de date conduc în
final la un site dinamic, ușor de întreținut si de utilizat.
Realizarea temei „Magazin online de componente electronice” pentru susținerea examenului
de licență după terminarea celor 4 ani de facultate are ca scop dovedirea cunoștiințelor acumulate în
timpul facultății.
Punerea in practică a acestei teme a fost realizată cu ajutorul programului Abode
Dreamweaver CS4. Interfața realizată este una foarte ușoara și simplă, fiind accesibilă tuturor
utilizatorilor, aceasta fiind foarte bine structurată și organizată. Am învațat limbajul de programare
php în profunzime și am avut ocazia să pun în aplicare cunoștintele acumulate. Pentru mine redactarea
licenței a fost un proces de sistematizare a lucrurilor ce le-am învațat în decursul anilor dar și a celor
ce le-am învatat pe parcursul realizări lucrării. Din acest motiv consider că întregul proiect din faza
inițiala până la faza de documentație pentru redactarea licenței și scrierea propriu-zisă, a fost o ocazie
deosebită de a avansa pe plan profesional. Colaborarea cu dl. S.I. Dr. Ing. Stoica Spahiu Cosmin,
coordonatorul proiectului, a decurs foarte bine și a fost benefică pentru rezultatele finale obținute la
nivel de site, astfel am avut și o plăcere lucrând pentru proiect și licența.
Site-ul este foarte accesibil și are un design modern și atractiv. Acesta dispune de o structură
foarte bine organizată și un conținut simplist .
Prin lucrarea descrisă mai sus am încercat sa evidențiez tehnicile folosite de programatorii
web pentru a introduce vastele servicii oferite de Internet în această epocă a înaltei tehnologii.
49

5BIBLIOGRAFIE
Practical SEO tehniques, Macronimous web solution;
Tehnologii Web, Sabin Corneliu Buraga;
Retele de calculatoare, Tanenbaum
PHP Manualul Programatorului, programare.org;
JavaScript, Richard Wagner;
Proiectarea paginilor web – HTML, CSS, JavaScript – , Florentina Rodica Niculescu ;
Dezvoltarea site-urilor web;
Baze de date – suport teoretic-, Catalin Constantinescu ;
Introduction to Structured Query Language, James Hoffman ;
PHP & MYSQL novice to ninja, fifth edition, Kevin Yank
50

6REFERIN E WEB Ț
http://ro.wikipedia.org/wiki/Comer%C8%9B_electronic ;
http://windows.microsoft.com/ro-ro/windows/know-online-transaction-
secure#1TC=windows-7 ;
http://ro.wikipedia.org/wiki/Server ;
http://ro.wikipedia.org/wiki/HyperText_Markup_Language ;
http://ro.wikipedia.org/wiki/PHP ;
http://www.wampserver.com/en/ ;
http://inf.ucv.ro/~mihaiug/courses/web/slides/Curs12%20-%20Gestiunea%20Sesiunilor.pdf ;
http://www.seap.usv.ro/~valeriul/lupu/html_php_mysql.pdf ;
http://www.wildbunny.co.uk/blog/wp-content/uploads/2012/10/clientServer.gif ;
http://www.websolpc.ro/wp-content/uploads/2011/02/Dezvoltarea-Site-urilor-Web.pdf ;
http://biblioteca.regielive.ro/cursuri/limbaje-de-programare/fundamente-html-104283.html ;
http://tehnoit.info/wp-content/uploads/2013/01/Administrarea-bazelor-de-date-MySQL-din-
linia-de-comanda-PDF.pdf ;
http://www.adobe.com/aboutadobe/pressroom/pressmaterials/pdfs/cs4_dreamweaver_whatsne
w.pdf ;
http://www.websolpc.ro/wp-content/uploads/2011/02/Dezvoltarea-Site-urilor-Web.pdf .
51

CD / DVD
Autorul ata ează în această anexă obligatorie, versiunea electronică a aplica iei, a acestei ș ț
lucrări, precum i prezentarea finală a tezei. ș
52

Similar Posts