Sunteți pe pagina 1din 74

227448992.

doc
Introducere
Comertul electronic reprezinta multitudinea proceselor software si comerciale
necesare proceselor business sa functioneze numai, sau n primul rnd, utiliznd fluxuri
digitale de date. Comertul electronic presupune utilizarea Internetului, comunicatii
digitale si aplicatii software n cadrul proceselor de vnzare/cumparare, el fiind o
componenta a procesului de e-business.
n momentul de fata exista o multitudine de firme ce utilizeaza comertul
electronic, n domenii diverse ca mareting direct, vnzari, servicii pentru clienti,
servicii bancare, distribuirea sigura a informatiilor etc.
!oile activitati bazate pe "e#nologia informatiei si comunicatiilor $"IC% au un
impact deosebit asupra societatii. &vanta'ele utilizarii noilor te#nologii n activitatile
de comert si afaceri are un mare impact asupra afacerilor. (e exemplu, se constata ca
practicarea maretingului pe Internet este cu )*+ mai ieftin dect prin metodele
obisnuite.
&plicatiile pentru comert electronic prezinta urmatoarele riscuri, nu exista o a
doua sansa, exista un control minimal asupra mediului clientilor, clientii nu sunt
cunoscuti si sc#imbarile sunt foarte rapide n te#nologiile utilizate.
Aplicatii distribuite
-etelele de calculatoare au o extindere rapida ntr-o multitudine de domenii
cum ar fi sistemul bancar, administratia publica, alocarea temporara de resurse n
#oteluri, rezervarea biletelor de avion, rezervarea biletelor de tren etc. &plicatiile
moderne iau n considerare accesul unui numar ct mai mare de utilizatori, mai ales de
cnd se prevede extinderea folosirii cardurilor si creste numarul personalelor care
utilizeaza Internetul.
&plicatiile distribuite constau n mai multe componente ce ruleaza pe masini
diferite, acestea aplicatii integrnd actiunile componentelor lor. .roiectarea aplicatiilor
distribuite se axeaza numai pe detaliile partilor individuale, ci si pe realizarea unei
integrari a componentelor distribuite, astfel nct acestea sa coopereze foarte bine ntre
ele.
.rincipalele cerinte pentru aplicatiile distribuite sunt,
/ interfete puternice
/ fiabilitate foarte mare
/ securitate ridicata
/ viteza ridicata de prelucrare si transmitere a datelor.
0
227448992.doc
n mod traditional, aplicatiile software distribuite se bazeaza pe ar#itectura
client/server sau pe ar#itectura multi-strat $n-tier%.
Figura nr. 1 - &r#itectura client/server
&r#itectura client/server presupune existenta unui server de baze de date
$server% si a unui modul software specific aplicatiei $clientul% care prelucreaza datele
$logica aplicatiei% si prezinta rezultatele $logica prezentarii%. n acest sistem nu exista
notiunea de obiecte, partea client lucreaza direct cu tabelele de date si procedurile
stocate din baza de date, figura 0.
n cadrul ar#itecturii multi-strat, un server de aplicatii se interpune intre
aplicatia client si serverul de baze de date. 1erverul de aplicatii implementeaza logica
aplicatiei iar clientul implementeaza logica de prezentare a sistemului. &vanta'ul
ma'or al ar#itecturii multi-strat fata de ar#itectura client/server l reprezinta cresterea
flexibilitatii.
Software pentru comert electronic
1istemele e-business se bazeaza pe ar#itectura 2eb, ce confera acestora o
fiabilitate, scalabilitate si flexibilitate ridicate. &r#itectura 2eb, figura ), difera fata
de ar#itectura multi-strat prin doua aspecte,
/ aplicatia client are o complexitate redusa, este un simplu navigator 2eb
/ nivelul regulilor aplicatiei e-business este bazat pe componente si nu este un
singur
sistem ce implementeaza ntreaga logica.
Componentele client sunt interfetele grafice utilizator si ruleaza n navigatoare
2eb precum !etscape !avigator sau Internet 3xplorer. Componentele server ce
ruleaza intr-un server de aplicatii, furnizeaza logica procesului de business.
)
227448992.doc
Figura nr. 2 - &r#itectura sistemelor de comert electronic
1oftware pentru e-business include componente pentru efectuarea sigura
aplatilor cu a'utorul cartilor de credit, componente pentru securizarea tranzactiilor,
componente pentru realizarea prezentarii.
.rincipalele caracteristici ale unei aplicatii e-business de succes sunt,
/ 4tilizabilitatea problemele cu interfata utilizator duc la pierderea clientilor5
/ 1iguranta controlul accesului, autentificarea si integritatea sunt foarte
importante
pentru desfasurarea proceselor de comert electronic5
/ 1calabilitatea - trebuie avut n vedere faptul ca succesul va aduce cresterea
cererii5
/ 6iabilitatea 7 defectele sunt de nenc#ipuit pentru un sistem business critic,
testarea
aplicatiilor avnd un rol foarte important5
/ 8entenabilitatea ratele crescute de sc#imbare sunt fundamentale pentru
comertul
electronic5
/ (isponibilitatea caderea este prea scumpa pentru a fi tolerata.
/ 3ficienta 7 neutilizarea optima a resurselor #ardware si software, duce la
scaderea
performantelor si a scalabilitatii aplicatiilor.
.entru proiectarea aplicatiilor de comert electronic se utilizeaza att standarde
te#nologice $98:, C;8<, C;-=&, -8I% ct si standarde pentru procese de afaceri
$;69 pentru plati, ;=I, IC3 pentru sc#imburile informationale, 12&.%.
&plicatiile de comert electronic necesita specialisti pentru administrarea
serverului web, a serverul de baze de date si a serverului de plati electronice.
>
227448992.doc
Testarea software
"estarea software este procesul cautarii erorilor n program, indiferent daca acestea
au cauze logice sau fizice. ;biectivul principal al testarii software este gasirea
erorilor, altfel spus, de a identifica neconcordanta dintre ceea ce este planificat sa
efectueze aplicatia si ceea ce realizeaza n realitate. "estarea nu resupune identificarea
cauzei erorilor si corectia acestora, acestea fiind activitati pecifice depanarii.
"estarea este privita ca o componenta ma'ora a calitatii software. 4n produs
software testabil se considera ca fiind inteligibil $structurat, concis si auto-descriptibil%
si masurabil $accesibil si cuantificabil%.
"estarea software este necesara pentru asigurarea calitatii, dar este un proces
scump si laborios, ce consuma de la o treime pna la o 'umatate din costul unui
proiect.
n procesul dezvoltarii software, exista un numar de produse care trebuie
testate,
/ modelele cerintelor5
/ modelele analizei si proiectarii5
/ modele ar#itecturale5
/ componentele individuale5
/ codul integrat al sistemului.
(e fapt, activitatea de testare trebuie asociata cu fiecare pas n procesul de
dezvoltare. &cest lucru permite descoperirea erorilor devreme n procesul de
dezvoltare software avnd drept consecinta costuri mai mici de corectie.
3xista doua strategii de testare, testarea functionala si testarea structurala.
"estarea structurala necesita ntelegerea structurii interne a programului $codul sursa%
si pune accentul pe acoperirea prin test a cailor si ramificatiilor programului. "estarea
functionala nu necesita cunoasterea structurii interne a programului, cunostinte despre
program, n sc#imb necesita cunoasterea a cum ar trebui sa fie comportamentul extern
al programului, bazndu-se pe specificatiile acestuia.
n cadrul ciclului de dezvoltare software exista testarea de module, testarea de
integrare, testarea de sistem, testarea de acceptare. Corespondenta dintre fazele
ciclului de dezvoltare software si etapele testarii este prezentata n figura >.
?
227448992.doc
Figura nr. 3 - !ivelele testarii n cadrul ciclului de dezvoltare software.
"estarea software orientat obiect are pe lnga obiectivul general al stabilirii
masurii n care produsul software realizeaza sarcinile date n specificatii, obiective
specifice legate de,
/ testarea functiilor membre ale fiecarei clase
/ testarea gradului de ncapsulare si a efectelor acestuia
/ testarea efectelor induse de nivelele de mostenire si de derivare
/ testarea efectelor induse de polimorfismul functiilor membre
/ testarea interactiunilor dintre clase.
1pre deosebire de software dezvoltat prin alte metode, n cazul programarii
orientate obiect, testarea vizeaza si masura n care clasele sunt proiectate n vederea
reutilizarii. &dica, se evidentiaza gradul de generalitate si mai ales concordanta dintre
specificatiile fiecarei functii si ceea ce efectiv functia realizeaza.
*
227448992.doc
Testarea aplicatiilor distribuite
"estarea aplicatiilor bazate pe ar#itectura 2eb, n plus fata de testarea
aplicatiilor clasice, necesita o serie de teste specifice cum ar fi, testarea de ncarcare,
testarea de compatibilitate, testarea functionala, testarea continutului, testarea
serverului 2eb, testarea securitatii, testarea serverului de aplicatii si testarea bazelor
de date.
"estarea de ncarcare se utilizeaza pentru a verifica daca site-ul 2eb poate
gestiona un anumit numar de utilizatori care l acceseaza concurent n limite
acceptabile ca timp de raspuns.
.rin testarea de compatibilitate urmareste aspectul si comportamentul site-ului
2eb n raport cu o varietate de sisteme de operare si de navigatoare Internet. &ceasta
testare scoate n evidenta problemele cu controalele &ctive9, applet-urile @ava,
functiile @ava1cript sau A=1cript si formulare din pagini. :a ora actuala exista peste
0BB de combinatii posibile ntre diverse sisteme de operare 2indows si diverse
versiuni ale navigatoarelor !etscape si Internet 3xplorer.
"estarea functionala se realizeaza pentru a constata daca site-ul se comporta
conform cu specificatiile sale. (etaliile acestui tip de testare depind de natura site-ului
2eb. n general consta n verificarea legaturile paginilor, testarea formularelor,
verificarea tranzactiilor pentru comertul electronic si pentru baze de date, testarea
applet-urilor @ava.
.entru testarea continutului se urmareste corectitudinea si asezarea n pagina a
textelor, imaginilor si fisierelor de animatie si video din cadrul site-ului.
"estarea serverul 2eb are n vedere testarea interactiunilor dintre serverul 2eb
si serverul de aplicatii, verificarea integritatii bazei de date n cadrul serverului de
baze de date, verificarea faptului ca scripturile &1., .C. sau @1. se executa corect pe
server.
"estarea securitatii tranzactiilor efectuate este foarte importanta pentru
aplicatiile de comert electronic avnd n vedere faptul ca sunt ve#iculate date
confidentiale, la care daca au acces persoane neautorizate sau rauvoitoare se pot
produce pierderi materiale importante.
"estarea serverului de aplicatii se realizeaza tinndu-se seama de caracteristicile
functionale si structurale ale acestuia. 1e testeaza componentele serverului, folosind
metode clasice de testare, precum si metode de testare ce iau n considerare
tranzactiile si comunicatiile asincrone dintre aceste componente.
"estarea bazelor de date presupune verificarea executarii corecte a interogarilor
si operatiilor de adaugare si actualizare a datelor, precum, si verificarea conexiunilor
dintre site-ul 2eb si baza de date.
.rin testarea performantelor se masoara comportamentul site-ului 2eb n
diverse conditii de trafic.
D
227448992.doc
.roblemele la cele trei companii prezentate anterior au aparut datorita testarii
incomplete sau incorecte a functionalitatii, utilizabilitatii, performantelor, volumul,
stresului si a scalabilitatii.
n prezent exista o multime de instrumente pentru testarea automata a
aplicatiilor distribuite bazate pe web. &stfel de aplicatii precum eAalid, -ational
1iteC#ec, 1il.erformer, :oad-unner au urmatoarele caracteristici,
/ ofera suport pentru testarea functionala
/ analizeaza integritatea legaturile dintre pagini
/ analizeaza ncarcarea si capacitatii serverului web
/ ofera o serie de indicatii pentru regla'e fine ale site-ului.
"estarea aplicatiilor de comert electronic se realizeaza fie de catre ec#ipe
specializate n testare din cadrul departamentului de asigurare a calitatii al firmei, fie
de catre o firma specializata n testare din $outsourcing%. 3lementele care stau la baza
deciziei de contractare a unei firme specializate n testare sunt, lipsa resurselor pentru
realizarea pe termen lung a testelor, dorinta de asigurare a unei obiectivitati asupra
evaluarii calitatii si nu n ultimul rnd analiza cost-beneficiu realizata pe baza
estimatiei costurilor privind testarea.
Arhitectura unui sistem de comert electronic

.entru a construi un sistem de e-commerce, din punct de vedere ar#itectural
este nevoie de colaborarea a trei componente $subsisteme electonice/informatice%
corespunzatoare urmatoarelor roluri,
- Client. 4n ec#ipament, clasic un .C, conectat direct $via un I1.% sau indirect
$o retea a unei corporatii% la Internet. Cumparatorul foloseste acest ec#ipament pentru
a naviga si a face cumparaturi.
- Comerciant. 1istem informatic $#ard E soft%, situat de regula la sediul
comerciantului, care gazduieste si actualizeaza catalogul electronic de produse
disponibile a fi comandate on-line pe Internet.
- Sistemul tranzactional. 1istemul informatic $#ard E soft% responsabil cu
procesarea comenzilor, initierea platilor, evidenta inregistrarilor si a altor aspecte de
business implicate in procesul de tranzactionare.
.e baza acestor trei componente de baza s-au implementat diverse ar#itecturi de
comert electronic. 4nele combina mai multe componente intr-un singur $sub%sistem
informatic, pe cand altele implementeaza separat fiecare componenta in parte.
F
227448992.doc
.entru definirea ar#itecturii, proiectantii de sisteme 3C fac o proiectare de ansamblu a
sistemului pe baza unei selectii a principalelor cerinte/functii ale unui sistem 3C.
(etalii cum ar fi, de exemplu, functia de agregare care permite asamblarea articolelor
intr-o comanda completa sunt lasate pe seama proiectarii de detaliu. (ecizia de a
integra aceasta functie de agregare la nivelul componentei client, comerciant sau
tranzactionale se va lua in functie de cerintele specifice ale fiecarei implementari in
parte. Important este insa ca in cazul unui sistem de 3C, ca de altfel in cazul oricarui
sistem complex, ar#itectura sa fie clar definita la toate nivelele de detaliu.
3xista mai multe optiuni pentru expunerea produselor si trimiterea comenzilor online.
Cea mai obisnuita este pagina simpla C"8: $pentru expunerea produselor% si un
formular electronic de comanda. (aca aveti un numar mic de produse aceasta este
varianta de care aveti nevoie. (aca numarul de produse pe care intentionati sa le
vindeti este mai mare si clientii cumpara in mod frecvent un numar mai mare de
produse aveti nevoie de un sistem de scripturi mai complex.
8a'oritatea furnizorilor de web #osting ofera insa pac#ete speciale de aplicatii pentru
comert electronic - sisteme de s#opping cart. &ceste aplicatii au o interfata pentru
baze de date si utilizeaza instrumente de programare complexe. .ot genera pagini
dinamice pentru expunerea produselor, calcularea pretului si a taxelor $inclusiv a celor
de expediere%. 6urnizeaza de asemenea rapoarte complete de urmarire a clientilor si
nenumarate optiuni de intretinere si actualizare. &numite componente permit c#iar
promotii speciale, promotii incrucisate sau personalizarea continutului in functie de
preferintele clientului. 8ulte dintre aceste aplicatii pot fi utilizate si in site-urile
comerciale de tip G=usiness to =usinessG $=)=%.
1istemul de s#opping cart pe care il alegeti trebuie sa poata furniza mecanismele
pentru colectarea informatiilor necesare expedierii produsului si procesarii tranzactiei
$inclusiv facturare, daca este cazul%.
.entru a asigura succesul pe termen lung al unui proiect de e-commerce,
ar#itectura acestuia trebuie proiectata cu gri'a tinand cont de toate aspectele de
business cu care se va confrunta sistemul, lasand totodata portite care sa permita
adaptarea sa in timp, pe masura ce apar noi provocari iar te#nologiile evolueaza.
In acest sens, aplicatia dezvoltata , vine in spri'inul ,celor afirmate mai sus - fiind
un sistem complex de s#oping c#art , implementat prin mai multe module functionale
- care asigura o ar#itectura flexibila si o manipulare - prelucrare facila a datelor cu
care se opereaza in procesul de e-commerce.
H
227448992.doc
Capitolul 1. Introducere in tehnologiile Web
1.1 WORLD WIDE WEB
Scurt istoric
2;-:( 2I(3 23= $sau mai simplu 23= sau 222% este un context
ar#itectural pentru accesul la documente raspandite pe mii de masini din Internet ,
intre care exista legaturi . In * ani a evoluat de la o aplicatie pentru transmiterea de
date utile pentru fizica energiilor inalte la o aplicatie despre care milioane de oameni
cred ca este Internetul. .opularitatea sa enorma se datoreaza faptului ca are o interfata
grafica plina de culoare, usor de utilizat de catre utilizatori si in acelasi timp ofera o
cantitate imensa de informatie despre orice subiect posibil
23=-ul a aparut din necesitatea de a permite cercetatorilor raspanditi in lume sa
colaboreze uItilizand colectii de rapoarte, planuri, desene, fotografii si alte tipuri de
documente aflate intr-o continua modificare. .ropunerea initiala pentru crearea unei
colectii de documente avand legaturi intre ele $23=% a fost facuta de fizicianul "im
=erners-:ee, fizician la C3-!, in martie 0JHJ. .rimul prototip $bazat pe text% era
operational 0H luni mai tarziu. In decembrie 0JJ0 s-a facut o demonstratie publica la
conferinta CIpertext KJ0, in 1an &ntonio, "exas. &ctiunea a continuat in anul urmator,
fiind incununata cu realizarea primei interfete grafica, 8osaic, in februarie 0JJ>.
8osaic a fost atat de popular incat un an mai tarziu autorul sau 8ar &ndreessen a
parasit !C1& unde 8osaic-ul a fost dezvoltat, pentru a forma o noua companie,
!etscape Communication Corp. care se ocupa de dezvoltarea de software pe 23=.
In 0JJ? C3-! si 8I" au semnat o intelegere de a forma consortiul 2;-:(
2I(3 23=, organizatie care are ca obiectiv dezvoltarea 23=-ului, standardizarea
protocoalelor si incura'area interoperabilitatii intre site-uri. (e atunci, sute de
universitati si companii au intrat in consortiu. 8I" coordoneaza partea americana a
consortiului, in timp ce centrul de cercetari I!-I& coordoneaza partea europeana.
(esi exista foarte multe carti despre 23=, cel mai bun loc pentru gasirea unor
informatii la zi despre el este $in mod natural% c#iar 23=-ul. .agina consortiului are
adresa #tttp,//www.w>.org. Cititorii interesati vor gasi acolo legaturi la pagini care
acopera toate documentele si activitatile consortiului.

J
227448992.doc
Descriere
(in punct de vedere al utilizatorului, 23=-ul se prezinta ca o colectie imensa de
documente raspandite in toata lumea, numite pagini. 6iecare pagina poate sa contina
legaturi $indicatori% la alte pagini, aflate oriunde in lume. 4tilizatorii pot sa aleaga o
legatura $de exemplu prin executia unui clic% care ii va duce la pagina indicata de
legatura. &cest proces se poate repeta la nesfarsit, fiind posibil sa se traverseze in
acest mod sute de pagini legate intre ele. (espre paginile care indica spre alte pagini
se spune ca utilizeaza #Ipetext.
.aginile 2eb sunt vizualizate pe calculatorul client cu a'utorul unui program
special numit browser. :a inceput, 2eb-ul consta numai din pagini de text, fara nici o
imagine.
;data cu aparitia primului browser 2eb grafic in anul 0JJ>, 2eb-ul a inceput sa
se impuna cu adevarat. !u cu mult timp in urma, browserul !avigator al firmei
!etscape era cel mai popular program de navigare, insa browser-ul Internet 3xplorer
de la 8icrosoft ocupa in momentul de fata mai mult de 'umatate din piata.
.rogramul de navigare aduce pagina ceruta, interpreteaza textul si comenzile de
formatare continute in text si afiseaza pagina, formatata corespunzator, pe ecran.
8a'oritatea paginilor de 23= incep cu titlu, contin informatii si se termina cu adresa
de posta electronica a celui care mentine pagina. 1irurile de caractere care reprezinta
legaturi la alte pagini se numesc #Iperlegaturi, sunt afisate in mod diferit, fiind
subliniate si/sau colorate cu o culoare speciala. .entru a selecta o legatura, utilizatorul
va plasa cursorul pe zona respectiva $utilizand mouse-ul sau sagetile de pe tastatura% si
comanda selectia $cu a'utorul mouse-ul sau apasand tasta 3!"3-%. (esi exista
programe de navigare fara interfata grafica, ca de exemplu lInx, ele nu sunt atat de
utilizate ca programele de navigare grafice.
"e#nologia folosita de 2orl 2ide 2eb este cea client7server, care presupune
urmatoarele etape,
4n calculator $clientul% formuleaza o cerere
Cererea clientului este expediata unui server
1erverul analizeaza aceasta cerere, o executa, formuleaza raspunsul si il
expediaza clientului
Clientul receptioneaza raspunsul la cererea solicitata
8odelul de comunicare intre serverul 23= si clientul care acceseaza informatia este
urmatorul $sa zicem ca aceseaza
#ttp,//www.w>.org/#Ipertext/222/"#e.ro'ect.#tml% ,
/ .rogramul de navigare determina 4-: $pe baza selectiei%
/ .rogramul de navigare intreaba (!1 care este adresa I. pentru masina care se
numeste www.w>.org.
/ (!1 raspunde cu 0H.)>.B.)>
0B
227448992.doc
/ .rogramul de navigare realizeaza conexiunea "C. cu portul HB al 0H.)>.B.)>
/ "rimite o comanda L3" /#Ipertext/222/"#e.ro'ect.#tml
/ 1erverul www.w>.org transmite fisierul G"#e.ro'ect.#tmlG
/ Conexiunea "C. este eliberata
/ .rogramul de navigare afiseaza formatat textul din G"#e.ro'ect.#tmlG
/ .rogramul de navigare aduce si afiseaza toate imaginile din G"#e.ro'ect.#tmlG
T!" si #$"
G:imba'ulG in care sunt descrise paginile 23= se numeste T!". 3l este
derivat din 1L8:, si este format din seturi de tag-uri inserate in text, care dau
directive asupra modului in care sa se formateze textul. In functie de posibilitatile #ard
ale sistemului pe care se vizualizeaza pagina, si de posibilitatile browserului, pagina
va fi afisata cu mai multe sau mai putine caracteristici de formatare $un browser in
mod text nu va putea folosi fonturi de marimi diferite%. "agurile sunt texte cuprinse
intre KMK si KNK. "extul va trebui sa nu contina aceste caractere, aparitia lor trebuind
inlocuita cu metacaractere inlocuitoare $GElt5G si GEgt5G% la randul lui, GEG trebuie si
el inlocuit cu metasecventa GEamp5G. 1i alte caractere se pot specifica prin
metasecvente $de exemplu caractere care nu sunt in setul standard &1CII%.
!umele tagurilor nu sunt Gcase sensitiveG, doar optiunile si argumentele pot face
distinctie in anumite cazuri intre literele mari si mici $de exemplu calea intr-un 4-:
care se gaseste in tagul MaN%
"extul este cuprins intre tagurile M#tmlN si M/#tmlN. 3l cuprinde o sectiune de
G#eadG si una de GbodIG. 1ectiunea de G#eadG contine informatii despre document care
nu se vor afisa in pagina $eventual se va afisa pe bara de titlu a ferestrei browserului%.
"extul din sectiunea de GbodIG contine descrierea paginii propriu zise. In cadrul
textului caracterul de sfarsit de linie este ignorat, la fel si taburile sau aparitile multiple
de spatii $se retine numai unul%.
#$" $4niform -esource :ocation% reprezinta o conventie de localizare a unei
resurse informationale. 3l cuprinde $de la dreapta la stanga% identificarea fisierului
referit pe masina pe care se afla, numele masinii pe care se gaseste si modul
$protocolul% de accesare a acesteia. (e exemplu in 4-:-ul, #ttp,//#ome.ro/pclaude din
exemplu protocolul este #ttp $acces prin portul HB prin protocolul C"".%, masina este
#ome.ro iar identificarea paginii este GpclaudeG - adica pagina personala a userului
pclaude. 1erverul C"". va rezolva acest identificator la calea interna
/#ome/pclaude/publicO#tml/index.#tml. 1e observa ca sarcina localizarii pe server este
sarcina serverului, care cunoaste propriul mod de identificare a resurselor sale publice.
!u toate fisierele de pe un server 23= pot fi accesate prin C"".. (e obicei
paginile publice se afla in directoare speciale, identificarea lor facandu-se cu calea
relativa la acel director. (aca nu se specifica decat calea relativa a unui director,
00
227448992.doc
serverul intoarce un fisier cu nume implicit $de obicei numit index.#tml%. 3xista si alte
conventii $de exemplu /Puser/ reprezinta directorul radacina al informatiilor publice
ale userului GuserG. 4-:-ul este un caz particular de mai putin cunoscutul 4-I
$4niforme -esource Identifier% care identifica unic pe Internet resursele care se pot
accesa prin diferite protocoale
.aginile 23= pot contine imagini $tagul MimgN%, tabele $tagul MtableN% , etc. In
sectiunea de G#eadG se pot specifica prin tagul GMmetaNG informatii despre autor, firma
de care apartine si c#iar informatii destinate motoarelor de cautare $descriere, cuvinte
c#eie, etc%.
Ser%er de Web
1erverul web este un calculator care gazduieste un site web si care e capabil sa
raspunda cererilor de pagini web din partea clientilor. .entru a realiza acest lucru,
server-ul trebuie sa ruleze o aplicatie speciala numita #ttpd $CIper"ext "ransfer
.rotocol (emon%. Ca servere 2eb, cele mai intalnite sunt, Apache Ser%er ,
8icrosoft 2eb 1erver , ;racle 2eb 1erver
In momentul de fata se folosesc foarte multe tipuri de calculatoare si sisteme de
operare, ma'oritatea oferind software server 2eb de buna calitate. Cele mai cunoscute
sisteme de operare pentru calculatoare ce deservesc pagini 2eb sunt 4!I9 si
8icrosoft 2indows !"/)BBB.
4nix este folosit de la crearea 2eb-ului si ma'oritatea serverelor 2eb ruleaza in
continuare acest sistem. 2indows !" /)BBB este mai nou in domeniu, dar si-a castigat
rapid popularitatea. (in punctul de vedere al designer-ului 2eb, server-ul utilizat
pentru livrarea unei pagini este in general irelevant, cu anumite exceptii,
Q 4!I9 este dependent de tipul de litera folosit $litera mica sau ma'uscula%, in timp
ce 2indows !" nu
Q 4!I9 este folosit de mai mult timp si este relativ stabil. 2indows !" sufera
actualizari ma'ore si de aceea poate avea probleme in acest sens
Q 3xista foarte multe companii care au baze de date 8icrosoft &ccess pe care vor sa
le integreze in site-ul lor, acest lucru putandu-se face numai in mediul 2indows !"
Q 6urnizorii de servicii Internet $Internet 1ervice .rovider - I1.% percep in general
taxe mai reduse pentru servere bazate pe 4!I9, pentru ca intretinerea sistemului este
mai putin costisitoare dacat 2indows !".
Intre calculatoarele interconectate informatia circula in pac#ete. .ac#etele contin
adresa expeditorului si cea a destinatarului, informatia, numele aplicatiei client care a
formulat cererea si numele aplicatiei de pe server care va primi cererea. &ceste
pac#ete sunt sunt diri'ate pentru a a'unge la destinatie prin anumite mi'loace de
diri'are precum Internet .rotocol $I.%. -eteaua Internet dispune de asemenea si de
0)
227448992.doc
mi'loace de corectie a erorilor de transmitere a pac#etelor. 4n astfel de mi'loc este
"ransfer Control .rotocol $"C.% - .rotocolul de Control al "ransferului.
1ite-urile 2eb reprezinta o serie de pagini 2eb care sunt interconectate. 1ite-urile pot
contine legaturi catre alte site-uri, lucru care duce la obtinerea unor panze de
informatii. .rimul document dintr-un site se numeste Come .age $pagina de pornire%.
3a contine legaturi catre toate celelalte documente.
1ite-urile 2eb sunt publicate prin transferul fisierelor C"8: si al fisierelor
multimedia asociate pe servere 2eb. .rotocolul de transfer al fiserelor $6".% este un
standard care permite mutarea, redenumirea sau stergerea fisierelor de pe un calculator
la distanta.
1.2 Serverul de Web Apache
Istoric si caracteristici

4nul dintre cele mai utilizate servere de web, &pac#e 2eb 1erver este un efort
de a oferi o alternativa viabila necomerciala, n domeniul serverelor de web. -eusita
acestui proiect este n mare masura legata de fenomenele initiate prin oameni ca :inus
sau 1talman, ce au avut ca rezultat produse extraordinare, puternice si eficiente cum ar
fi :inux, 3macs precum si toate pac#etele software aparute sub licenta L!4.
Crearea unui proiect de sine statator - "#e &pac#e .ro'ect este rezultatul reunirii unui
mare numar de voluntari, comunicnd prin intermediul Internet-ului. &cestia sunt
cunoscuti sub numele de &pac#e Lroup. n plus, sute de utilizatori din ntreaga lume
au contribuit la proiect prin cele mai diverse mi'loace, de la cod sursa pna la
documentatie C"8:.
&pac#e isi are originea din ideile si codul aflat in cel mai popular server C"". al
timpului !C1& . n 0JJ* cel mai performant server de web era practic cel dezvoltat
la !C1& , 4niversitI of Illinois, de catre -ob 8cCool. n momentul n care acesta a
plecat si nu a mai continuat dezvoltarea serverului sau, au nceput sa apara o multime
de programatori ce produceau versiuni modificate si mbunatatite ale acestui server.
4n grup de asemenea programatori au decis n februarie 0JJ* sa se reuneasca ntr-un
proiect de dezvoltare si mbunatatire a serverului initial. .ornind de la !C1& #ttpd 0.>
ei au construit, prin adaugarea celor mai bune patc#-uri, versiunea &pac#e B.D.) care
a fost lansata n aprilie 0JJ*.
(esi !C1& si-a renceput dezvoltarea serverului n aceeasi perioada, &pac#e a
continuat sa devina cel mai utilizat server de web din comunitatea unix n urmatorii
doi ani. &cesta a fost implicat mai departe in cele mai multe sisteme 4!I9 care
contin servere C""..
0>
227448992.doc
(esignul unei noi ar#itecturi si rescrierea serverului ntr-o maniera extrem de
modulara si eficienta a dus la o popularitate crescnda serverului. &pac#e este, din
ianuarie 0JJF, cel mai utilizat server 222 de Internet. (easemenea &pac#e a aratat
a fi cel mai rapid dintre serverele de tip free.
1erverul ofera desigur ma'oritatea facilitatilor gasite n cazul oricarui server de web
modern. ; ndelungata perioada de timp acesta c#iar a stabilit standardele n domeniu.
&stfel, din punct de vedere al securitatii gasim suport 11:, protectie de tip
username/password asupra directoarelor, C"".1 etc.
1erver-side includes a fost o inovatie a &pac#e Lroup. 1uportul modular de
adaugire a unor noi facilitati la server, content #andlers, persistent connections, online
statistics $incluznd aici c#iar si broadcastingul de informatie de logging% etc, toate
acestea sunt elemente n care &pac#e a adus elemente mai mult sau mai putin noi.
Detalii de instalare si configurare
n prezent serverul se prezinta sub forma unui pac#et software de tip tar-gzip
$exista si o versiune pentru 2indows !" % ce contine sursele complete precum si un
set de documentatie pentru server. Compilarea serverului este extrem de facila si nu s-
a ntlnit nici o platforma uzuala care sa aiba vreo problema la compilare. .
-ezultatul compilarii va fi n principal un fisier binar executabil numit n
principal #ttpd, localizat n directorul src/. 1e recomanda copierea acestui binar ntr-un
loc mai sigur, eventual crearea unui director bin/ $de exemplu% si copierea n acel
director. n unele versiuni mai vec#i, calea $pat#-ul% catre locul unde este instalat
serverul va trebui inserata n unele fisiere sursa, nainte de compilare. (eoarece acest
fapt nu mai este de actualitate nu l vom comenta nsa se recomanda instalarea
serverului la o locatie destul de comuna ,de exemplu, in /usr/local/#ttp, /usr/#ttp sau
c#iar /etc/#ttp/. !4 instalati serverul $fisierul binar% n sistemul de fisiere principal.
$/usr/bin, /bin, etc.%
(upa instalarea binarului $vom presupune /usr/#ttp ca director principal de
instalare si /usr/#ttp/bin directorul n care se gaseste fisierul binar executabil #ttpd% va
trebui configurat serverul prin modificarea unor fisiere de configurare. &cestea se
gasesc n acest caz n /usr/#ttp/conf. 3le sunt #ttpd.conf, access.conf, srm.conf.
6iecare dintre ele stabilesc parametri diferiti pentru serverul de web. 1e recomanda
citirea documentatiei de configurare. !u trebuie modificate direct fisierele de
configurare existente n acel director. (e obicei numele acestora are o extensie R-distK.
$3x. #ttpd.conf-dist% . 1e copie acestea n fisiere cu nume fara extensia respectiva $3x.
cp #ttpd.conf-dist #ttpd.conf% si abia apoi se va modifica fisierul copie.
Configurarea serverului n cazul cel mai simplu impune doar modificarea, n
#ttpd.conf, a numelui serverului precum si, n toate fisierele, a cailor $pat#% ce
definesc locul de instalare a serverului precum si a documentelor #tml.
0?
227448992.doc
(upa configurarea serverului se impune pornirea acestuia. 3xisa doua moduri de
rulare a serverului. 8odul implicit si cel mai utilizat de rulare este modul daemon. n
mod daemon acesta este pornit si ruleaza n bacground, activndu-se de la sine de
mai multe ori, asigurnd astfel un bun timp de raspuns la cereri C"".. &l doilea mod
ar fi rularea serverului prin intermediul daemonului inetd. n acest caz, inetd are gri'a
de interceptarea unei cereri C"". si pornirea unei copii a unui server de web pentru
tratarea acelei cereri. !u se recomanda acest mod de rulare dect n cazuri speciale.
.ornirea serverului $modul daemon% se rezuma la executarea binarului cu
parametrii adecvati $n principal stabilirea caii fisierului primar de configurare
#ttpd.conf% dupa care acesta va raporta orice erori sau probleme precum si accesele de
web n cazul rularii, prin intermediul unor fisiere de log localizate n directorul logs/.
In cazul unor erori sau porniri defectuoase se recomanda analizarea fisierului error-
log din logs/.
(upa ce ati pornit serverul exista posibilitatea accesarii unei documentatii
complete c#iar prin serverul proaspat instalat.
1.3 Limbajul PHP H!per"e#" Prepr$ce%%$r&
1.&.1. Introducere
Scurt istoric
PHP a fost conceput n anul 0JJ? de Rasmus Lerdorf. 3l folosea versiuni
personale de PHP ca sS monitorizeze cine i vizita pagina sa personalS.
.rima versiune de .C. care putea fi folositS de toatS lumea a fost disponibilS n
anul 0JJ* Ti a fost cunoscutS sub numele de Personal Home Page Tools. &ceasta
consta dintr-un parser foarte simplu care recunoTtea cteva macro-uri Ti un numSr
limitat de utilitSUi care erau folosite pe paginile personale la acea vreme $cum ar fi
guestbook, counter%.
.arserul de PHP a fost rescris la 'umStatea anului 0JJ* Ti s-a numit PHP/FI
ersion 2. FI vine Form Inter!reter, un alt pac#et pe care Rasmus l-a scris pentru
interpretarea formelor HT"L. 3l a combinat scripturile din Personal Home Page
Tools cu Form Inter!retor Ti a adSugat suport pentru m#$L Ti astfel a apSrut PHP/FI.
PHP/FI s-a rSspndit foarte repede Ti a devenit foarte popular, deoarece mulUi
programatori au contribuit cu cod la perfecUionarea lui.
1unt greu de dat niTte statistici exacte, dar se estimeazS cS la sfrTitul anului
0JJD PHP/FI era folosit de aproximativ 0*.BBB de site-uri web din toatS lumea. .e la
mi'locul anului 0JJF numSrul acestora a crescut la *B.BBB.
0*
227448992.doc
"ot n anul 0JJF s-a observat o sc#imbare n dezvoltarea PHP%ului.
.C. nu mai era proiectul propriu al lui Rasmus, ci era rezultatul eforturilor unei
ec#ipe de programatori, deoarece la perfecUionarea lui contribuiserS mulUi
programatori.
.arserul a fost rescris de &ee' #urask( Ti )ndi *utmans Ti noul parser a format
bazele PHP ersion 3. 8are parte din codul PHP/FI a fost portat n PHP3 Ti altS
parte de cod a fost complet rescrisS.
4ltima versiune, PHP+, foloseTte motorul de script &end ca sS ofere
performanUe mai mari, suportS mult mai multe biblioteci Ti extensii, Ti ruleazS ca un
modul natural server-ului de web.
Ce este ''(
PHP $oficial VPHP, H(!erte-t Pre!rocesorW% este un limba' de script C"8:
integrat de tip server-side, deci codul se executS pe server.
3ste diferit de scripturile CLI scrise n alte limba'e ca .erl sau C<<, n care se
scrie mult cod pentru a genera C"8:, deoarece se scrie script C"8: cu cod de PHP
ncorporat. Codul PHP este ncadrat de tag-uri speciale care ne permit sS intrSm sau sS
ieTim din modul PHP.
Ce face ''(
:a o privire de ansamblu, PHP poate sS facS tot ceea ce face alt programe CLI,
cum ar fi, culegerea de date, generare dinamicS de cuprinsuri pentru pagini, trimite Ti
primeTte cooie-uri.
.robabil cea mai puternicS Ti cea mai importantS caracteristicS a PHP este
suportul pentru o gamS ct mai largS de baze de date . Cu PHP este foarte simplu
de citit din baze de date Ti de scris n baze de date.
PHP suportS urmStoarele tipuri de baze de date, )dabas., d/ase, 0m!ress,
FilePro, H(!er1a'e, I/" ./2, Informi-, Ingres, Inter/ase, Frontbase, m#$l, .irect
"#%#$L, "(#$L, 2./3, 2racle, 2'rimos, Postgre#$L, #olid, #(sbase, elocis,
45I6 dbm.
PHP prezintS suport, de asemenea, Ti pentru alte servicii de reUea folosind
protocoale cum ar fi, I")P, #5"P, 55TP, P2P3, HTTP Ti altele mai puUin
importante. 1e pot desc#ide noduri brute de comunicaUie n reUea care interacUioneazS
folosind alte protocoale de comunicaUie.

0D
227448992.doc
1.&.). $eferin*e
Sinta+a limba,ului
Cnd .C. ncepe sS interpreteze un fiTier, el doar o sS afiTeze textul pe care l
ntlneTte. &Ta cS dacS avem un fiTier cu extensie .#tml Ti sc#imbSm extensia n .p#p
fiTierul o sS fie corect interpretat n continuare.
(acS dorim sS introducem declaraUii .C. la un anumit punct din fiTier, trebuie
sS indicSm intrarea n Vmodul .C.W. &ceasta se face prin mai multe metode,
1. <? echo ("this is the simplest, an SGML processing instruction\n"); ?>
<? e!pression ?> "his is a shortcut #or "<? echo e!pression ?>"

$. <?php echo("i# %ou &ant to ser'e ()"ML or (ML *ocuments, *o li+e this\n"); ?>
,. <script language"php">
echo ("some e*itors (li+e -ront.age) *on/t
li+e processing instructions");
<0script>
1. <2 echo ("3ou ma% optionall% use 4S.5st%le tags"); 2>
<2 6'aria7le; 8 "his is a shortcut #or "<2echo .." 2>

.C. permite Ti folosirea unor structuri mai avansate,
<?php
i# ( 7oolean5e!pression )
9
?>
<strong>"his is true.<0strong>
<?php
:
else
9
?>
<strong>"his is #alse.<0strong>
<?php
:

1epararea instrucUiunilor se face la fel ca n .erl sau n C, terminnd fiecare
declaraUie cu caracterul 5.
"ag-ul de nc#idere implicS de asemenea sfrTitul unei declaraUii, deci
urmStoarele douS expresii sunt ec#ivalente,
1. <?php echo ""his is a test"; ?>
$. <?php echo ""his is a test" ?>
Comentariile sunt la fel ca n C Ti ca n 4!I9, folosind secvenUele speciale // ...
sau /X ..... X/.
0F
227448992.doc
Tipuri
.C. suportS H tipuri de bazS,
Patru ti!uri scalare,
boolean
integer
floating-point number
string
.ou7 ti!uri com!use,
arraI
ob'ect
.ou7 ti!uri s!eciale,
resource
null
Ti!ul boolean. 3ste cel mai simplu tip variabilS. ; expresie booleanS exprimS o
valoare de adevSr. .oate fi adevSratS sau falsS. .entru a specifica valoare unei
variabile booleene se foloseTte "-43 sau 6&:13.
-ot., "ipul boolean a fost introdus n .C.?.
E#emplu, Yfoo Z "rue5 // atribuie valoarea "-43 variabilei Yfoo
Ti!ul integer. ; variabilS de tip integer este un numSr ntreg cu semn.
Aariabilele de tip ntreg pot fi specificate n zecimal, n #exazecimal sau n octal,
opUional putnd fi precedate de semn $< sau -%. (acS se foloseTte notaUia n octal
numSrul trebuie precedat de B, iar dacS se foloseTte notaUia n #exazecimal numSrul
trebuie precedat de Bx.
E#emple'
6a 1$,1; 8 num;r <ecimal
6a 51$,; 8 num;r negati'
6a =1$,; 8 num;r octal (echi'alentul lui >, <ecimal)
6a =!14; 8 num;r he!a<ecimal (echi'alentul lui $? <ecimal)
Ti!ul floating%!oint number. !umerele de tip floatin-point pot fi specificate n
felul urmStor,
6a 1.$,1; 6a 1.$e,; 6a @A51=;
0H
227448992.doc
Ti!ul string. [irurile de caractere pot fi specificate folosind unul sau douS seturi
de caractere speciale.
(acS Tirul este nc#is ntre g#ilimele $VW%, atunci variabilele vor fi expandate.
Ca Ti n C Ti .erl caracterul bacslas# $V\W% poate fi folosit pentru a specifica caractere
speciale. Aariabilele de acest tip pot fi convertite.
&l doilea mod de reprezentare a Tirurilor este prin nc#iderea lui ntre
apostrofuri $V]W%. Cnd Tirul este reprezentat n acest fel singurele secvenUe speciale
care pot fi interpretate sunt V\\W Ti V\]W. Aariabilele nu sunt expandate cnd Tirurile sunt
reprezentate n acest mod.
&lt mod reprezentare este folosind sintaxa #ere doc $VMMMMW%. &ceasta trebuie
sS fie precedat de un identificator nainte de MMMM, dupS aceea Tirul de caractere Ti la
sfrTit identificatorul.
E#emplu'
<?php
6str <<<ABC
A!ample o# string
spanning multiple lines
using here*oc s%nta!.
ABC;
0D More comple! e!ample, &ith 'aria7les. D0
class #oo 9
'ar 6#oo;
'ar 67ar;
#unction #oo() 9
6this5>#oo /-oo/;
6this5>7ar arra%(/Ear1/, /Ear$/, /Ear,/);
:
:
6#oo ne& #oo();
6name /M%Fame/;
echo <<<AB"
M% name is "6name". G am printing some 6#oo5>#oo.
Fo&, G am printing some 96#oo5>7arH1I:.
"his shoul* print a capital /4/J \!11
AB";
?>
[irurile de caractere pot fi concatenate folosind caracterul V.W.
E#emple'
<?php
0D 4ssigning a string. D0
6str ""his is a string";
0D 4ppen*ing to it. D0
6str 6str . " &ith some more te!t";
0D 4nother &a% to appen*, inclu*es an escape* ne&line. D0
0J
227448992.doc
6str . " an* a ne&line at the en*.\n";
0D "his string &ill en* up 7eing /<p>Fum7erJ K<0p>/ D0
6num K;
6str "<p>Fum7erJ 6num<0p>";
0D "his one &ill 7e /<p>Fum7erJ 6num<0p>/ D0
6num K;
6str /<p>Fum7erJ 6num<0p>/;
0D Get the #irst character o# a string D0
6str /"his is a test./;
6#irst 6strH=I;
0D Get the last character o# a string. D0
6str /"his is still a test./;
6last 6strHstrlen(6str)51I;
?>

Ti!ul arra(. "ipul arraI n .C. este de fapt o #artS ordonatS. ; #artS este un tip
care atribuie valori la index. &cest tip este optimizat pentru mai multe reprezentSri,
astfel ca poate fi un vector, o listS, o colecUie, un dicUionar, o stivS, o coadS sau
altceva.
4n index poate fi o variabilS integer nenegativS sau string.
arra%( Hkey >I value
, ...
)
00 key este un integer nenegati' sau un string
00 value poate #i orice
; varibilS de tip arraI se poate modifica specificnd explicit valorile.
6arrHkeyI value;
6arrHI value;
Ti!ul ob8ect. .entru a iniUializa un obiect, se foloseTte declaraUia new pentru a
atribui o instanUS a obiectului unei variabile.
3xemplu,
<?php
class #oo 9
#unction *oL#oo() 9
echo "Coing #oo.";
:
:
67ar ne& #oo;
)B
227448992.doc
67ar5>*oL#oo();
?>

Ti!ul resource. "ipul resource este o variabilS specialS, folositS pentru a referi o
altS variabilS resource externS. Aariabilele resource sunt create cu funcUii speciale.
-ot., "ipul resource a fost introdus n .C.?.
(atoritS sistemului de numSrare a referinUelor introdus de .C.? cu motorul
^end, se detecteazS automat cnd o resursS nu mai este folositS.
Ti!ul 5ull . Aaloarea specialS !ull reprezintS o variabilS care nu are nici o
valoare.
-ot., "ipul resource a fost introdus n .C.?.
E#emplu'
6'ar Full;

/ariabile
Aariabilele n .C. sunt reprezentate prin semnul Y urmat de numele variabilei.
!umele variabilelor respectS aceleaTi reguli ca Ti alte etic#ete n .C.. 4n nume valid
de variabilS ncepe cu o literS sau cu O, urmatS de un numSr oarecare de litere, cifre
sau O.
Aariabilelor li se pot atribui valori explicit.
E#emplu'
<?php
6#oo /Eo7/; 00 4ssign the 'alue /Eo7/ to 6#oo
67ar M6#oo; 00 Ne#erence 6#oo 'ia 67ar.
67ar "M% name is 67ar"; 00 4lter 67ar...
echo 6#oo; 00 6#oo is altere* too.
echo 67ar;
?>

ariabile !redefinite. .C. furnizeazS un numSr mare de variabile predefinite
oricSrui script care ruleazS la un moment dat. 8ulte din aceste variabile nu pot fi total
documentate deoarece depind de server-ul web pe care ruleazS, de versiunea Ti
configurSrile server-ului si de alUi factori.
)0
227448992.doc
.entru a putea vedea variabilele predefinite Ti alte informaUii utile se poate
folosi funcUia p#pinfo$%.
Aariabilele predefinite pot fi variabile specifice server-ului &pac#e, variabile de
mediu sau variabile .C..
ariabilele s!ecifice ser'er%ului )!ac9e sunt,
6G4"AO43LGF"AN-4PA
6SANQANLF4MA
6SANQANLSB-"O4NA
6SANQANL.NB"BPBL
6NARSAS"LMA")BC
6RSAN3LS"NGFG
6CBPSMAF"LNBB"
6)"".L4PPA."
6)"".L4PPA."LP)4NSA"
6)"".L4PPA."LAFPBCGFG
6)"".L4PPA."LL4FGS4GA
6)"".LPBFFAP"GBF
6)"".L)BS"
6)"".LNA-ANAN
6)"".LSSANL4GAF"
6NAMB"AL4CCN
6NAMB"AL.BN"
6SPNG."L-GLAF4MA
6SANQANL4CMGF
6SANQANL.BN"
6SANQANLSGGF4"SNA
6.4")L"N4FSL4"AC
6SPNG."LF4MA
6NARSAS"LSNG
Aariabilele de mediu sunt importate n namespace-ul global al .C. din mediul
n care ruleazS parserul de .C.. 8ulte din aceste variabile sunt furnizate de s#ell-ul
sistemului unde ruleazS .C..
Aariabilele .C. sunt create c#iar de .C.. Aariabilele YC"".OXOA&-1 sunt
disponibile doar dacS este activatS opUiunea tracOvars n fiTierul de configurare al
.C..
n continuare vom prezenta lista variabilelor .C.,
Yargv
Yargc
Y.C.O13:6
))
227448992.doc
YC"".OC;;_I3OA&-1
YC"".OL3"OA&-1
YC"".O.;1"OA&-1
YC"".O.;1"O6I:31
YC"".O3!AOA&-1
YC"".O13-A3-OA&-1
ariabile 'ariabile. .utem avea nume de variabile variabile, adicS un nume de
variabilS care poate fi setat Ti folosit dinamic. ; variabilS variabilS poate lua valoarea
unei variabile Ti trateazS aceastS valoare ca fiind numele variabilei.
ariabile din afara PHP . &ceste variabile pot proveni din forme C"8:
$metodele L3" Ti .;1"%, variabile I8&L3 14=8I", cooie-uri C"". sau variabile
de mediu.
Constante
.C. defineTte mai multe constante Ti furnizeazS mecanisme pentru a defini mai
multe n timpul execuUiei.
Constantele se aseamSnS cu variabilele, cu excepUia a douS fapte Ti anume,
constantele trebuie definite folosind funcUia define$% Ti valoarea lor nu mai poate fi
modificatS.
Constantele definite de .C. sunt,
LL-GLALL
LLLGFALL
.).LQANSGBF
.).LBS
ALANNBN
ALO4NFGFG
AL.4NSA
ALFB"GPA
AL4LL
E#emple'
1.
<?php
*e#ine("PBFS"4F"", ")ello &orl*.");
echo PBFS"4F"; 00 outputs ")ello &orl*."
)>
227448992.doc
?>

$.
<?php
#unction reportLerror(6#ile, 6line, 6message) 9
echo "4n error occure* in 6#ile on line 6lineJ 6message.";
:
reportLerror(LL-GLALL,LLLGFALL, "Something &ent &rongT");
?>

0+presii
3xpresiile sunt cele mai importante construcUii ale .C.. n .C., aproape orice
scrii este o expresie. 8odul cel mai simplu Ti cel mai corect de a defini o expresie este
Vtot ceea ce are o valoareW.
Cele mai primitive forme de expresii sunt variabilele Ti constantele. 3xemple
mai complexe de expresii sunt funcUiile.
1peratori
n .C. avem urmStoarele tipuri de operatori,
o!eratori aritmetici
o!eratori de atribuire
o!eratori unari
o!eratori de com!ara:ie
o!eratori !entru controlul erorilor
o!eratori de e-ecu:ie
o!eratori !entru incrementare/decrementare
o!eratori logici
o!eratori string
Structuri de control
"oate scripturile .C. sunt compuse dintr-o serie de declaraUii. ; declaraUie
poate fi o atribuire, apelul unei funcUii, un ciclu, o declaraUie condiUionalS c#iar dacS
declaraUia nu face nimic. (eclaraUiile se terminS de obicei cu 5. n plus, declaraUiile pot
)?
227448992.doc
fi grupate n grupuri de declaraUii fiind ncadrate ntre acolade. 4n grup de declaraUii
este la rndul lui o declaraUie. (iferitele tipuri de declaraUii sunt urmStoarele,
if
else
elseif
;9ile
do ... ;9ile
for
foreac9
break
continue
s;itc9
declare
re<uire=>
include=>
re<uire?once=>
include?once=>
E#emple'
1. Exemplu if
i# (6a > 67) 9
print "a is 7igger than 7";
67 6a;
:

2. Exemplu else
i# (6a > 67) 9
print "a is 7igger than 7";
: else 9
print "a is FB" 7igger than 7";
:

3. Exemplu elseif
i# (6a > 67) 9
print "a is 7igger than 7";
: elsei# (6a 67) 9
print "a is eUual to 7";
: else 9
print "a is smaller than 7";
:
4. Exemplu while 1
6i 1;
&hile (6i < 1=) 9
print 6iVV; 0D the printe* 'alue &oul* 7e
6i 7e#ore the increment
(post5increment) D0
:
)*
227448992.doc
5. Exemplu while 2
6i 1;
&hile (6i < 1=)J
print 6i;
6iVV;
en*&hile;

6. Exemplu do ... while
*o 9
i# (6i < W) 9
print "i is not 7ig enough";
7rea+;
:
6i D 6#actor;
i# (6i < 6minimumLlimit) 9
7rea+;
:
print "i is o+";
...process i...
: &hile(=);
7. Exemplu for
6i 1;
#or (;;)
9
i# (6i > 1=) 9
7rea+;
:
print 6i;
6iVV;
:
8. Exemplu foreach
reset (6arr);
&hile (list(, 6'alue) each (6arr)) 9
echo "QalueJ 6'alue<7r>\n";
:
#oreach (6arr as 6'alue) 9
echo "QalueJ 6'alue<7r>\n";
:
9. Exemplu break
6arr arra% (/one/, /t&o/, /three/, /#our/, /stop/, /#i'e/);
&hile (list (, 6'al) each (6arr)) 9
i# (6'al /stop/) 9
7rea+; 0D 3ou coul* also &rite /7rea+ 1;/ here. D0
:
echo "6'al<7r>\n";
:
6i =;
)D
227448992.doc
&hile (VV6i) 9
s&itch (6i) 9
case WJ
echo "4t W<7r>\n";
7rea+ 1; 0D A!it onl% the s&itch. D0
case 1=J
echo "4t 1=; Uuitting<7r>\n";
7rea+ $; 0D A!it the s&itch an* the &hile. D0
*e#aultJ
7rea+;
:
:

10. Exemplu co!iue
&hile (list (6+e%, 6'alue) each (6arr)) 9
i# (T(6+e% 2 $)) 9 00 s+ip o** mem7ers
continue;
:
*oLsomethingLo** (6'alue);
:
6i =;
&hile (6iVV < W) 9
echo "Buter<7r>\n";
&hile (1) 9
echo " Mi**le<7r>\n";
&hile (1) 9
echo " Gnner<7r>\n";
continue ,;
:
echo ""his ne'er gets output.<7r>\n";
:
echo "Feither *oes this.<7r>\n";
:

11. Exemplu swi!ch
i# (6i =) 9
print "i eUuals =";
:
i# (6i 1) 9
print "i eUuals 1";
:
i# (6i $) 9
print "i eUuals $";
:

s&itch (6i) 9
case =J
print "i eUuals =";
7rea+;
case 1J
print "i eUuals 1";
7rea+;
case $J
print "i eUuals $";
7rea+;
:
)F
227448992.doc

12. Exemplu declare
#unction tic+()
9
static 6i;
print#("Htic+ i2*I\n", VV6i);
:
registerLtic+L#unction("tic+");
*eclare (tic+s $) 9
1; $; ,;
:
13. Exemplu re"uire#$
reUuire ("httpJ00someser'er0#ile.php?'arone1M'art&o$");
6'arone 1;
6'art&o $;
reUuire ("#ile.t!t"); 0D Oor+s. D0
reUuire ("#ile.php"); 0D Oor+s. D0
14. Exemplu iclude#$
6#iles arra% (/#irst.inc/, /secon*.inc/, /thir*.inc/);
#or (6i =; 6i < count(6#iles); 6iVV) 9
inclu*e 6#ilesH6iI;
:

2unc*ii
; funcUie poate fi declaratS folosind urmStoarea sintaxS,
#unction #oo (6argL1, 6argL$, ..., 6argLn) 9
echo "A!ample #unction.\n";
return 6ret'al;
:

;rice cod valid de .C. poate sS apare n interiorul declaraUiei unei funcUii, c#iar
dacS reprezintS declaraUia altei funcUii sau clase.
-ot.3 n .C.>, funcUiile trebuie declarate nainte de a fi apelate. n .C.? nu
existS asemenea restricUii.
-ot.3 .C.> nu suportS funcUii cu numSr variabil de argumente, dect
argumentele cu care a fost declaratS. .C.? acceptS ambele tipuri de funcUii.
InformaUiile sunt transmise funcUiilor printr-o listS de argumente, care sunt
variabile sau constante separate prin virgulS.
.C. suportS transmiterea argumentelor unei funcUii prin valoare, prin referinUS
sau prin valori predefinite ale argumentelor.
)H
227448992.doc
.rin definiUie, argumentele funcUiilor sunt transmise prin valoare. (acS dorim sS
transmitem argumentele unei funcUii prin referinUS trebuie ca numele argumentului sS
fie precedat de E.
(acS argumentul este transmis prin valoarea, modificarea valorii sale n corpul
funcUiei nu afecteazS valoarea argumentului n afara funcUiei. (acS dorim sS
modificSm valoarea unui argument trebuie sS-l transmitem prin referinUS.
E#emple'
1. %rasmi!erea ar&ume!ului pri referi'(
#unction a**LsomeLe!tra(M6string) 9
6string . /an* something e!tra./;
:
6str /"his is a string, /;
a**LsomeLe!tra(6str);
echo 6str; 00 outputs /"his is a string, an* something e!tra./
2. %rasmi!erea ar&ume!elor pri )aloare *i apoi pri referi'(
#unction #oo (67ar) 9
67ar . / an* something e!tra./;
:
6str /"his is a string, /;
#oo (6str);
echo 6str; 00 outputs /"his is a string, /
#oo (M6str);
echo 6str; 00 outputs /"his is a string, an* something e!tra./
3. %rasmi!erea ar&ume!elor pri )alori predefii!e
#unction ma+eco##ee (6t%pe "cappucino") 9
return "Ma+ing a cup o# 6t%pe.\n";
:
echo ma+eco##ee ();
echo ma+eco##ee ("espresso");

6uncUiile ntorc valori dacS se foloseTte declaraUia opUionalS return.
Exemplu:
#unction sUuare (6num) 9
return 6num D 6num;
:
echo sUuare (1); 00 outputs /1?/.

Clase 4i obiecte
; clasS este o colecUie de variabile Ti funcUii care lucreazS cu aceste variabile.
(eclararea unei clase se poate face n felul urmStor,
<?php
class Part 9
'ar 6items; 00 Gtems in our shopping cart
)J
227448992.doc

00 4** 6num articles o# 6artnr to the cart

#unction a**Litem (6artnr, 6num) 9
6this5>itemsH6artnrI V 6num;
:

00 "a+e 6num articles o# 6artnr out o# the cart

#unction remo'eLitem (6artnr, 6num) 9
i# (6this5>itemsH6artnrI > 6num) 9
6this5>itemsH6artnrI 5 6num;
return true;
: else 9
return #alse;
:
:
:
?>

&desea avem nevoie de clase cu variabile Ti funcUii similare cu ale altei clase
de'a existente. n fond, este o idee bunS sS avem o clasS genericS pe care sS o folosim
n toate proiectele Ti sS o adaptSm specificaUiilor proiectului. Ca sS putem face acest
lucru, clasele trebuie sS fie extinse din alte clase. &cesta este conceptul de moTtenire
ntlnit n Programarea 2rientat7 !e 2biecte. Clasa extinsS sau derivatS are toate
variabilele Ti funcUiile clasei de bazS Ti funcUiile pe care le adSugSm n noua definiUie.
; clasS extinsS este totdeauna dependentS de o singurS clasS de bazS, ceea ce
nseamnS cS nu putem avea moTtenire multiplS. n .C. pentru derivarea claselor se
foloseTte cuvntul c#eie e-tends.
E#emplu'
class Fame*LPart e!ten*s Part 9
'ar 6o&ner;

#unction setLo&ner (6name) 9
6this5>o&ner 6name;
:
:

6ncart ne& Fame*LPart; 00 Preate a name* cart
6ncart5>setLo&ner ("+ris"); 00 Fame that cart
print 6ncart5>o&ner; 00 print the cart o&ners name
6ncart5>a**Litem ("1=", 1); 00 (inherite* #unctionalit% #rom cart)
Constructorii sunt funcUii din clasS care sunt apelaUi automat cnd creSm o nouS
instanUS a clasei cu funcUia ne;. ; funcUie devine constructor n momentul n care
acelaTi nume ca Ti clasa.
Exemplu:
00 Oor+s in .). , an* .). 1.
class 4utoLPart e!ten*s Part 9
#unction 4utoLPart () 9
6this5>a**Litem ("1=", 1);
:
>B
227448992.doc
:

.entru a putea referi variabile Ti funcUii din clasa de bazS trebuie folosit
cuvntul c#eie !arent, care se referS la numele clasei de bazS, acelaTi ca cel dat n
declaraUia e-tends a clasei folosite.
Exemplu:
class 4 9
#unction e!ample() 9
echo "G am 4JJe!ample() an* pro'i*e 7asic #unctionalit%.<7r>\n";
:
:
class E e!ten*s 4 9
#unction e!ample() 9
echo "G am EJJe!ample an* pro'i*e a**itional #unctionalit%().<7r>\n";
parentJJe!ample();
:
:
67 ne& E;
00 "his &ill call EJJe!ample(), &hich &ill in turn call 4JJe!ample().
675>e!ample();

.C. permite Ti serializarea obiectelor n sesiuni prin funcUiile seriali@e=> Ti
unseriali@e=>.
1.3.3. 2unc*ii -etwor5
(%$c)$pe* 7 desc#ide un soclu pentru conexiune Internet sau 4nix
+e"h$%"b!*ame 7 ntoarce adresa I. a unui #ost dupS nume
+e"h$%"b!addr 7 ntoarce numele unui #ost dupS adresa I.
+e"pr$"$b!*ame 7 ntoarce numSrul protocolului asociat cu un nume
+e"pr$"$b!*umber 7 ntoarce numele protocolului asociat cu un numSr
+e"%ervb!*ame 7 ntoarce numSrul portului asociat cu un anumit serviciu Ti
protocol
+e"%ervb!p$r" 7 ntoarce serviciul asociat unui port Ti protocol
%$c)e",+e",%"a"u% 7 ntoarce informaUii despre soclul curent
%$c)e",%e",bl$c)i*+ 7 bloc#eazS/debloc#eazS un soclu
%$c)e",%e","ime$u" 7 stabileTte timpul de expirare a soclului
1.&.6. 2unc*ii TT'
>0
227448992.doc
header 7 trimite un #eader C"".
header%,%e*" 7 ntoarce valoarea "-43 dacS #eaderele au fost trimise
%e"c$$)ie 7 trimite cooie
1.&.7. 2unc*ii String
ech$ 7 afiTeazS unul sau mai multe Tiruri de caractere
md- 7 calculeazS o parolS dupS algoritmul md* pentru un Tir de caractere
1.&.8. 2unc*ii /ariable
emp"! 7 verificS dacS o variabilS este setatS
+e""!pe 7 ntoarce tipul unei variabile
i*"val 7 ntoarce valoarea ntreagS a unei variabile
i%,arra! 7 verificS dacS o variabilS este de tip arraI
i%,b$$l 7 verificS dacS o variabilS este booleanS
i%,d$uble 7 verificS dacS o variabilS este de tip double
i%,i*" 7 verificS dacS o variabilS este de tip ntreg
i%,*ull 7 verificS dacS o variabilS este de tip null
i%,*umeric 7 verificS dacS o variabilS este numericS
i%,$bjec" 7 verificS dacS o variabilS este de tip obiect
i%,re%$urce 7 verificS dacS o variabilS de tip resource
i%,%calar 7 verificS dacS o variabilS scalarS
i%,%"ri*+ 7 verificS dacS o variabilS este de tip string
i%%e" 7 verificS dacS o variabilS este setatS
%e""!pe 7 seteazS tipul unei variabile
1.. Serverul de ba/e de da"e 0!S1L
Scurta descriere

8I1`: este un server de baze de date 1`: $1tructured `uerI :anguage%
foarte rapid. ; baza de date reprezinta o colectie de date organizate dupa anumite
criterii. .entru a accesa, adauga sau procesa date continute in baza de date este nevoie
de un sistem de administrare a bazelor de date precum 8I1`:.
8I1`: este foarte rapid, dar si usor de invatat. In plus, este si gratuit5 pac#etul
8I1`: este disponibil la www.mIsal.com sub forma unei ar#ive zip care trebuie
despac#etata intr-un folder, de regula - C,/8I1`:. 8I1`: a fost dezvoltat pentru a
>)
227448992.doc
lucra cu baze de date foarte complexe. Conectivitatea, viteza si securitatea il fac foarte
potrivit pentru accesarea bazelor de date in Internet.
1erver-ul 8I1`: poate fi gestionat manual cu urmatoarele linii de comanda,
Q mIsald.exe - porneste server-ul
Q mIsaladmin.exe - opreste server-ul
Q mIsal.exe - afiseaza consola 8I1`:
1erver-ul 8I1`: permite lucrul cu mai multi utilizatori, existand in mod predefinit
utilizatorul,
userJ root
pass&or*J ""
Comenzi uzuale in !9S:"
; baza de date este formata din mai multe tabele, acestea fiind divizate in
inregistrari $records%, inregistrari ce pot fi considerate liniile tabelului. ; linie a unui
tabel este impartita in mai multe campuri, care pot stoca diferite tipuri de date
Lestionarea tabelelor pentru a crea o baza de date la consola 8I1`:
create database nume;baza< - creeaza baza de date
use nume;baza5 - comanda folosirea unei anumite baze de date
drop database nume;baza5 - sterge o baza de date
show databases5 - afiseaza bazele de date existente pe server
create table nume;tabel5 - creeaza un tabel atunci cand baza de date este desc#isa
show tables5 - afiseaza tabelele din baza de date curenta
drop table nume;tabel5 - sterge un tabel din baza de date
desc nume;tabel5 - arata informatii despre structura unui tabel
'rimar9 5e9 este o instructiune folosita pentru definirea c#eii primare. &ceasta
creeaza un index pe baza coloanei al carei nume a fost specificat. &ceata coloana este
considerata ca fiind cea mai importanta, des folosita, fiind vazuta drept c#eia de
sortare a tabelului. .rimarI eI este o coloana de tip &4";OI!C-383!".
insert into numeLta7el 'alues ("'alL1", "'alL$",.....); + adau&a da!e i !abel
select D #rom numeLta7el; + afisarea da!elor di!r+u !abel specifica!.
1.- Limbajul 2avaScrip"
=eneralitati
>>
227448992.doc
@ava1cript este un limba' de tip script dezvoltat de firma !etscape cu a'utorul
caruia putem adauga foarte usor efecte spectaculoase paginilor de 2eb , codul
@ava1cript introducandu-se direct n pagina C"8:. .entru a rula script-uri scrise n
@ava1cript este necesar un browser de 2eb capabil sa interpreteze cod @ava1cript -
cum ar fi !etscape !avigator $de la versiunea ).B n sus% sau 8icrosoft Internet
3xplorer $de la versiunea >.B n sus%.
1pre doesebire de scripturile CLI, care se executa pe calculatorul gazda $server%,
script-urile @ava1cript sunt incarcate de pe server pe calculatorul local. Interpretatorul
va decodifica instructiunile script-urilor si le va executa la momentul potrivit, la
incarcarea paginii pe server, la apasarea unui buton, la miscarea mouse-ului, etc.
1cript-urile @ava1cript fac parte din codul sursa C"8: al paginilor 2eb, dandu-le
acestora un aspect dinamic, interactiv si mult mai atractiv.
@ava1cript este cel mai cunoscut si, urmare fireasca, cel mai folosit limba' pentru
crearea de script-uri pe web. =ineinteles, ca e vorba despre un limba' obiectual si,
foarte important, multi-platforma - idea de baza este ca acelasi cod este sau ar trebui
sa fie interpretat la fel indiferent de platforma pe care ruleaza browser-ul.
1pre deosebire de limba'ele C<< sau @ava care sunt limba'e orientate obiect ,
@ava1cript este un limba' scriptual bazat pe obiecte - si aceasta deoarece obiectelor
@ava1cript le lipsesc > caracteristici ale teoriei ;;.$;b'ect ;riented .rogramming%,
mostenirea , incapsularea si abstractizarea. Corporatia !etscape Communication a
definit propriul concept 7 cunoscut sub numele de @ava1cript ;b'ect 8odel - ce
contine totalitatea obiectelor ,proprietatilor, metodelor dar si variabilelor si functiilor
din universul 5etsca!e . ;biectele !etscape nu trebuie totusi confundate cu cele ale
limba'ului @ava1cript
@ava1cript poseda o serie de obiecte ale sale. "oate obiectele organizeaza-
ierar#izeaza o serie de date, dar si functii $metode% care opereaza asupra acestor date.
&ceste obiecte 7 unele de'a existente in @avas1cript $predefinite% ,altele create de
utilizator explicit 7 pot fi cuplate, respectiv sunt legate de elementele C"8: si dau
posibilitatea efectuarii diverselor calcule matematice sau a crearii diferitelor resurse,
text, ferestre , formulare ,cadre , etc/
.e osatura unui document C"8: recurgandu-se la facilitatile limba'ului
@ava1cript se pot afisa o serie de ferstre , cadre , casete de dialog , unde sa apara tot
felul de mesa'e, resurse grafice , se pot valida sau c#iar evalua expresii in care apar
variabile, date numerice , literali.
0%olutia limba,ului >a%ascript
Ca tot ceea ce are legatura cu 2eb-ul, @ava1cript este o te#nologie noua - mai
noua c#iar dect nsusi limba'ul @ava. Initial, @ava1cript a fost dezvoltat de !etscape
sub denumirea :ive1cript, un limba' de scriptare care intentiona sa extinda
>?
227448992.doc
capacitatile C"8: si sa ofere o alternativa partiala la utilizarea unui numar mare de
scripturi CLI pentru prelucrarea informatiilor din formulare si pentru a adauga
dinamism n paginile utilizatorilor. (upa lansarea limba'ului @ava, !etscape a nceput
sa lucreze mpreuna cu firma 1un pentru a oferi un limba' de scriptare a carui sintaxa
si semantica erau strns legate de @ava - motiv pentru care denumirea a fost sc#imbata
n @ava1cript. (upa finalizarea limba'ului, !etscape si 1un l-au lansat mpreuna.
4na dintre motivatiile care au stat la baza limba'ului @ava1cript a fost
recunoasterea necesitatii ca logica si inteligenta sa existe si pe partea de client, nu doar
pe partea de server. (aca toata logica este pe partea de server, ntreaga prelucrare este
diri'ata la server, c#iar si pentru sarcini simple, asa cum este validarea datelor. n fapt,
lipsit de suport logic pe parte de utilizator, mediul 2eb ar intra n ar#itectura
demodata bde la terminal spre calculatorul gazdaG, care a fost nlocuita de revolutia
.C din anii KHB. &sigurarea de logica n interiorul browserului l nzestreaza pe client
si face ca relatia sa fie un adevarat sistem client/server.
@ava a nsemnat un pas n aceasta directie dar a fost implementat ca auxiliar al
C"8: n sine si nu se intentionase integrarea sa din punctul de vedere al unui limba'.
6iind un limba' strict n privinta tipului de date, @ava nu este optim ca liant pentru
numeroasele te#nologii de care 2ebmasterii au nevoie n crearea paginilor lor si
necesita capacitati de programare de nivel redus - ceva ce ma'oritatea programatorilor
C"8: prefera sa nu exercite exclusiv pentru a oferi logica n spatele elementelor unui
formular. 4n limba' de scriptare de nivel ridicat, pe parte de client, parea a fi piesa
lipsa din arena instrumentelor de programare pentru 2eb.
(e la lansarea sa, n decembrie 0JJ*, @ava1cript si-a atras spri'in din partea
principalilor distribuitori din domeniu, printre care &pple, =orland, 1Ibase, Informix,
;racle, (igital, C. si I=8. & continuat sa se dezvolte, obtinnd recunoastere nu
numai n ma'oritatea browserelor actuale, ci si n alte aplicatii pe care le-au lansat
aceste companii, dar si altele.
1ituatia s-a complicat nsa atunci cnd a intervenit 8icrosoft. ntelegnd importanta
scriptarii 2eb, 8icrosoft a dorit sa ofere suport si pentru @ava1cript. Cnd !etscape a
preferat sa acorde licenta de te#nologie companiei 8icrosoft n loc sa o vnda,
-edmond a analizat @ava1cript, bazndu-se pe documentatia publica, si a creat propria
sa implementare, @1cript, care este recunoscuta de 8icrosoft Internet 3xplorer
versiunile >.B si ulterioare. @1cript 0.B este aproximativ compatibil cu @ava1cript 0.0,
care este recunoscut n !etscape !avigator >.B si browserele ulterioare. "otusi,
numeroasele versiuni @ava1cript si diversele bizarerii specifice platformelor de
operare le-au dat dureri de cap programatorilor pentru 2eb, atunci cnd au ncercat sa
desfasoare situri 2eb capabile de @ava1cript.
(in fericire, !etscape, 8icrosoft si alti distribuitori au acceptat sa predea limba'ul
unei organizatii internationale de standardizare, 3C8&. (e atunci, 3C8& a finalizat
o specificatie de limba', cunoscuta ca 3C8&1cript, pe care o recunosc toti
>*
227448992.doc
distribuitorii. (esi standardul 3C8& este util, att !etscape ct si 8icrosoft au
propriile lor implementari ale limba'ului $@ava1cript si @1cript% si continua sa extinda
limba'ul dincolo de standardul de baza.
.e lnga @1cript, 8icrosoft are propriul sau concurent pentru @ava1cript, numit
A=1cript, realizat pentru a usura patrunderea pe 2eb a actualilor programatori A=. n
esenta, A=1cript este un subset al limba'ului Aisual =asic. (eoarece !etscape nu
recunoaste A=1cript, principalele sale utilizari sunt pentru intraneturile $sau siturile
Internet% unde se nregistreaza o abundenta de utilizatori de 8icrosoft Internet
3xplorer.
C#iar tinnd seama de A=1cript, @ava1cript a devenit cunoscut ca limba'ul de
scriptare standard pentru 2eb. ntruct distribuitorii produc instrumente de dezvoltare
2eb care necesita un limba' de scriptare, @ava1cript este frecvent folosit n acest scop5
astfel, !etscape foloseste limba'ul cunoscut ca 1erver-1ide @ava1cript $11@1% pe parte
de server.
(esigur, 8icrosoft nu a ramas n urma si, cnd a lansat te#nologia &ctive 1erver
.ages $&1.%, aceasta includea si recunoasterea motorului @1cript.
>a%a si >a%aScript
4na dintre cele mai intilnite intrebari referitoare la @avascript este legata de Ggradul
de rudenieG cu limba'ul @ava. &finitatile dintre cele doua limba'e se regasesc la nivelul
sintaxei, al structurilor de control si, intr-o anumita masura, la securitate $nu este
permisa, spre exemplu, cititea fisierelor de pe calculatorul-client%. In rest, @ava este un
limba' mult mai complex $ ca ma'oritatea limba'elor orientate-obiect%. (iferente exista
inclusiv in legatura cu rularea codului .
:imba'ul @ava1cript a fost creat de firma !etscape. 1pre deosebire de @ava, care este
un limba' compilat $programele sunt compilate pe server si executate apoi local pe
calculatorul client%, @ava1cript este un limba' interpretat $ interpretarea limba'ului se
face de catre browsere, care au incorporate un interpretator ce analizeaza instructiunile
@ava1cript si le executa pe calculatorul client%. :imba'ele interpretate sunt mai simple
decat cele compilate si mai usor de invatat. (e asemenea, modificarea si depanarea
este mult mai usor de realizat pentru ca nu mai este nevoie de compilare de fiecare
data.
(upa cum s-a specificat anterior , script-urile @ava1cript sunt incarcate de pe
server pe calculatorul local. Interpretatorul va decodifica instructiunile script-urilor si
le va executa la momentul potrivit, la incarcarea paginii pe server, la apasarea unui
buton, la miscarea mouse-ului, etc. $ deci mai general la producerea unui
>D
227448992.doc
eveniment % .1cript-urile @ava1cript fac parte din codul sursa C"8: al paginilor 2eb,
dandu-le acestora un aspect dinamic, interactiv si mult mai atractiv. &cest lucru insa
are un mare dezavanta', aceste script-uri pot fi copiate, modificate si reutilizate. In
cazul applet-urilor @ava nu apare aceasta problema, intrucat codul sursa al acestora nu
este transferat de pe server pe calculatorul client. &mbele limba'e creeaza aplicatii
independente de platforma pe care se executa. .rogramele @ava sunt executate de
masina virtuala @ava iar script-urile de catre interpretator, ambele fiind incluse in
navigator.
In timp ce @ava este un limba' complex, orientat obiect, @ava1cript este un
limba' mai putin robust5 are foarte multe asemanari cu @ava, insa sintaxa este mai
simpla, iar regulile mai putin complexe. C#iar daca @ava si @ava1cript au o sintaxa
asemanatoare, aceste limba'e sunt folosite in scopuri diferite. 1e poate mai degraba
spune ca sunt complementare decat concurente.

Caracteristici ale limba,ului >a%aScript
8eritul principal al @ava1cript este ca pune la dispozitia creatorilor de pagini
web o metoda excelenta de Ga dinamizaG paginile create. 1i aceasta fara a apela la
programarea pe partea de server $server-side programming%. 6ara a inlocui acest gen
de programare mentionat, script-urile pot rezolva o serie de probleme $e drept, nu
foarte complexe5 cu toate aceste complexitatea e relativa, depinzind de abilitatile
programatorului% cum ar fi validarea unui cimp dintr-o forma sau afisarea unui mesa'
dupa un clic pe un buton $in general, programarea evenimentelor%. Iar avanta'ul
integrarii complete in paginile C"8: a capatat o noua dimensiune acum cu explozia
interfetelor C"8: .
@ava1cript este Gcase sensitiveG, adica se face discriminarea intre literele mari si
cele mici intilnite in numele identificatorilor $nume de variabile, functii, obiecte etc.%.
@ava1cript e un limba' slab-tipizat in comparatie cu .ascal, C<< sau @ava. &stfel
tipul unei variabile nu este determinat in momentul crearii variabilei, iar pe parcursul
executiei programului se poate sc#imba in functie de context. &cest fapt poate fi un
avanta', in sensul unei libertati in conceperea programului, dar si un dezavanta' legat
de ambiguitatea ce poate sa apara, codul fiind mai greu de inteles. "otusi, daca la un
moment dat, doriti sa aflati tipul unei variabile aveti la dispozitie operatorul tIpe;f.
.rin aplicarea lui se obtine un string ce contine tipul variabilei $inclusiv undefined sau
ob'ect, pe linga tipurile standard%.
-aportat la variabile, exista asa-numita facilitate de GtIpe-castingG $convertire
automata a tipului%. In acest caz, in functie de context, tipul variabilelor se modifica
automat. In @ava1cript casting-ul este partial. &stfel o variabila numerica se
converteste automat la string , insa reciproca nu este valabila. (e aceea, in multe
>F
227448992.doc
script-uri veti intilni functia parseInt care converteste, in masura posibilului, unui
string in numar.
3xista o valoare speciala in @ava1cipt si anume null. &dica, dupa cum i spune
si numele, nimic. 3xista diverse situatii cind o veti intilni cum ar fi folosirea de
variabile nedefinite dar si unele rezultate de functii. null nu este acelasi lucru cu sirul
vid $KK%, de pilda. (e aceea, uneori trebuie sa fie testate cu gri'a anumite rezultate etc.
@ava1cript permite folosirea expresiilor conditionale $existente, de atfel, si in
alte limba'e de programare%, ce se pot dovedi foarte utile. 3xemplu, is!1 Z
$document.laIers% R 0 , B5
(aca browserul recunoaste aceasta colectie de obiecte $specifica !etscape !avigator%
atunci expresia se evalueaza true si variablia noastra va lua valoarea 0, altfel B.
&ceasta este o metoda extrem de simpla de a identifica un browser. .entru Internet
3xplorer, isI3 Z $document.all% R 0 , B.
Cuvintul c#eie t#is se poate dovedi extrem de util, caci intotdeauna se refera la
obiectul curent. Cred ca puteti intui si acum cit de important e sa puteti folosi o
expresie de genul self.proprietate pentru a accesa proprietatea obiectului curent $ma
rog, formularea suporta critici%, fara a sti care obiect este efectiv.
(ata fiind caracteristica multi-platforma a @ava1cript este important sa
dispunem de functii care sa asigure compatibilitatea in diverse situatii. (oua
asemenea functii complementare sunt escape si unescape. 1irul de caractere primit ca
argumet este convert la codificarea standard I1; :atin-0 si invers. 3ste necesara mai
ales in cazul cooie-urilor pentru a converti caractere depinzind de setul de caractere
$dependent, la rindul sau, de platforma%.
8acrosubstitutia este facilitate puternica a unor limba'e de programare $din
fericire, intilnita si la @ava1cript%. .oate ca in acest caz e vorba de o mini-
implementare a unei asemenea facilitati $prin functia eval%, insa este foarte utila.
&stfel eval executa string-ul primit ca argument ca si cum ar fi o linie de cod
@ava1cript, eval$Kalert$str&%K% va genera o fereastra $prompt window% care va afisa
valoarea string-ului str&. 4tilitatea este data si de incompatibilitatile dintre browsere
la nivelul referirii obiectelor suportate. In acest caz eval$% ne a'uta in scrierea unui cod
elegant.
"oate variabilele si obiectele sunt distruse la reincarcarea paginii web sau la
incarcarea unei pagini noi. 1ingura solutie in acest caz $pentru crearea unei aplicatii
mai complexe% ramine folosirea frame-urilor si, in speta, a unui frame ce nu isi
reincarca continutul.
>H
227448992.doc
Capitolul ). Descrierea aplicatiei
2.1 Da"e +e*erale
).1.1 Detalii de utilizare si instrumente folosite in dez%oltare
&plicatia dezvoltata reprezinta implementarea unei solutii web pentru un
magazin virtual ce foloseste comertul electronic pentru comercializarea produselor
sale, in cazul de fata fiind vorba de accesorii si componente de calculatoare.
&plicatia poate rula pe un server de web &pac#e instalat pe unul din sistemele de
operare, :inux, 4nix sau 2indows . (easemenea este necesara functionarea pe
serverul de web a unei versiuni mai noi de .C. - utilizat ca modul al serverului
&pac#e si a unei versiuni recente de 8I1`: ca server de baze de date.
.artea executabila a aplicatiei este constituita de scripturi .C. ,care sunt rulate pe
serverul de web si al caror rezultat este vizualizat de catre utilizatorul client pe
calculatorul sau ,prin intermediul unui browser local.
1ite-ul web a fost dezvoltat folosind urmatoarele limba'e de programare si aplicatii
2eb,
- .entru partea de programare s-a utilizat, .C. versiunea ?.B , C"8: ? si
@ava1cript
- .entru partea de design s-a utilizat, C"8:, C11, &dobe .#otos#op D.B
- .entru partea de baze de date s-a utilizat 8I1`: versiunea >.)>.>H
).1.) !odulele aplicatiei
(in punct de vedere al functionalitatii , aplicatia este constituita din urmatoarele
module ,
>J
227448992.doc
1 "odulul de administrare al site%ului 3 are un rol crucial in intretinerea site-ului, in
a asigura buna functionare a site-ului si fluenta si coerenta datelor ve#iculate in
activitatea de comert electronic desfasurata .
2 "odulul de inregistrare/autentificare a utili@atorilor asigura securitatea
procesului de comercializare a produselor , prin utilizarea autentificarii
utilizatorilor si a altor mecanisme specifice. (easemenea pune la dispozitia
utilizatorului 7 care a parcurs procesul de autentificare, o serie de optiuni si
facilitati speciale
& "odulul de interfata al site%ulu ? contine totalitatea scripturilor/programelor ce
permit comunicarea cu utilizatorul client , constituind o interfata prin intermediul
careia utilizatorul poate naviga prin/ vizualiza ierar#ia de produse comercializate
de catre magazinul web.
6 "odulul de !reluare/!relucrare a comen@ilor de la utili@ator - are un rol dublu,
pe de o parte permite pastrarea optiunilor de produse pentru care a optat
utilizatorul la un moment dat in decursul procesului de cumparare si in acelasi
timp permite preluarea si prelucrarea in conditii de securitate, a comenzii finale de
cumparare lansata de catre utilizator .
7 "odulul de comunicare cu utili@atorii - implementeaza o serie de facilitati
suplimentare, care vin in spri'inul utilizatorului ,asigurand buna comunicare intre
comerciant si clienti , dezbaterea si rezolvarea problemelor acestora si nu in
ultimul rand contribuind la formarea si dezvoltarea unui cerc de clienti fideli
care apreciaza calitatea produselor comercializate.
).1.& Detalii de implementare
&plicatia a fost dezvoltata , in mai multe etape , si anume,
0 proiectarea structurii si implementarea bazei de date.
) proiectarea si implementarea moduluilui de administrare al site-ului , care sa
gestioneze aceasta baza de date si care sa permita 7 intr-un mod facil 7 adaugarea
datelor in cadrul tabelelor bazei de date .
> introducerea datelor si a imaginilor corespunzatoare acestora in baza de date.
? proiectarea si implementarea modulului de interfata al site-ului
* proiectarea si implementarea modulului de inregistrare-autentificare a utilizatorilor
D proiectarea si implementarea modulului de preluare si prelucrare a comenzilor de
la utilizator.
F implementarea facilitatilor puse la dispozitia utilizatorului si integrarea acestora in
cadrul modulelor de care apartin.
H definitivarea aspectului grafic al site-ului
J testarea functionalitatii site-ului si a facilitatilor puse la dispozitie in cadrul sau.
?B
227448992.doc
2.2 4u*c"i$*ali"a"i %i (acili"a"i ale aplica"iei
6acilitatile disponibile pot fi impartite in doua categorii, facilitati la nivel de site
sau generale si facilitati la nivel de produs $pagina a produsului% . 4rmeaza o scurta
descrierea a acestora , informatii mai detaliate si modul de implementare pentru
aceste facilitati , fiind specificate in cadrul descrierii modulului comercial al site-ului
7 de care si apartin.
(in aceasta categorie pot fi mentionate, in ordine, urmatoarele,
2acilitati de cautare in cadrul site?ului
-olul acestora este acela de a facilita accesul la anumite informatii mai detaliate din
cadrul site-ului pe baza unor informatii de start ,mai putin detaliate, specificate de
catre utilizator.
2acilitatile de abonare oferte - pentru primirea diferitelor oferte/informatii privind
produsele comercializate.
-olul acestei facilitati este acela de informare prompta a utilizatorului cu privire la
detaliile comerciale si te#nice ale produselor puse in vanzare.
4tilizatorul poate a'unge in posesia acestor oferte prin e-mail.
In acest caz utilizatorul trebuie sa fie unul inregistrat , astfel incat , prin procesul de
inregistrare si autentificare utilizatorul respectiv 7 sa-si poata configura / reconfigura
dupa bunul plac
optiunile privitoare la acest abonament.
; alta functionalitate utila - este permanenta informare a clientului utilizator - in
cadrul procesului de navigare/cumparare $selectie produse% cu privire la %aloarea
totala actuala si continutul cosului de produse .

In cadrul paginii unui produs este disponibila urmatoarea facilitate,
@mareste imagineaA - permite afisarea pozei de dimensiune mare , a produsului, prin
mouse-clic pe poza.
?0
227448992.doc
2.3 S"ruc"urarea ba/ei de da"e
Descriere generala

=aza de date folosita este o baza de date relationala de tip 8I1`:, denumita
brainerz.
3a contine urmatoarele )> de tabele,
- categorii - tabela ce descrie categoriile de produse si relatiile dintre acestea
$ierar#ia de categorii%
- subcategorii - tabela ce descrie subcategoriile de produse si relatiile dintre acestea
$ierar#ia de categorii%
- produse - tabela ce descrie produsele comercializate
- clienti - tabela ce descrie/contine date despre utilizatorii inregistrati
- tranzactie ? tabela ce descrie caracteristicile fiecarui produs
- admin - tabela ce descrie producatorii produselor ce sunt comercializate
- guest - tabela ce contine datele rezultate in urma voturilor acordate de catre
utlizatori
in procesul de votare a calitatii site-ului.
- ,udete - tabela ce descrie ofertantii $furnizorii% produselor ce sunt comercializate
- news - tabela ce descrie/contine date despre topul de noutati produse .
- statistici;web - tabela ce descrie/contine date despre cei care acceseaza pagina
- transportatori - tabela ce descrie/contine date despre companiile de transport
- %aluta - tabela ce descrie comenzile de produse date de catre utilizatori
In afara acestor 0) tabele, mai intalnim inca D tabele ce contin preturile de transport
$in functie de greutate si de zona% a diverselor companii transportatoare $air;mailB
econom9;e+pressB emsB global;e+pressB ground;mailB wp+% si inca ? tabele ce
prezinta timpul de transport specifice fiecarei companii $zile;eeB zile;eeB zile;rpB
zile;wp+%.
1.Tabela categorii
&ceasta tabela descrie ierar#ia categoriilor de produse si are urmatoarea structura,
?)
227448992.doc
2ield T9pe -ull Default
id int$00% !o
denOcatOro varc#ar$)**% !o
).Tabela subcategorii
&ceasta tabela descrie ierar#ia subcategoriilor de produse si are urmatoarea structura,
2ield T9pe -ull Default
id int$00% !o
categorie int$00% !o B
denOsubcatOro varc#ar$)**% !o
Campul ccategorie] corespunde valorii id-ului din tabela categorii.
&.Tabela produse
&ceasta tabela contine informatiile de baza caracteristice fiecarui produs comercializat
si are urmatoarea structura,
2ield T9pe -ull Default
idOprodus bigint$)B% !o
pretOvanzare decimal$H,)% !o B.BB
greutate decimal$?,)% !o B.BB
lungime decimal$?,)% !o B.BB
latime decimal$?,)% !o B.BB
inaltime decimal$?,)% !o B.BB
volum float$H,?% !o B.BBBB
categorieOprodus int$00% !o B
unitatiOvandute int$J% !o B
subcategorie int$00% !o B
?>
227448992.doc
gen varc#ar$)*% des 54LL
subgen varc#ar$)**% des 54LL
denOprodusOro varc#ar$)**% des 54LL
descOprodusOro longtext des 54LL
locatie int$00% !o B
activ int$00% !o B
In functie de campurile cgreutate], clungime], clatime], cinaltime], cvolum] este
calculat pretul de transport.
In campurile cgen] si csubgen] poate fi introdusa o descriere ce va fi folisita de
modulul de cautare.
In functie de valoarea campului cactiv], un produs este afisat sau nu pe site.
6.Tabela clienti
&ceasta tabela contine informatii specifice despre fiecare dintre utilizatorii
inregistrati.Informatiile sunt colectate in urma procesului de inregistrare a unui nou
utilizator 7 proces desfasurat in mai multe etape. "abela are urmatoarea structura,
2ield T9pe -ull Default
userOid bigint$)B% !o
userOnume varc#ar$)B% !o
userOpass varc#ar$)*% !o
fOname varc#ar$>B% !o
lOname varc#ar$F*% !o
adresa longtext !o
codOtara varc#ar$)B% !o
telefon varc#ar$*B% !o
email varc#ar$0BB% !o
dataOnastere date !o BBBB-BB-BB
dataOinreg datetime !o
BBBB-BB-BB
BB,BB,BB
valoareOcumparaturi float !o 0JBB
numarOac#izitii int$00% !o B
mediaOac#izitii float !o B
??
227448992.doc
ultimaOcumparare datetime !o
BBBB-BB-BB
BB,BB,BB
ultimaOlogare datetime !o
BBBB-BB-BB
BB,BB,BB
advertising int$00% !o B
title tinIint$?% !o B
Campul cadvertising] precizeaza daca utilizatorul a specificat faptul ca este de acord
sa primeasca e-mailuri publicitare.
7.Tabela tranzactie
In aceasta tabela fiecare inregistrare contine toate datele corespunzatoare unei
comenzi de produse facuta de catre un utilizator-client. "abela are urmatoarea
structura,
2ield T9pe -ull Default
idOtranzactie bigint$)B% !o
dataOtranzactie datetime des 54LL
idOclientOtranzactie bigint$)B% !o B
pretOtotalOtranzactie double !o B
pretOtransp double$?,)% !o B.BB
transportator varc#ar$*B% !o
pretOplatitOtranzactie double !o B
produseOtranzactie mediumtext !o
destinatarOtranzactie tinItext !o
destinatieOtranzactie mediumtext !o
modOplataOtranzactie tinItext !o
stareOtranzactie tinIint$?% !o 0
8.Tabela admin
&ceasta tabela contine parola pentru admin si data ultimei operari.
2ield T9pe -ull Default
?*
227448992.doc
adminOpassword varc#ar$)**% !o
adminOlastlogin datetime !o
BBBB-BB-BB
BB,BB,BB
C.Tabela guest
&ceasta tabela descrie si contine datele corespunzatoare fiecarui mesa' din sectiunea
csuggestionsA.
2ield T9pe -ull Default
id bigint$)B% !o
userOid int$00% !o B
mesa' text !o
stare tinIint$?% !o B
data datetime !o
BBBB-BB-BB
BB,BB,BB
tip tinIint$?% !o B
nicname varc#ar$*B% !o
D.Tabela ,udete
2ield T9pe -ull Default
idO'udet tinIint$?% !o
denumire varc#ar$HB% !o
E.Tabela news
"abela contine stirile introduse de administrator.
2ield T9pe -ull Default
id bigint$)B% !o
titlu varc#ar$)**% !o
continut mediumtext !o
data datetime !o
BBBB-BB-BB
BB,BB,BB
?D
227448992.doc
1F.Tabela statistici;web
&ceasta tabela contin date despre sistemul de operare, versiune de browser $campul
cC"".O413-O&L3!" c%, ip $campul c-38;"3O&((-]% ale celor care intra pe
site.
2ield T9pe -ull Default
id bigint$)B% !o
C"".O413-O&L3!" varc#ar$)BB% !o
-38;"3O&((- varc#ar$)BB% !o
date datetime !o
BBBB-BB-BB
BB,BB,BB
11.Tabela transportatori
Contine date despre companiile de transport.
2ield T9pe -ull Default
idtara int$>% !o
tara c#ar$>B% !o
globalOexpress tinIint$0% !o B
economIOexpress tinIint$0% !o B
ems tinIint$0% !o B
wpx tinIint$0% !o B
zonatnt tinIint$0% !o B
zonarp tinIint$0% !o B
zonad#l tinIint$0% !o B
1).Tabela %aluta
"abela contine informatii referitoare la paritatea leu/dolar si leu/euro.
?F
227448992.doc
2ield T9pe -ull Default
id tinIint$0% !o B
usd int$*% !o B
euro int$00% !o B
Tabele companii transportatoare
.e baza acestor tabele se calculeaza pretul de transport, in functie de zona unde va
trebui dus pac#etul si de greutatea sa.
1&.Tabela air;mail
2ield T9pe -ull Default
zona tinIint$0% !o B
pb decimal$>,)% !o B.BB
pg decimal$>,)% !o B.BB
16.Tabela econom9;e+press
2ield T9pe -ull Default
zona int$0% !o B
pretObaza float$>,)% !o B.BB
g float$>,)% !o B.BB
17.Tabela ems
2ield T9pe -ull Default
greutate decimal$),0% !o B.B
zona0 int$F% !o B
zona) int$F% !o B
zona> int$F% !o B
zona? int$F% !o B
zona* int$F% !o B
?H
227448992.doc
zonaD int$F% !o B
18.Tabela global;e+press
2ield T9pe -ull Default
zona int$0% !o B
pretObaza float$>,)% !o B.BB
g float$>,)% !o B.BB
1C.Tabela ground;mail
2ield T9pe -ull Default
zona tinIint$0% !o B
pb decimal$>,)% !o B.BB
pg decimal$>,)% !o B.BB
1D.Tabela wp+
2ield T9pe -ull Default
greutate c#ar$>% !o
zona0 int$?% !o B
zona) int$?% !o B
zona> int$?% !o B
zona? int$?% !o B
zona* int$?% !o B
zonaD int$?% !o B
zonaF int$?% !o B
zonaH int$?% !o B
Tabele durata de transport
?J
227448992.doc
&ceste tabele contin durata de timp in care produsul a'unge la destinatie, in functie de
zona in care se afla destinatarul.
1E.Tabela zile;ee
2ield T9pe -ull Default
zona tinIint$?% !o
zileOee tinIint$?% !o B
)F.Tabela zile;ge
2ield T9pe -ull Default
zona tinIint$?% !o
zileOge tinIint$?% !o B
)).Tabela zile;rp
2ield T9pe -ull Default
zona tinIint$?% !o B
zile tinIint$?% !o B
)&.Tabela zile;wp+
2ield T9pe -ull Default
zona tinIint$?% !o
zile tinIint$?% !o B
*B
227448992.doc
2.. De%crierea m$dulel$r aplica"iei
).6.1 !odulul de administrare al bazei de date

Descriere
&re un rol esential in buna functionarea a site-ului , dar mai ales in gestionarea
eficienta a resurselor si a activitatii de comert electronic desfasurate 7 punand la
dispozitia utilizatorilor cu drepturi de administrator o interfata de control puternica si
usor de utilizat.
8odulul de administrare este format din urmatoarele sectiuni ,
Administrare Categorii - se ocupa de gestionarea tabelelor categorii si
subcategorii
Administrare Clienti 7 se ocupa de gestionarea tabelei clienti
Administrare Catalog 'roduse - se ocupa de gestionarea tabelei produse
Administrare Stiri7 se ocupa de gestionarea tabelei news
Administrare Statistici Web 7 se ocupa de gestionarea tabelei statistici;web
Administrare Sugestii 7 se ocupa de gestionarea tabelei guest
Administrare Tranzactii 7 se ocupa de gestionarea tabelei tranzactii
Administrare Cont Admin 7 se ocupa de gestionarea tabelei admin

Sectiunea Administrare Categorii
In cadrul aplicatiei , ierar#ia de categorii existenta este structurata pe ) nivele,
? categorii principale 3 ca de e+emplu coolereB case moddingB softwareB etc. ?
acestea contin intotdeauna mai multe subcategorii 5
- subcategorii , ca de exemplu, case cooling, processor cooling, neons, leds, etc. -
acestea sunt caracterizate de faptul ca au ca VparinteW una din categorii principale.
&ceasta structura arborescenta de organizare a categoriilor de produse a fost preferata
datorita structurarii mai organizate a informatiilor si datorita faptului ca asigura un
acces mai eficient la informatiile dorite $ acestea fiind de obicei despre unul dintre
produse 7 care pot fi astfel casimilate] ca fiind frunze ale acestui arbore%.
*0
227448992.doc
(in cadrul acestei sectiuni se poate modifica/edita ierar#ia de categorii si/sau
subcategorii existenta.
In principiu ,la accesarea acestei sectiuni ,este afisata ierar#ia de categorii si/sau
subcategorii si sunt puse la dispozitie comenzi de, adaugare, de stergere si de
redenumire a unei categorii.
&ceste comenzi opereaza asupra bazei de date, modificand in mod corespunzator
informatiile tabelelor categorii si/sau subcategorii. (e aceea, ca metoda de protectie
suplimentara 7 exista cod, care la lansarea unei astfel de comenzi cere
confirmari/informatii suplimentare , evitand astfel lansarea eronata/nedorita acestora.
(easemenea , pentru fiecare categorie existenta - poate fi adaugata/stearsa/updatata o
poza corespunzatoare - ce este utilizata pentru a ilustra categoria respectiva in cadrul
aplicatiei.
Imaginea respectiva este stocata ca data binara $camp blob% in cadrul acelei
inregistrari din tabelele categorii si/sau subcategorii ce corespunde categoriei
1cripturile .C. care implementeaza sectiunea @Administrare CategoriiA sunt
urmatoarele,
Afisare;categorii.php 7 incarca din baza de date si afiseaza ierar#ia de categorii.
adauga;categorie.phpB sterge;categorie.php si editare;categorie.php- primind o
comanda de editare a unei categorii, realizeaza efectiv modificarile cerute asupra
tabelei categorii, in cadrul bazei de date.
Afisare;subcategorii.php 7 incarca din baza de date si afiseaza ierar#ia de
subcategorii.
adauga;subcategorie.phpB sterge;subcategorie.php si editare;subcategorie.php-
primind o comanda de editare a unei subcategorii , realizeaza efectiv modificarile
cerute asupra tabelei subcategorii, in cadrul bazei de date.

Sectiunea Administrare Clienti
In aceasta sectiune se gestioneaza tabela clienti - ce afiseaza, modifica sau
sterge datele din tabela plati.
In principiu , la accesarea acestei sectiuni , se afiseaza tabelat datele despre fiecare
client existent in baza de date , id, username , nume, prenume, adresa e-mail si
optiuni, de unde se pot vizualiza detalii despre un user sau stergerea lui.
1cripturile .C. care implementeaza aceasta sectiune sunt urmatoarele,
*)
227448992.doc
clienti.php 7 incarca din baza de date si afiseaza tabelat informatiile despre fiecare
user existent
detalii;client.php 7 afiseaza detaliile complete ale fiecarui user in parte.
Sectiunea Administrare Catalog 'roduse

:a accesarea acestei sectiuni este afisat un formular prin care se cauta produsul
care se doreste a fi afisat sau modificat sub forma ierar#ica. 8etodele de cautare sunt,
dupa categorie si subcategorie, dupa nume si dupa id.
.entru fiecare produs gasit sunt afisate urmatoarele informatii,
-nume , descriere, pret produs si poza - date preluate din tabela produse
-optiuni 7 prin care poate fi sters, modificat sau dezactivat produsul respectiv

.entru fiecare produs afisat ,in dreptul acestuia , sunt disponibile urmatoarele
comenzi, @!odificaA B @Dezacti%eazaA B @Sterge@.
Comanda @!odificaA - se intra in modul de editare a datelor de baza ale produsului .
&ceste date , nume , descriere , pret sunt incarcate in campurile unui formular,
putand fi modificate/updatate sau sterse din baza de date , prin activarea butonului
!odifica.
Implementare practica,
:a apasarea butonului de editare se paseaza scriptului editareOprodusOcp.p#p codul
corespunzator produsului editat.
1e interog#eaza tabela produse folosind codul respectiv si se preiau datele de baza ale
produsului avand acel cod.
1e genereaza dinamic - din cadrul .C. - un formular , astfel incat fiecare element de
form sa corespunda unei date preluata din baza de date si se seteaza apoi valoarea
fiecarui camp la valoarea datei corespunzatoare lui.
*>
227448992.doc
(e exemplu, pentru categorie si subcategorie exista un dropmenu - ce contine ca
optiuni de selectie numele tuturor categoriilor existente in tabela categorii $la fel si
pentru subcategorii%.
Comanda cDezacti%eaza] - nu sterge produsul in baza de date dar impiedica afisarea
lui pe site-ul principal $folosit in cazul in care produsul nu se mai afla pe stoc%.

Comanda @StergeA 7 sterge complet produsul din baza de date.
1cripturile .C. care impementeaza sectiunea c&dministrare Catalog .roduse] sunt
urmatoarele,
adauga;produs;cp.php 7 implementeaza comanda Vadauga in C.W.
afisare;produse.php 7 afiseaza produsele din baza de date.
editare;produs;cp.php 7 implementeaza comanda VmodificaW.
sterge;produs;cp.php implementeaza comanda VstergeW.
!uta;cp.php muta un produs dintr-o categorie/subcategorie intr-a alta
categorie/subcategorie.
Sectiunea Administrare Stiri
:a accesarea acestei sectiuni , sunt afisate tabelat , noutati despre site. &ceste
informatii sunt preluate din tabela news si afisate in ordinea cronologica a
introducerii lor.
(e-asupra informatiilor afisate tabelat se afla un buton @adauga stireA, care lanseaza
un formular prin care poate fi introdusa stirea.
In dreptul fiecarei stiri afisate sunt disponibile urmatoarele linuri,
@modificaA duce la modificarea inregistrarii corespunzatoare stirii respective din
baza de date5
@stergeA - duce la stergerea inregistrarii corespunzatoare.

1cripturile .C. care implementeaza aceasta sectiune sunt urmatoarele,
stiri.php - incarca din baza de date , din tabela news , si afiseaza tabelat si in ordine
cronologica stirile.
adauga;stire.php adauga in baza de date o noua stire
editare;stire.php 7 editeaza informatiile unei stiri
sterge;stire.php - sterge toate informatiile corespunzatoare unei stiri 7 din cadrul
tabelei news, din baza de date.
*?
227448992.doc
Sectiunea Statistici Web
In aceasta sectiune , sunt afisate tabelat , informatii despre platforma folosita de
utilizatori la accesare site-ului $in procente%, sistemele de operare folosite de utilizatori
$tot in procente% si numarul de accesari respective si ip-uri care au accesat site-ul. In
partea de 'os a paginii sunt afisate ) grafice ce prezinta numarul de utilizatori din
ultimele F zile, cat si lunar.
&ceste informatii sunt preluate din tabela statisticiOweb. &ceste date sunt colectate si
introduse in aceasta tabela de un script prezent in paginile principale ale site-ului.

8odulul care formeaza aceasta sectiune este,
statistici;web.php - incarca din baza de date , din tabela statisticiOweb , si afiseaza
tabelat datele.

Sectiunea Administrare Sugestii
In aceasta sectiune se gestioneaza tabela guest afiseaza optiuni pentru
aprobarea sau stergerea sugestiilor introduse de vizitatorii site-ului.
In principiu , la accesarea acestei sectiuni , se afiseaza numarul de sugestii
aprobate si neaprobate prin ) linuri corespunzatoare. &dministratorul are
posibilitatea de a aproba sau nu afisarea pe site-ul principal a unei sugestii. &ceasta
optiune a fost introdusa pentru a evita afisarea mesa'elor continand obscenitati in
cadrul site-ului.
.rin apasarea linului @sugestii neaprobateA sunt afisate tabelat sugestiile ce urmeaza
a fi aprobate sau sterse dupa caz $prin folosirea comenzilor @Acti%eazaA sau @StergeA%.
.rin apasarea linului @sugestii aprobateA sunt afisate tabelat sugestiile ce au fost
aprobate de'a si care pot fi sterse $comanda @StergeA%.
1cripturile .C. care implementeaza aceasta sectiune sunt urmatoarele,
meniu;gs.php 7 face cererile catre baza de date si afiseaza cele ) linuri
sugestii.php 7 afiseaza opereaza modificari in baza de date in tabela guest.
**
227448992.doc
Sectiunea Tranzactii
.rin accesarea acestei sectiuni , se pot vizualiza starea tranzactiilor efectuate pana
acum.
&ceste stari sunt preluate din tabela tranzactii si sunt urmatoarele, V"ranzactie care
asteapta confirmareaW, V"ranzacite confirmata care asteapta trimiterea $efectuarea%W,
V"ranzactie refuzata $incorecta%W, V"ranzactie trimisa $efectuata%W si V"ranzactie
confirmataW. &ceste valori pot fi modificate in functie de starea tranzactiei respective.
:a accesarea acestei sectiuni va fi afisat un meniu cu numarul total de tranzactii care
asteapta confirmarea, de tranzactii confirmate care asteapta trimiterea $efectuarea%, de
tranzactii refuzate $incorecte%, de tranzactii trimise $efectuate% si de tranzactii
confirmate. &ici mai intalnim si posibilitatea de cautare a unei tranzactii. :a apasarea
oricarui lin sunt afisate tabelat tranzactiile care au starea respectiva. 1tarile pot fi
modificate in functie de efectuarea tranzactiilor. "abelul contine, numele clientului,
id-ul tranzactiei, data tranzactiei, pret total, pret platit, destinatar, destinatie si lista
produselor.

1cripturile .C. care implementeaza V1ectiunea "ranzactiiW sunt urmatoarele,
cauta;tranzactie.php - cauta in baza de date tranzactii in functie de datele introduse
de administrator $id si username client%.
lista;tranzactii.php afiseaza tranzactiile gasite.
meniu;tranzactii.php 7 afiseaza meniul cu starea tranzactiilor pana in momentul
respectiv.
profil;tranzactie.php - afiseaza profilul unei tranzactii.
sterge;tranzactie.php 7 cere confirmarea administratorului pentru a sterge o
tranzactie si sterge din baza de date tranzactia respectiva.
Sectiunea Cont Admin
&ccesarea acestei sectiuni permite sc#imbarea parolei pentru administrator. 1e
cere administratorului parola vec#e si de doua ori parola noua $pentru verificare%.

1cripturile .C. care implementeaza aceasta sectiune sunt urmatoarele,
do;parola;admin.php - verifica si sc#imba datele din tabelul admin din baza de
date.
*D
227448992.doc
&ceste sectiuni pot fi accesate doar de administrator care se log#eaza la inceputul
utilizarii acestor module.
).6.) !odulul de inregistrare?autentificare al utilizatorilor
&cest modul indeplineste urmatoarele functii in cadrul aplicatiei ,
- asigura securitatea procesului de comercializare a produselor , prin utilizarea
autentificarii utilizatorilor ce doresc sa ac#izitioneze produse si a altor mecanisme
specifice.
- pune la dispozitia utilizatorului 7 care a parcurs procesul de autentificare 7 o serie
de optiuni si facilitati speciale 7 din cadrul contului personal.
(in cadrul modului de inregistrare-autentificare sunt posibile urmatoarele scenarii,
- pentru userii neinregistrati - ce doresc a beneficia de toate facilitati oferite , este
necesar ca acestia sa parcurga procesul de inregistrare , in urma caruia capata
statutul de user inregistrat.
- pentru userii inregistrati - se poate face autentificarea acestora , prin introducerea
unei perec#i ,username 7 parola , corecte.
'rocesul de inregistrare al utilizatorilor
3ste un proces desfasurat in trei etape 7 in care se strang informatii specifice
despre utilizator si in care se verifica validitatea acestor informatii , inainte ca
acestea sa fie introduse in baza de date. .rocesul de inregistrare se deruleaza
astfel,
'asul 1 , se solicita 7 in cadrul unui formular - introducerea unui username, a unei
parole $de minim * caractere% si reconfirmarea acesteia din urma, a numelui si
prenumelui, numarul de telefon, adresa, tara de resedinta, adresa de e-mail, data de
nastere si ) confirmari $daca doreste sa primeasca pe mail informatii publicitare si
daca este de acord cu conditiile site-ului .
.e baza acestui cuplu de informatii, $username, parola% se va face ulterior
autentificarea utilizatorului , fiind importanta deci acuratetea acestor date.
:a apasarea butonului @SubmitA 7 este apelat scriptul cvalidare.'s] care preia
informatiile introduse de utilizator ,face verificarile si confirma validitatea datelor.
:a submiterea formularului , prin cod @avascript , se vor face urmatoarele verificari,
*F
227448992.doc
- se verifica validitatea adresei de e-mail introduse , mai exact, daca sintaxa acesteia
respecta regulile de format a unei adrese de e-mail.
- se verifica daca parola introdusa contine minimul de caractere cerut si daca
coincide cu valoarea reintrodusa pentru aceasta.
(oar daca aceste conditii sunt indeplinite, formularul este submis , trecandu-se astfel
la pasul urmator.
'asul ) ? se trimite automat la mail-ul specificat7 in cadrul unui formular 7 toate
aceste date introduse si se afiseaza un mesa' de primire.
In cazul in care datele sunt refuzate de catre script, utilizatorul este avertizat asupra
datelor introduse incorect si utilizatorul are posibilitatea de a corecta informatiile
gresite.
(upa aceste operatii , utilizatorul este redirectionat catre pagina de start a aplicatiei 7
de unde, are acum posibilitatea de a se autentifica si de a intra astfel, in cadrul
contului personal .
'rocesul de autentificare al utilizatorilor
.entru a se autentifica 7 un utilizator trebuie sa form-ul intitulat c:ogin] si sa
introduca username-ul si parola cu care s-a inregistrat .
(aca cuplul $adresa email ,parola% sunt corecte sintactic , atunci se interog#eaza
tabela utilizatori cu aceste date , in vederea identificarii utilizatorului respectiv .
In cadrul tabelei utilizatori , cuplul de coloane $username, parola% are valori unice
pentru fiecare inregistrare , deci daca aceste date introduse sunt corecte , in urma
interogarii ar trebui sa rezulte o unica inregistrare 7 deci sa fie identificat un unic
utilizator 7 posesor de drept al acestor date.
(aca identificarea esueaza , este reincarcata pagina de logare - in partea de sus a
acesteia aparand un mesa' de avertizare corespunzator.
(aca autentificarea reuseste utilizatorul VintraW in cadrul contului personal.
In cadrul contului personal , sunt puse la dispozitie comenzi care pot fi accesate prin
apasarea linului @!9 'rofileA, prin care pot fi modificate datele utilizatorului.
In acelasi timp, pot fi vizualizate tabelat tranzactiile efectuate de respectivul utilizator
prin apasarea linului @Tranzaction detailsA.
4tilizatorul poate vizualiza continutul curent al cosului propriu de produse si in
continuare are posibilitatea de a lansa comanda de cumparare a produselor respective.
*H
227448992.doc
1cripturile .C. care implementeaza @!odulul de inregistrare?autentificare al
utilizatorilorA sunt urmatoarele,
new;account.php 7 genereaza pagina web de start a modulului de inregistrare-
autentificare
new;account).php este apelat in cazul dectarii de erori si afiseaza erorile respective
login.php - implementeaza procesul de autentificare al utilizatorilor , descris anterior.
update;user.php - permite, din cadrul contului personal al utilizatorului , modificarea
de catre acesta datelor personale.
logout.php - realizeaza de-logarea utilizatorilor , in momentul in care acestia apasa
butonul de logout din cadrul contului personal.
).6.& !odulul de interfata al site?ului
Contine totalitatea scripturilor/programelor ce permit,
- comunicarea cu utilizatorul client , constituind o interfata prin intermediul careia
utilizatorul poate naviga prin/vizualiza ierar#ia de produse comercializate de catre
magazinul web.
- punerea la dispozitia utilizatorului a diverselor facilitati ale aplicatiei.
&cest modul mai este denumit si modulul comercial al site-ului
Sectiunea de na%igareG%izualizare a site?ului
4tilizatorul poate naviga prin ierar#ia de categorii de produse existente ,pentru
ca in final sa a'unga la destinatie, pagina unui produs ce prezinta interes .
&stfel in fiecare pagina a acestei sectiuni 7 prin intermediul unui script @ava 7 este
inclusa in partea de sus a paginii , o bara de butoane 7 prin intermediul careia se
poate vizualiza oricand continutul de subcategorii ale fiecarei categorii principale de
produse.
:a plasarea cursorului deasupra butonului @CatalogA, va aparea un meniu cu
toate categoriile, iar apasarea unui buton corespunzator unei categorii va genera
dinamic o noua pagina web, pagina categoriei principale selectate. In cadrul acestei
*J
227448992.doc
pagini ,sunt incarcate din baza de date, din tabela tipproduse, si apoi afisate toate
informatiile despre subcategoriile acelei categorii principale.
1e vor afisa tabelat numele fiecarei subcategorii insotita de poza corespunzatoare ce
descrie grafic subcategoria respectiva.
3fectuarea unui clic pe numele sau poza unei subcategorii afisate va duce la
generarea dinamica a unei noi pagini web3 pagina subcategoriei selectate .
In cadrul acestei pagini , sunt incarcate din baza de date , din tabela produse , si apoi
afisate informatiile de baza despre produsele din subcategoria respectiva. 1e vor afisa
tabelat , numele fiecarui produs , pretul , producatorul si poza corespunzatoare
produsului
3fectuarea unui clic pe numele sau poza unuia dintre produsele afisate va duce
la generarea dinamica a unei noi pagini web, pagina produsului selectat.
In cadrul acestei pagini, sunt afisate toate informatiile existente despre produsul
respectiv.
In partea de sus a paginiii sunt incarcate din baza de date , din tabela produse , si
afisate , poza produsului $de dimensiune medie%, numele, pretul, producatorul si
descrierea produsului.

1cripturile .C. care implementeaza aceasta sectiune sunt urmatoarele,
main.php - genereaza pagina de start a aplicatiei , in cadrul careia sunt puse la
dispozitia utilizatorului facilitatile generale ale site-ului . (easemenea , incarca din
baza de date si apoi afiseaza in cadrul acestei pagini de start - informatiile de baza si
pozele corepunzatoare acelor produse - ce ocupa in ordine , primele cinci locuri in
cadrul topului de produse cele mai bine vandute si cele mai noi.
%izualizare.php 7 genereaza dinamic cpagina unei categorii/subcategorii principale de
produse], descrisa anterior, afiseaza produsele in functie de nevoile utilizatorului si
incarca din baza de date , din tabela caracteristici, si afiseaza tabelat valorile tuturor
caracteristicilor te#nice ale unui produs
main).php genereaza dinamic celelalte sectiuni ale site-ului, suggestionsB newsB
contact si citeste din baza de date in functie de lin-ul apasat.
mainmenu.php genereaza menu-ul de butoane afisat in fiecare pagina
Sectiunea de facilitati ale site?ului
:a nivel de site sunt disponibile urmatoarele facilitati,
@mareste imagineaA - permite afisarea pozei de dimensiune mare , a produsului.
:a apasarea acestui buton este executata o functie @avascript care
DB
227448992.doc
0. creaza o noua fereastra si apoi
). lanseaza in executie un script .C. ce va incarca din baza de date si ulterior
afisa in aceasta fereastra , poza $de dimensiune mare% a produsului .

ctrimiterea instant a ofertelor]
(upa cum s-a aratat anterior , un utilizator - in cadrul procesului de inregistrare sau
ulterior din cadrul contului personal 7 are posibiliatea de a-si configura/reconfigura
optiunile de trimitere a acestor oferte prin e-mail.
1criptul .C. care implementeaza @Sectiunea de facilitati ale site?uluiA , este,
searc9.!9! 3 %crip" ce impleme*"ea/a la *ivel de c$d 2avaScrip" (acili"a"ile
5mare%"e ima+i*ea6 de%cri% a*"eri$r.
).6.6 !odulul de preluareHprelucrare al comenzilor de la utilizator
&re un dublu rol , pe de o parte permite pastrarea optiunilor de produse pentru
care a optat utilizatorul , in diverse momente ,in decursul procesului de cumparare si
in acelasi timp permite preluarea si prelucrarea in conditii de securitate , a comenzii
finale de cumparare lansata de catre utilizator .
Adaugarea unui produs in cosul de produse
.rocesul de cumparare , incepe la nivelul paginii produsului , in mometul in
care userul adauga produsul respectiv la cosul de produse , activand butonul cAdd to
cart].
:a apasarea butonului cadd to cart] este apelat scriptul cscriucart.p#p] care realizeaza
urmatoarea operatie,
-daca produsul este pentru prima oara introdus in cosul de produse , atunci se
interog#eaza baza de date pentru a afla nume si pretul produsului.
/izualizarea cosului de produse

D0
227448992.doc
In partea superioara a fiecarei pagini web ,generata din cadrul modulului
comercial al site-ului , sigla cosului de produse 7 lin catre pagina de vizualizare
rapida a cosului de produse .
.rin efectuarea unui clic pe sigla cosului 7 este apelat scriptul cviewOcart.p#p] care
va afisa tabelat ,in cadrul unei pagini web, continutul cosului de produse si pretul total
in 41(. .entru fiecare produs din cos , sunt afisate numele, pretul in 41( si
cantitatea in care produsul a fost ac#izitionat.

'reluarea comenzii de cumparare
:ansarea comenzii de cumparare a produselor se poate face din cadrul paginii
de vizualizare a cosului de produse , prezentate anterior, prin actionarea
butonului @ContinueA.
(aca comanda de cumparare este lansata de catre un utilizator atunci are loc preluarea
si prelucrarea comenzii sale de cumparare. &cest proces are loc in * pasi,
'as1. 4tilizatorului i se cere sa aleaga dintr-un dropbox tara de destinatie $prin
apelarea scriptului countr9;select.php%.
'as). (upa selectarea tarii, va apare afisat tabelat o lista cu transportatori, taxele de
transport si in cate zile va a'unge produsul la destinatie, in functie de tara selectata. In
dreptul fiecarei optiuni este un buton de tip radio prin care user-ul selecteaza
transportatorul si metoda de transport dorita.
'as&. Ii se cer utilizatorului date despre destinatia pac#etului $nume, prenume, oras,
adresa, numar de teleon si cod postal%.
'as6. 4tilizatorului i se vor afisa tabelat produsele, transportatorul si costurile de
transport, adresa de destinatie si costurile totale.
'as7. Aalidarea platii se va face prin intermediul unui site specializat.
'relucrarea comenzii de la utilizator
In momentul in care utilizatorul apasa lin-ul @DoneAB comanda si datele
tranzactiei sunt introduse in baza de date. (upa primirea confirmarii de plata,
comerciantul poate livra produsele la adresa specificata.

!odulul de preluareHprelucrare al comenzilor de la utilizator este implementat de
urmatoarele scripturi .C.,
D)
227448992.doc
scriucart.php - permite adaugarea unui nou produs, la cosul de produse.
%iew;cart.php - permite vizualizarea cosului de produse si deasemenea modificarea
continutului cosului de produse .
countr9;select.php - implementeaza pasul 0 din procesul de preluare a comenzii
lansate de catre un utilizator prin apelarea tabelei transportatori.
destination;select.php - implementeaza pasul > din procesul de preluare a comenzii
lansate de catre un utilizator .
tranzaction;details.php - implementeaza pasul ? din procesul de preluare a
comenzii lansate de catre un utilizator .
done.php - introduce datele tranzactiei in baza de date in tabela tranzactie.
).6.7 !odulul de comunicare cu utilizatorii
&cest modul implementeaza o facilitate suplimentara, care vine in spri'inul
utilizatorului, asigurand buna comunicare intre comerciant si clienti, dezbaterea si
rezolvarea problemelor acestora si nu in ultimul rand contribuind la formarea si
dezvoltarea unui cerc de clienti fideli care apreciaza calitatea produselor
comercializate.
Comunicarea cu utilizatorii- clienti este asigurata prin trei mecanisme,
Sectiunea de sugestii - constituie o modalitate de comunicare directa intre
comerciant si utilizatori .
'agina de contact - ofera informatiile necesare pentru realizarea contactului direct ,
intre utilizatori si comerciant.
Sectiunea de sugestii
Constituie un mecanism modern de comunicare, ce ofera posibilitatea
utilizatorilor de a-si exprima opiniile si ideile proprii, de-a intra in contact si a
sc#imba informatii, nu numai cu partea reprezentata de comerciant, dar si cu ceilalti
utilizatori 7 clienti ai magazinului virtual .
1ectiunea este pastrata in baza de date in tabela guest.
1ectiunea sugestii este constituit din urmatorul script,
suggest.php - genereaza dinamic pagina unde pot fi introduse username-ul $in cazul
in care nu este logat% si textul sugestiei, si apar tabelat sugestiile aprobate de admin .
D>
227448992.doc
Capitolul &. 0+emplu de rulare
'rezentare generala a site?ului
8enu-ul principal este alcatuit din * butoane, Come, Catalog, 1uggestions,
!ews, Contact, iar optiunea Catalog contine * subcategorii, Coolers, Case 8odding,
6an Lrill, ;t#ers, 1oftware.

Come duce utilizatorul in pagina principala, Catalog prezinta optiunea de
browsing prin produse, fiecare subcategorie al VCataloguluiW prezentand o cate o parte
din produsele oferite spre vanzare. (e exemplu prima sectiune, cea de coolere prezinta
alte ) subcategorii, .rocessor cooling si Case cooling, fiecare la randul ei prezentand
produse insotite de poza cu posibilitatea prin simplu clic pe poza de a fi marita intr-o
noua pagina. 6iecare produs, in afara de poza, mai prezinta si numele produsului
$.roduct !ame% si pretul $.roduct price%, apoi o prezentare scurta a produsului
$.roduct description%. (edesubt o caseta permite utilizatorului sa introduca numarul
de bucati ale respectivului produs pe care le doreste sa le ac#izitioneze, iar apoi prin
apasarea butonului din dreapta casetei cumparatorul le introduce in cos $&dd to cart%.
D?
227448992.doc

In meniul principal mai intalnim si un buton unde utilizatorii pot scrie sugestii
$1uggestions%, un buton pentru stiri $!ews% si un ultim buton care directioneaza
utilizatorul spre o pagina unde poate afla cum poate fi contactat cel care vinde
produsele $adresa, telefon, fax, e-mail%.
In cadrul site-ului mai exista o caseta ce foloseste al cautare rapida a unui
produs in baza de date $`uic searc#%.
In partea din stanga exista ) menu-uri, unul continand topul primelor * produse
vandute si al doilea cel mai cautat produs $1ales "op * si 8ost 2anted%.
D*
227448992.doc

&ceste ) meniuri raman in pagina tot timpul browserii site-ului.
In pagina principala mai intalnim un menu denumit !ew .roducts si care se
refera la cele mai noi produse introduse in oferta.

!odalitatea de cumparare
4n client care doreste sa ac#izitioneze un produs trebuie mai intai sa se
log#eze, folosind sectiunea de :ogin. In partea dreapta intalnim un menu pentru
logarea utilizatorului. &cesta trebuie sa tasteze un nume si o parola in cazul in care are
de'a un cont facut sau, in cazul in care nu are, trebuie sa isi faca un cont nou. &cesta
poate fi facut prin apasarea butonului !ew 4ser din menu.
DD
227448992.doc

=utonul !ew 4ser duce intr-o pagina unde celui care doreste sa isi creeze un
cont i se va cere sa precizeze un nume de cont, o parola si ceva date personale, cum ar
fi numele si prenumele, adresa, un numar de telefon, e-mail, tara de origine sau data
de nastere.

DF
227448992.doc
(upa autentificarea $logarea% userului, acesta poate cauta produsul $produsele%
dorit prin folosirea menu-ului principal, apoi, in cazul in care isi doreste sa il
ac#izitioneze va introduce in cos $&dd to cart%. Aa apare un mesa' care va atentiona ca
a fost introdus un nou produs in cos.

&poi se va desc#ide o noua pagina ce precizeaza tabelat continutul cosului,
numele produselor ce au fost adugate in cos, pretul si numarul de bucati al fiecaruia,
precum si pretul total fara taxe de transport.

.rin apasarea lin-ului cContinue], cumparatorului i se va cere in continuare sa
precizeze tara de destinatie, iar apoi, in functie de tara aleasa, userul va trebui sa
DH
227448992.doc
aleaga din una sau mai multe companii de transport. &cestuia i se precizeaza atat
costul, cat si durata de timp in care produsele vor a'unge.

In cazul in care nu se selecteaza nici o companie de transport va apare un mesa'
care va cere utilizatorului sa aleaga o companie $Vdou must c#oose a transport
companIW%.
:a urmatorul pas cumparatorului i se va cere sa precizeze cateva date ce vor
facilita transportul, date cum ar fi adresa, nume, prenume, cod postal si, optional,
numarul de telefon.

In urma completarii acestor date, userul va putea sa treaca la urmatorul pas,
unde ii vor fi prezentate intr-un tabel toate datele $numele produsului, numarul de
DJ
227448992.doc
bucati, pretul fiecaruia, compania de transport, numele, prenumele, adresa% si costul
total cu tot cu taxe de transport.
In acest moment cumparatorul poate trece $prin apasarea unui lin% la o pagina de
verificare a card-ului $www.)c#ecout.com, www.paIpal.com% unde va efectua plata
comenzii.
"rebuie precizat ca utilizatorul are oricand optiunea sa revina la pasul anterior din
cadrul cumpararii prin simpla apasare a lin-ului cCancel].
FB
227448992.doc
Concluzii
In ultimii ani prezenta unei firme pe internet a devenit o c#estiune la ordinea
zilei, pentru unele din ele fiind c#iar o necesitate. Costurile relativ mici $si in continua
scadere% au permis c#iar si firmelor mici sa aiba site-ul propriu. (upa realizarea site-
ului, in care firma se prezenta si isi descria oferta de produse si servicii, aparea
imediat nevoia de a le face publice. &stfel, maretingul a fost rapid extins si adaptat
c#estiunilor specifice sectorului internet.
"rebuie mentionat ca toate acestea au fost posibile datorita extinderii
internetului si in sectorul utilizatorilor $surfer-ilor%, fara acestia site-urile pierzandu-si
din importanta. "otodata a crescut spectaculos si numarul de calculatoare conectate la
internet prin sistemul clasic $dial-up%. In aceste conditii lumea virtuala a internetului a
devenit o realitate ce tinde c#iar sa se substituie metodelor clasice de a afla informatii,
de a comunica, de a vinde/cumpara, etc.
In acest sens, aplicatia dezvoltata 7 constituie o solutie moderna si viabila
pentru pentru implementarea unui magazin virtual ,ce are ca obiectiv comercializarea
on-line a produselor sale.
=aza de date proiectata si utilizata este una relationala continand )> de tabele,
cu o structura complexa si intre care exista legaturi complexe . 1-a acordat o atentie
deosebita proiectarii bazei de date , astfel incat organizarea informatiilor sa fie cat
mai logica si accesul la date sa se faca intr-um mod optim .
In total au fost scrise peste JB de programe-script .C. si cateva programe-
script @ava1cript impartite in cinci module functionale 7 care conlucreaza impreuna,
intr-un mod integrat, la buna functionare a site-ului.
(e asemenea s-a acordat atentie aspectului grafic al aplicatiei , prin folosirea de
cod C11 intercalat in cadrul programelor-script si prin folosirea unor aplicatii
specifice pentru prelucrareaa grafica a imaginilor utilizate.
8odulul de administrare al aplicatiei 7 prin dimensiunile si complexitatea sa 7
poate fi considerat ca un site-web de sine-statator, fiind implementat prin nu mai putin
de ?B de scripturi .C. si alte cateva scripturi @ava1cript.
8odulul de autentificare al utilizatorilor 7 ofera prin mecanisme specifice
securitatea necesara procesului de comercializare a prodeselor.
8odulul de interfata al aplicatiei - ofera multiple modalitati de acces la
informatiile si datele din cadrul site-ului, punand de asemenea la dispozitia
utilizatorului o serie de facilitati speciale.
F0
227448992.doc
8odulul de comunicare cu utilizatorii 7 a fost dezvoltat , in ideea de a de a
imbunatati complexitatea contactului intre comerciant si clienti , de a capta reactiile de
feed-bac de la utilizatori si nu in ultimul rand pentru a contribui la formarea si
dezvoltarea unui cerc de clienti fideli care apreciaza calitatea produselor
comercializate.
8odularizarea aplicatiei - a condus la o structura flexibila a site-ului , fiind
posibil astfel ca si alte componente ale aplicatiei 7 sectiuni ale celor cinci module
principale, sa fie adaugate ulterior 7 in procesul de dezvoltare a aplicatiei.
"endinta continua de orientare a proceselor de comert si business catre Internet
duce la o crestere a dezvoltarii si utilizarii aplicatiilor de comert electronic si e-
business.
1e constata o scadere a duratei de proiectare si implementare ale aplicatiilor e-
business, datorata n principal necesitatii oportunitatilor de afaceri de a patrunde ct
mai rapid pe piata. 1caderea duratei de ciclului de dezvoltare are consecinte negative
asupra procesului de realizare a aplicatiilor n cazul n care nu se acorda o atentie
sporita procesului de asigurare a calitatii.
&paritia noilor te#nologii conduce la realizarea de aplicatii de comert electronic
si e-business de calitate superioara si cu o fiabilitate ridicata.
F)
227448992.doc
Iibliografie
Manualul de referinta PHP , editia 2002
8anualul de referinta 8I1`: >.)>.>H
8anualul de referinta @ava1cript 0.>
Programarea in Web - Kris Jamsa , Steve Weakley, Editura !! Edu"ation,
#$$$
(ezvoltarea aplicatiilor 2eb folosind .C. ? - =ill 8cCartI, 3ditura "eora, )BB)
8I1`: - .aul (u=ois, 3ditura "eora, )BB0
Initiere in @ava1cript si te#nologiile !etscape 7 (an 1omnea,3ditura "e#nica, 0JJH

1pecificatia de referinta pentru C11-level0,pusa la dispozitie pe www.w>.org
(ibac#i, -#onda 7 "esting e-commerce, 1oftware "esting E `ualitI
3ngineering, 0JJJ
3verett, @errI 7 1oftware "esting Cits t#e =ig "ime, I=8, )BB)
L#ilic-8icu, =ogdan, 1toica 8arian 7 e&ctivitatile n societatea informationala,
3ditura 3conomica, =ucuresti, )BB)
Cawnis, @o#n :. 7 2#at]s e-businessR, 3-=usiness &dvisor 8agazine,
0JJJ
CaIes, :inda L. 7 "esting (istributed &pplications, 4nraveling t#e 2eb, 0JJD
Ivan, Ion, .ocatilu, .aul7 "estarea software orientat obiect, 3ditura Inforec,
F>
227448992.doc
=ucuresti, 0JJJ
Ivan, Ion, .ocatilu, .aul, 1inioros, .anagiotis 7 "estarea aplicatiilor e-business,
:ucrarile 1impozionului 1I8.3C, =rasov, )BBB
_e#lenbec, &xel 7 Colistic testing of 2eb &pps is !eeded, 1oftware "esting
E `ualitI 3ngineering, 0JJJ
8cLregor, @o#n (., `ualitI &ssurance, &n overview of testing, @ournal of
;b'ect -;riented .rogramming, 0JJF
1amaroo, &ngelina, &llot, 1teve, Cambling, =rian7 3-ffective testing for 3-
commerce, 0JJJ
1#ea =illie 7 &voiding 1calabilitI 1#oc, 6ive 1teps to 8anaging t#e
.erformance of 3-business &pplications, 1oftware "esting E `ualitI 3ngineering,
)BBB
1in#a, Lun'an 7 =uild a Component &rc#itecture for 3-Commerce, 3-=usiness
&dvisor 8agazine, 0JJJ
F?

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