Lucrare licenta online store

Published on February 2017 | Categories: Documents | Downloads: 59 | Comments: 0 | Views: 543
of 64
Download PDF   Embed   Report

Comments

Content

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,

Departamentul de Calculatoare și Tehnologia Informației

Prof. dr. ing.
Marius BREZOVAN/
Emil PETRE

PROIECTUL DE DIPLOMĂ

Numele și prenumele studentului/-ei:

Enunțul temei:

Coşeran Andreea-Mădălina

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:
Conducătorul științific
(titlul, nume și prenume, semnătura):

Periodice

Assist.Ph.D.Eng. Stoica Spahiu Cosmin
01.12.2013

Data eliberării temei:
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:
Specializarea:
Titlul proiectului:

COŞERAN A. ANDREEA-MĂDĂLINA
Calculatoare
Magazin online de componente electronice

Locația în care s-a realizat practica de

În facultate

documentare (se bifează una sau mai
multe din opțiunile din dreapta):


În producție □
În cercetare □
Altă locație: [se detaliază]

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

Nivelul documentării

Tipul proiectului

Aparatul matematic utilizat

Utilitate

Redactarea lucrării

Partea grafică, desene
Realizarea
practică

Insuficient

Satisfăcător

Bine

Foarte bine









Cercetare

Proiectare

Realizare

Altul





[se detaliază]

Simplu

Mediu

practică □
Complex









Contract de

Cercetare

Utilare

Altul

cercetare □
Insuficient

internă □
Satisfăcător



[se detaliază]

Bine

Foarte bine









Insuficientă

Satisfăcătoar

Bună

Foarte bună



e□
Satisfăcătoar





Mare

Foarte mare

Insuficientă
Contribuția autorului



Absent





Mare

Complexă

Complexitatea

Simplă

e □
Medie

temei
Analiza cerințelor









Insuficient
vi

Satisfăcător

Bine

Foarte bine









Simplă

Medie

Mare

Complexă









Insuficientă

Satisfăcătoar

Bună

Foarte bună





Arhitectura
Întocmirea
specificațiilor



funcționale

e



Insuficientă

Satisfăcătoar

Bună

Foarte bună



e □
Satisfăcătoar





Bună

Foarte bună





Implementarea

Insuficientă
Testarea
Funcționarea


Da

e □
Parțială







Experiment propriu

Preluare din bibliografie





Rezultate experimentale
Cărți

Bibliografie

Nu

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

3.2

INTEFATA

GENERALA........................................................................................... 18

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.
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.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 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 PHPului 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 PHPului sub licenţa open-source a determinat adaptarea rapidă a PHP-ului la nevoile webului, 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.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.
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.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
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.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.
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.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
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.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

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
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.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.
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.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" />

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

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

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

-

Cod_produse (produse_tabel)

-

User_id (user_tabel)

Id_categorie(categorii_tabel)
idProdus (cos_cumparaturi)
user_id (cos_cumparaturi)

48

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.

49

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

50

6 REFERINȚE WEB



http://ro.wikipedia.org/wiki/Comer%C8%9B_electronic;



http://windows.microsoft.com/ro-ro/windows/know-online-transactionsecure#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-dinlinia-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

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close