Sunteți pe pagina 1din 65

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 candidatului,

4.06.2014

iii
UNIVERSITATEA DIN CRAIOVA Aprobat la data de
Facultatea de Automatică, Calculatoare şi Electronică …………………
Şef de departament,
Prof. dr. ing.
Departamentul de Calculatoare și Tehnologia Informației
Marius BREZOVAN/
Emil PETRE

PROIECTUL DE DIPLOMĂ

Numele și prenumele studentului/-ei: Coşeran Andreea-Mădălina

Enunțul temei: Magazin online de componente electronice

Aplicaţia este realizată în întregime în pagini PHP.


Datele de pornire: Codul este realizat în programul Adobe Dreamweaver cs4.
Aplicaţia rulează pe server.

Proiectul este realizat din două parti: una teoretică care se


Conținutul proiectului: 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
Assist.Ph.D.Eng. Stoica Spahiu Cosmin
(titlul, nume și prenume, semnătura):
01.12.2013
Data eliberării temei:
iv
Termenul estimat de predare a
13.06.2014
proiectului:

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 În facultate □
documentare (se bifează una sau mai În producție □

multe din opțiunile din dreapta): În cercetare □


Altă locație: [se detaliază]

În urma analizei lucrării candidatului au fost constatate următoarele:

Insuficient Satisfăcător Bine Foarte bine


Nivelul documentării
□ □ □ □
Cercetare Proiectare Realizare Altul
Tipul proiectului
□ □ practică □ [se detaliază]
Simplu Mediu Complex Absent
Aparatul matematic utilizat
□ □ □ □
Contract de Cercetare Utilare Altul
Utilitate
cercetare □ internă □ □ [se detaliază]
Insuficient Satisfăcător Bine Foarte bine
Redactarea lucrării
□ □ □ □
Insuficientă Satisfăcătoar Bună Foarte bună
Partea grafică, desene
□ e□ □ □
Realizarea Insuficientă Satisfăcătoar Mare Foarte mare
practică Contribuția autorului
□ e □ □ □
Complexitatea Simplă Medie Mare Complexă
temei □ □ □ □
Analiza cerințelor Insuficient Satisfăcător Bine Foarte bine
vi
□ □ □ □
Simplă Medie Mare Complexă
Arhitectura
□ □ □ □
Întocmirea Satisfăcătoar
Insuficientă Bună Foarte bună
specificațiilor
funcționale
□ e □ □ □
Insuficientă Satisfăcătoar Bună Foarte bună
Implementarea
□ e □ □ □
Insuficientă Satisfăcătoar Bună Foarte bună
Testarea
□ e □ □ □
Da Parțială Nu
Funcționarea
□ □ □
Experiment propriu Preluare din bibliografie
Rezultate experimentale
□ □
Cărți Reviste Articole Referințe web
Bibliografie

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ţinerea unui magazin online de componente
electronice. Aplicaţia rulează pe server LocalHost cu ajutorul programului WampServer. Baza de date
este realizată cu phpMyAdmin din cadrul aceluiaşi program. Paginile site-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

1 INTRODUCERE.................................................................................................................................................1

2 PROGRAMAREA WEB............................................................................................................................ 2

2.1 PROGRAMAREA DE TIP CLIENT SIDE................................................................................................................2


2.1.1 HTML(HyperTextMarkupLanguage)..................................................................................................2
2.1.2 CSS (Cascading Style Sheet)...............................................................................................................4
2.1.3 JavaScript...........................................................................................................................................4
2.2 PROGRAMAREA DE TIP SERVER SIDE..............................................................................................................7
2.2.1 PHP.....................................................................................................................................................9
2.2.2 Baze de date.....................................................................................................................................11
2.2.3 Limbajul SQL.....................................................................................................................................13
2.3 COMERTUL ELECTRONIC...........................................................................................................................14
2.3.1 Tranzactii online...............................................................................................................................16
2.3.2 Sistemul de confirmare prin email...................................................................................................17

3 APLICATIA SOFTWARE........................................................................................................................ 18

3.1 PREZENTARE GENERALA..............................................................................................................................18


3.2 INTEFATA SITE-ULUI...................................................................................................................................19
3.2.1 Zona de administrare.......................................................................................................................21
3.2.2 Magazinul online.............................................................................................................................28
3.3 SOFTURI FOLOSITE.....................................................................................................................................43
3.3.1 Dreamweaver...................................................................................................................................43
3.3.2 Wamp Server...................................................................................................................................47
3.4 MODELUL RELAȚIONAL AL BAZEI DE DATE....................................................................................................49

4 CONCLUZII.......................................................................................................................................... 50

5 BIBLIOGRAFIE..................................................................................................................................... 51

6 REFERINȚ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
1 INTRODUCERE

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ă
2 PROGRAMAREA WEB

Programarea web poate fi impartita 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.1 Programarea 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.1 HTML(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.2 CSS (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.3 JavaScript
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.

4
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
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

5
Exemplu 2:

<HTML>
<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>

6
Pagina rezultata dupa rularea scriptului de la Exemplu 2:

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.2 Programarea 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.1 PHP
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 Licenṭa PHP ṣ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ţă;

9
- 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;
- 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>

10
</HEAD>

<BODY>

<? 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.2 Baze 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.

11
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;
- 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.

12
2.2.3 Limbajul 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
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:

13
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;

2.3 Comertul 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.

14
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ă
î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.1 Tranzactii 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
15
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
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.2 Sistemul 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
17
3 APLICATIA SOFTWARE

3.1 Prezentare 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.2 Intefata site-ului


18
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:

19
Figura 4. Site root

3.2.1 Zona 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.
20
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.

21
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);
22
$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)",


23
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'] != ""))

{
24
$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.

25
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


26
<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.2 Magazinul 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" />

27
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>

28
</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"));

29
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";

30
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:

31
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)


32
{

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>

33
</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

34
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>

35
<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

36
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);

37
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);

38
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>

39
<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>

40
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

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

Figura 22. Transfer

42
3.3 Softuri 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.1 Dreamweaver
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).

43
Figura 23. Interfata DW

Figura 24. Creare site

44
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) {

45
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:

46
<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.2 Wamp 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:

47
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

48
3.4 Modelul 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)

49
4 CONCLUZII

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.

50
5 BIBLIOGRAFIE

 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

51
6 REFERINȚ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_whatsn
ew.pdf ;

 http://www.websolpc.ro/wp-content/uploads/2011/02/Dezvoltarea-Site-urilor-Web.pdf .

52
CD / DVD

Autorul atașează în această anexă obligatorie, versiunea electronică a aplicației, a acestei


lucrări, precum și prezentarea finală a tezei.

53

S-ar putea să vă placă și