Magazinul Online
Universitatea din Oradea
Facultatea de Stiinte
Programul de studiu: Informatica
Forma de Invatamant: cu Frecventa
LUCRARE DE LICENTA
Coordonator stiintific:
Lector Univ.Dr. Marian Degeratu
Absolvent:
Stoian Doru Ionut
Oradea
2016
UNIVERSITATEA DIN ORADEA
FACULTATEA DE STIINTE
PROGRAMUL DE STUDIU: INFORMATICA
FORMA DE INVATAMANT: CU FRECVENTA
MAGAZIN ONLINE
COORDONATOR STIINTIFIC:
LECTOR UNIV. DR. MARIAN DEGERATU
ABSOLVENT
STOIAN DORU IONUT
ORADEA
2016
CUPRINS
CAPITOLUL I – NOTIUNI INTRODUCTIVE
1.1 Argumentarea lucrarii
1.2 Prezentarea aplicatiei
CAPITOLUL II – APLICATII SI TEHNOLOGII WEB
2.1 World Wide Web (WWW)
2.2 Solicitarea informatiilor via URL
2.3 Server Baze de Date si Server web
2.4 HTTP – HyperText Transfer Protocol
2.5 CSS si HTML (Hyper Text Markup Language)
2.6 Limbajul de programare PHP
2.7 Baze de date MySQL si PhpMyAdmin
2.8 Securitatea magazinelor online
CAPITOLUL III – MODELAREA APLICATIEI MAGAZIN ONLINE
3.1 UML – Unified Modeling Language
3.2 Aplicatia ,,Magazin Online”
CAPITOLUL IV – CONCLUZII
BIBLIOGRAFIE
CAPITOLUL I – NOTIUNI INTRODUCTIVE
1.1 Argumentarea lucrarii
Tehnologia are un rol foarte important in cadrul comertului de bunuri si servicii. Conexiunea la retelele de Internet si calculatoarele faciliteaza desfasurarea de acte comerciale la o scala mult mai mare, pe distante mari cu o viteza ridicata. In general agentii economici si persoanele fizice contracteaza cele mai avantajoase oferte prin intermediul retelei de Internet.
Aplicatia ,,Magazin Online” a aparut datorita necesitatii de a putea vinde produse si servicii si in mediul online. Aceasta decizie a fost luata in urma mai multor teste efectuate de catre firme de specialitate. O astfel de cercetare potrivit Ziarului Financiar, afirma faptul ca in Romania comertul electronic a crescut in ultima perioada cu aproximativ 35-40%. In urma acestor cercetari a luat nastere aplicatia ,,Magazin Online”, o aplicatie scrisa cu ajutorul mai multor limbaje de programare, printre care cele mai importante sunt: PHP, HTML, CSS si Javascript iar pentru baza de date a acesteia: MySQL cu interfata PMA (PhpMyAdmin).
Lucrarea de fata are in componenta sa doua segmente majore: partea teoretica de implementare si fundamentare a aplicatiei care constituie suport pentru partea aplicativa, iar partea a doua cuprinde aplicatia ,,Magazin Online”. Este necesara instalarea unui sistem de operare pe calculator, pentru ca aplicatia sa ruleze. De asemenea se va descrie limbajul de programare PHP cu ajutorul caruia este programata aplicatia de gestiune. Utilizarea serverului xampp pentru urcarea aplicatiei pe internet. Aplicatia ,,Magazin Online” ofera posibilitatea de a gestiona tranzactiile comerciale realizate, evidenta produselor care se afla in stoc, a preturilor corespunzatoare si a statusului de derulare a intregii tranzactii.
Putem afirma faptul ca intre viata economica si cea informatica exista un grad ridicat de complementariatate, intre acestea existand o stransa conexiune.
1.2 Prezentarea aplicatiei
Aplicatia ,,Magazin Online” este o necesitate in zilele noastre, deoarece piata din mediul online este in continua crestere. Aceasta este o aplicatie cu un grad ridicat de securitate astfel incat orice tranzactie incheiata prin intermediul acesteia se poate desfasura fara nici o grija din partea utilizatorului si a administratorului. Toate datele din baza de date a acestei aplicatii pot fi accesate doar dupa ce logarea utilizatorului este efectuata cu succes.
Aplicatia ,,Magazin Online” are in componenta sa doua parti, pentru utilizator (Front-End) si pentru administrator (Back-End). Utilizatorul este reprezentat de toate persoanele care vizualizeaza aplicatia (website-ul), iar partea pentru administrare denumita si Back-End-ul aplicatiei este conceputa cu scopul de a adauga, edita sau sterge produse. Utilizatorii aplicatiei denumiti in continuare useri au acces la diferite informatii privind coordonatele produselor dupa ce acestia au efectuat cu succes operatiunea de logare din pagina magazinului virtual.
Schema a ramurilor administrator si user este reprezentata in urmatoarele imagini:
Aplicatia ,,Magazin Online” este o aplicatie simplista, standard care permite gestionarea produselor cat mai simplu de catre administrator. Aceasta fiind dedicata persoanelor care detin o afacere mica si doresc sa isi extinda afacerea si in mediul online. Partea de administrare a acestei aplicatii este securizata, cu username si parola. Prezenta acestor elemente poate furniza administratorului o evidenta mai buna cu privire la eventualii clienti ai magazinului dar si o siguranta in vederea utilizarii aplicatiei.
CAPITOLUL II – APLICATII SI TEHNOLOGII WEB
2.1 World Wide Web (WWW)
World Wide Web reprezinta o relatie intre client si server. Aceasta inseamna faptul ca un navigator web (program client), care ruleaza pe un calculator local cu o conexiune la internet activa, solicita informatii de la un program server care la randul sau ruleaza pe alt calculator cu conexiune la internet activa. Programul server raspunde acestui apel, trimitand prin intermediul internetului informatiile solicitate, acestea la randul lor sunt preluate de catre programul client, interpretate si afisate. In figura de mai jos este prezentat acest proces:
Figura nr. 2 Comunicarea dintre server si browser
Calculatorul local pe care ruleaza browserul web.
O anumita pagina web este solicitata, browserul trimite un mesaj care contine: protocolul de transfer (http://) si adresa URL (Uniform Resource Locator), de exemplu, www.siteweb.ro.
Serverul receptioneaza cererea si returneaza pagina web corespunzatoare adresei solicitate.
Serverul transmite raspunsul la solicitarea primita catre calculatorul local.
Browserul web de pe calculatorul local receptioneaza codul HTML, il interpreteaza si afiseaza.
Calculatorul client
Pentru a putea accesa pagina web, avem nevoie de un calculator client, iar acesta trebuie sa indeplineasca urmatoarele conditii: sa fie capabil sa ruleze un navigator web (browser) si sa aiba o conexiune la internet.
Calculatorul server
Si in cazul calculatorului server sunt necesare cerinte oarecum similare calculatorului client, acestea fiind: capabilitatea de a putea rula un program server web si sa aiba o conexiune la internet.
Un program (software) server web poate sa apara si sub denumirea de HTTPD (HyperText Transfer Protocol Daemon). Daemon reprezentand un program care fara a produce un rezultat vizibil ruleaza in background.
Totusi un server are nevoie de o conexiune la internet mult mai buna decat un client, el fiind conectat la internet printr-o conexiune dedicata, foarte rapida si permanenta, dar contrar acestora, serverele nu trebuie sa fie extrem de puternice, deoarece programele server sunt destul de simple ele neconsumand foarte multe resurse. O rol important in buna functionare a unui server reprezinta sistemul de operare care trebuie sa fie unul multitasking, astfel incat calculatorul server sa poate sa raspunda concomitent mai multor cereri. Pentru o viteza mai buna un alt rol destul de important il au dispozitivele de stocare.
2.2 Solicitarea informatiilor prin URL
Conexiunea dintre client si server nu este mentinuta permanent, aceasta este intrerupta imediat ce solicitarea a fost efectuata. Ea este restabilita in momentul in care se transmite raspunsul dupa care este din nou intrerupta. Acesta este un proces repetitiv care are loc ca o interactiune dupa modelul cerere-raspuns. Solicitarea de informatii a browserului se face prin forma unui URL (Uniform Resource Locator), aceasta reprezentand locatia sau adresa paginii.
Un URL are forma http://www.siteweb.ro/pagina/. Prima parte a URL-ului ,,http://” indica faptul ca solicitarea navigatorului web se realizeaza prin protocolul http, a doua parte ,,www.siteweb.ro” reprezinta numele domeniului de pe serverul interogat iar partea finala ,,/pagina” este calea de pe server catre fisierul solicitat.
URL-urile pot face referinta la o multitudine de servicii disponibile sau nu pe internet: pagini web, FTP, Telnet, Usenet, Gopher sau alt fisier din calculatorul propriu.
Portiunea din URL care desemneaza numele domeniului poate sa includa si un numar de port, ca si in exemplul urmator:
http://www.siteweb.ro:80/director/fisier.html
In acest fel se da comanda serverului sa acceseze site-ul pe un anumit port. Portul implicit definit in specificatiile http, este portul 80. Acesta este implicit asignat chiar daca nu este specificat.
Paginile web au in mod uzual, extensia .php, .htm sau .html care indica faptul ca pagina contine cod PHP sau HTML. Majoritatea paginilor in special pagina ,,home-page”, nu necesita specificarea in URL a caii catre aceasta, URL-ul acestora fiind sub forma:
http://www.siteweb.ro
Adresa aceasta acceseaza o pagina din directorul radacina, de aceea nu este necesara specificarea unei cai. Marea majoritatea a serverelor stabilesc implicit pagina principala cu un nume rezervat, precum ,,index.extensie” sau ,,default.extensie”, in cazul in care nu este mentionat in URL numele paginii, serverul returneaza automat aceste pagini.
URL-urile pot sa indice si alte tipuri de documente sau extensii decat pagini PHP sau HTML, de exemplu ,,http://www.siteweb.ro/logo.png” care va afisa o imagine PNG.
2.3 Server Baze de Date si Server web
Browserul (navigatorul client) apeleaza serverul printr-o solicitare alcatuita din mai multe parti: protocol, adresa, cale si numele fisierului. Din prima parte reprezentata prin protocol browserul determina modalitatea in care acesta urmeaza sa interactioneze cu serverul, ulterior acesta face ,,apelul” catre adresa continuta in URL iar la final asteapta raspunsul de la server.
Serverul dupa ce receptioneaza cererea, va verifica URL-ul pentru a putea determina protocolul conexiunii. Acesta determina de asemenea si calea respectiv fisierul solicitat, iar la final trimite datele catre programul client utilizand protocolul curent.
Dupa ce navigatorul receptioneaza informatiile de la server le interpreteaza si le afiseaza intr-o maniera adecvata.
In prima faza se pare ca serverul are mult mai putine operatii de realizat decat navigatorul web, si, in cazul unei tranzactii simple precum o vizualizare a unei pagini web, acest lucru este foarte probabil adevarat, dar cu toate acestea sarcina serverului nu este chiar atat de usoara ea fiind mult mai complicata decat pare la prima vedere.
In cazul in care apare o eroare, de exemplu o solicitare pentru o pagina care nu exista pe server, acesta trebuie sa trimita la client un mesaj de eroare adecvat. Daca solicitarea necesita rularea unui program CGI pe server acesta trebuie sa incarce programul respectiv si sa il ruleze. Acest proces, presupune crearea unei pagini HTML care contine rezultatele programului, acestea fiind trimise ulterior catre navigator.
Fiecare fisier transmis de server este identificat dupa tipul acestuia si ulterior sa ii fie atasat un antet corespunzator MIME (Multipurpose Internet Mail Extension) astfel incat browserul web (navigatorul) sa stie care sunt operatiile pe care acesta trebuie sa le realizeze cu datele primite. O pagina web in mod uzual contine un amestec de text formatat, sunete, imagini sau chiar clipuri video; fiecare din acestea sunt identificate corespunzator, in caz contrar browserul web nestiind cum sa interpreteze datele receptionate.
Serverele includ facilitati pentru criptarea datelor care reprezinta o parte importanta din timpul total de lucru al serverului.
S-a folosit aplicatia XAMMP (versiunea de Windows) pentru instalarea unui server web, aplicatie care are in compozitia sa: PHP, limbaj cu ajutorul caruia programatorul poate crea diferite scripturi, Apache, serviciu necesar pentru a gazdui o aplicatie web dar si serviciul MySQL care este necesar pentru baza de date.
Pentru ca aplicatia sa poata rula s-au activat si alte module, precum cutl. Configurarea acestuia a fost facuta din fisierul php.ini prin adaugarea unei noi linii: extension=php_curl.dll
Pentru a putea rula cu succes aplicatii pe acest server s-a luat in calcul minimul de cerinte ale sistemului, minim recomandat de catre producator: 2048 MB Ram, 4096 MB spatiu liber pe HDD si Win2k, Windows 2003, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1 sau Windows 10.
2.4 HTTP – HyperText Transfer Protocol
HyperText Transfer Protocol sau HTTP a fost proiectat pentru a fi simplu, rapid si cu un anumit caracter de securitate. Conexiunea dintre un navigator client si un server trebuie restabilita la fiecare transfer de date, ea fiind temporara.
Specificatiile HTTP incorporeaza metode care sunt utilizate pentru a putea executa sarcini asociate unui site web, incluzand cautare, actualizare si recuperare de informatii.
Precum am mentionat anterior, mesajele sunt transmise similar cu cele din Internet Mail (MIME – Multipurpose Internet Mail Extensions); gateway-urile permit browserelor sa solicite executarea unor aplicatii CGI pe server, iar comunicatia fiind posibila cu alte protocoale, cum ar fi FTP, SMTP, NNTP.
Una dintre cele mai interesante tehnologii existente este cu siguranta limbajul de programare PHP, imbinand unele dintre cele mai complexe caracteristici cu simplitatea de utilizare, limbajul de programare PHP a devenit foarte rapid un instrument foarte important pentru dezvoltarea aplicatiilor web. PHP spre deosebire de alte limbaje de programare, este un limbaj de programare care poate fi utilizat atat de catre programatori incepatori cat si de catre cei avansati fiind un limbaj comod, acesta permitand programatorilor de a crea aplicatii web statice si dinamice.
O alta caracteristica importanta a acestui limbaj de programare, este faptul ca se poate rula pe un server web si nu browser, precum Javascript; in consecinta, acest limbaj poate obtine accesul la fisiere, baze de date, sau la alte resurse de pe acel server inaccesibile Javascript-ului. (sursa: Bill McCarty – ,,PHP 4 Programmer’s Guide”).
HTML-ul tradus prin Limbajul de Marcare al Hipertextului, este un limbaj de programare care da viata pur si simplu aplicatiilor web. El uneste o varietate de elemente precum etichetele sau tagurile, care pot fi utilizate in orice operatie, de la definirea stilului, anteturilor pana la introducerea continutului precum cuvinte cheie, sunete, imagine sau chiar miniaplicatii Javascript.
SQL este un limbaj de programare utilizat de majoritatea programatorilor in lucrul cu bazele de date. Indiferent daca utilizatorul este administrator de baza de date, programator, designer de aplicatii web sau utilizator al Microsoft Office, o cunoastere buna a acestui limbaj reprezinta o parte importanta a interactiunii cu bazele de date.
Cascading Style Sheets sau prescurtat: CSS, este un limbaj cu ajutorul caruia se poate defini cu usurinta un anumit stil sau un layout. De exemplu cu ajutorul CSS-ului se pot modifica sau defini fonturile dintr-o aplicatie, fundalul, marginile si multe altele.
Spre deosebire de limbajul HTML, CSS-ul ne permite sa modelam cu lux de amanunte o fereastra intr-o aplicatie web. Un alt avantaj al acestui limbaj este faptul ca in prezent acesta este suportat de catre toate browserele indiferent daca utilizatorul foloseste sisteme de operare precum Linux, Mac sau Windows. (sursa: Ben Forta – ,,SAMS Teach Yourself SQL in 10 Minutes”).
Diferenta dintre CSS si HTML este ca limbajul HTML este utilizat pentru a structura continutul unei aplicatii web iar CSS-ul pentru a formata acest continut.
In randurile care urmeaza este mentionat unele beneficii pe care le acorda acest limbaj:
Controlul intr-un singur document cu extensia ,,.css” a mai multor structuri.
Aplicarea de elemente diferite: poza, fundal la diferite ferestre din aplicatia web.
Posibilitatea de a controla layouturile cu mai multa usurinta.
2.5 CSS si HTML (Hyper Text Markup Language)
HTML-ul reprezinta un limbaj de programare inteles de catre browserele de internet, creand astfel posibilitatea afisarii paginilor web.
Acest limbaj cuprinde o varietate de comenzi, denumite tag-uri. Semantica unui tag respecta structura urmatoare:
<Denumire Tag>Text(Imagine)</Denumire Tag>
O regula importanta de scriere a acestor taguri este faptul ca acestea nu incep niciodata cu numar si nu contin spatii. Atributele HTML sunt proprietati ale acestor taguri, acestea apar in tagul de la inceput. Daca tagul de la inceput nu contine nici un atribut atunci browserul va lua in considerare valorile implicite ale acestuia.
<html> si </html> – reprezinta tagul radacina, acesta contine toate celelalte taguri si indica navigatoarelor inceputul respectiv sfarsitul documentului HTML.
<head> si </head> – acest tag contine tagurile ,,<title>” si ,,</title>” (acesta contine titlul documentului), tagurile meta si alte taguri pentru stilurile CSS si scripturi. Din toate aceste informatii doar titlul este afisat de catre browser.
Pe langa aceste taguri mai pot sa apara si alte informatii suplimentare utilizate pentru navigatorul web.
<body> si </body> – supranumit si tagul pentru continut, intre acestea este locul unde se adauga continutul afisat in pagina web. Acesta poate sa contina si alte taguri, tot continutul dintre aceste taguri va fi afisat de browser pe ecranul monitorului.
<link /> – acesta poate fi folosit in tagul <head> si are rolul de a include sau a face legatura cu o sursa externa, de cele mai multe ori sursa CSS.
Exista de asemenea mai multe taguri pentru text.
Structura unei pagini HTML se poate scrie prin urmatoarea secventa de cod:
<html>
<head>
<title> ….. </title>
</head>
<body>
<h1>……</h1>
<p>…….</p>
<h2>……</h2>
</body>
</html>
Prin intermediul limbajului CSS se pot crea o multitudine de tipuri de pagini web, cu diferite efecte, astfel CSS-ul este foarte benefic putand stabili anumite caracteristici precum: font, culoare sau marime a unor caractere. Acesta este intr-o conexiune stransa cu HTML-ul, ajutand la organizarea informatiei din pagina web.
Se poate crea un suport pentru elementele HTML, care ulterior se pot personaliza prin culori, forme si dimensiuni diferite.
Exista doua metode pentru a realiza corespondenta intre CSS si HTML si anume: codul CSS poate fi scris in interiorul sintaxei HTML, sau in exteriorul acesteia. Daca este trecut codul CSS intre tagurile <head> respectiv </head>, atunci toate paginile HTML contin urmatoarele coduri:
<html>
<head>
<title>….</title>
<style type=”text/css”>
…..
Cod CSS
…..
</style>
</head>
</html>
Principalul dezavantaj al acestei metode o reprezinta faptul ca o eventuala schimbare a caracterelor formatate trebuie sa fie operata in fiecare pagina separat, ceea ce face ca munca sa fie deosebit de multa in cazul documentelor de zeci chiar sute de pagini.
Pentru a veni in ajutorul acestui dezavantaj, este recomandat folosirea metodei externe, ceea ce presupune crearea unui fisier text cu extensia .css. In cadrul acestuia nu v-or fi prezente coduri HTML. Inserarea acestui fisier in cadrul documentului HTML se realizeaza prin crearea unei legaturi intre document si fisierul css. Acest lucru poate fi facut intre tagurile <head> respectiv </head> prin sintaxa urmatoare:
<head>
<title>….</title>
<link rel=”stylesheet” type=”text/css” href=”still.css”/>
</head>
Sau prin importarea fisierului css:
<head>
<title>….</title>
<style type=”text/css”> @import url(calea fisierului css)</style>
</head>
Folosind aceste doua sintaxe toate fisierele HTML vor dispune de aceeasi setare specifica in cadrul fisierului CSS.
Intr-o pagina web se pot defini mai multe proprietati de stil:
Font-family, care stabileste o lista cu fonturile disponibile, separate prin virgula.
Font-size, care stabileste dimensiunea caracterelor.
Font-style, cu ajutorul caruia se stabileste tipologia italica a fontului.
Font-stretch, care stabileste modul in care se face editarea, cu caractere expandate sau cu caractere condensate.
Color, cu ajutorul caruia se seteaza culoarea caracterelor.
Background-color, aceasta proprietate stabileste fundalul din spatele caracterelor.
Background-image, care permite stabilirea unei imagini de fundal, specificandu-se locatia sau numele fisierului care contine imagiea (sintaxa background-image: nume/adresa, fisier/imagine).
Text-transform, sintaxa care ajuta la transformarea textului in majuscule sau in caractere mici.
Text-align, utilizat pentru alinierea pe orizontala a textului.
Text-decoration, sintaxa aceasta este utilizata pentru setarea modului de afisare caracterelor care se formeaza ca si hyperlink-uri.
Vertical-align, sintaxa folosita pentru scrierea caracterelor sub forma de exponent sau de indice.
2.6 Limbajul de programare PHP
Limbajul de programare PHP a fost creat in prima faza in anul 1994 de catre Rasmus Lerdorf, initialele PHP provin din englezescul PHP Hypertext Preprocessor. Ulterior PHP a fost preluat de catre The PHP Group.
Limbajul de programare PHP si serviciul WWW (World Wide Web) se afla intr-o stransa legatura, deoarece cu ajutorul PHP-ului sunt create pagini si aplicatii web. PHP este unul dintre cele mai cunoscute, viabile si utilizate limbaje de programare server side si open source, acesta ruleaza pe orice sistem de operare (Mac OS X, Linux, HP-UX, OpenBSD, Windows) si este disponibil pentru o variata gama de web servere. O diferenta intre limbajul de programare PHP si limbajul de programare HTML este ca PHP-ul trebuie sa fie instalat pe calculatorul server iar HTML-ul poate fi accesat de pe orice calculator fara ca acesta sa ,,existe” instalat undeva. Daca in cazul HTML cand calculatorul client solicita un fisier de pe server cu extensia .html, calculatorul server trimitea informatia solicitata iar navigatorul web al clientului o receptiona, interpreta si afisa, in cazul limbajului de programare PHP serverul trebuie sa descifreze codul PHP, sa il interpreteze si ulterior sa genereze o pagina dinamica HTML care sa fie trimisa browserului client pentru afisare.
Cu ajutorul limbajului PHP se pot crea o serie de aplicatii dinamice, acesta fiind limbajul cel mai des utilizat de catre programatori din cauza posibilitatilor pe care acesta le ofera in materie de optiuni si a facilitatilor de utilizare.
In randurile care urmeaza precizam cateva avantaje pentru utilizarea acestui limbaj de catre programatori. Serverul PHP pune la dispozitia programatorilor interfete adecvate pentru aproape toate tipurile de sisteme de gestiune a bazelor de date, precum: Microsoft SQL Server, Postgresql, IBM DB2, Informix, MySQL, Oracle, Sybase. Prin standardul ODBC serverul PHP ofera posibilitatea conectarii la baza de date.
Acesta asigura suport pentru dialoagele de servicii care utilizeaza o gama diversificata de protocoale, precum: FTP, LDAP, HTTP, COM, POP3, IMAP s.a.m.d.
Pentru a procesa texte, limbajul de programare PHP utilizeaza standardul POSIX Extins si expresiile regulate perl. Accesarea, procesarea si transformarea documentelor XML este posibila cu ajutorul acestui limbaj, acest lucru face posibila implementarea modelelor DOM, SAX si a limbajului XSLT.
Limbajul de programare PHP asigura suportul pentru instantierea claselor Java, pentru prelucrarea si generarea imaginilor grafice, coordonarea sesiunilor (realizat cu ajutorul variabilelor tip sesiune si cookie), generarea animatiilor flash si faciliteaza comertul electronic.
Serverul PHP se poate folosi in colaborare cu o gama variata de alte servere precum: iPlanet, ILS, Apache etc., acesta putand fi utilizat pe o gama diversificata de platforme (Mac OS X, Linux, Unix, Windows etc). In unele situatii serverul PHP este inclus ca si componenta a procesorului HTTP. In cazul unui server care suporta CGI (Common Gateway Interface), la randul sau PHP-ul poate sa opereze ca procesor CGI.
PHP-ul poate opera in moduri diferite, in randurile urmatoare prezentam trei modalitati in care acest limbaj de operare poate opera:
Programarea in linie de comanda: In cazul in care este necesara generarea unor scripturi care ruleaza in mod planificat se recomanda acest mod de programare PHP. In acest caz nu este necesar un web server.
Programare pentru server: Pentru a putea face acest lucru sunt necesare trei aplicatii: un browser, serverul web si interpretatorul PHP.
Programarea pentru aplicatiile grafice (Graphical User Interface – GUI). Cu ajutorul limbajului de programare PHP se poate construi interfete grafice pentru clienti, extensia folosita este PHP-GTK.
Limbajul de programare PHP este un produs cu acces la codul sursa (open source). Cand se acceseaza o pagina HTML, serverul pe care aceasta este gazduita trimite browserului pagina HTML iar acesta din urma o afiseaza. Cand o pagina PHP este accesata serverul web genereaza un cod HTML care este vizualizat ulterior de catre browserul clientului.
Scripturile PHP care sunt incluse in codurile HTML sunt executate pe server iar daca se incearca vizualizarea codului sursa la o pagina dinamica, de exemplu o pagina PHP se va rezultatul interpretari codului php respectiv o insiruire de taguri.
In urmatoarea schema prezentam traseul parcurs de codul sursa pana cand acesta ajunge in forma finita la utilizator:
Figura nr. 3 Interogarea si afisarea rezultatelor in browser (sursa: http://www.oriceon.com)
Pentru a realiza aplicatii si pagini web cu un continut dinamic, PHP-ul se poate incapsula in HTML si utilizat in complementaritate cu acesta.
Fisierele PHP au extensia .php, acestea pot fi realizate intr-un document Notepad sau alt editor specializat (ex: Crimson Editor) cu ajutorul caruia se poate tine o mai buna evidenta a numarului de linii, acest lucru fiind extrem de util atunci cand se incearca depanarea scripturilor. Inainte de salvarea dintr-un fisier text intr-un fisier cu extensia php este indicat sa se verifice daca nu exista anumite extensii ascunse, prin debifarea optiunii Hide extensions for known file types disponibila in: My Computer –> Tools –> Folder Options –> View.
Atunci cand PHP parcurge un fisier acesta scaneaza textul pana cand ajunge la una din etichetele speciale care ii semnaleaza acestuia faptul ca trebuie sa inceapa sa interpreteze textul ca pe cod PHP. Dupa ce se ajunge la aceste etichete speciale, se executa codul PHP pana la etichetele de inchidere a acestor etichete, si se reia scanarea fisierului. Datorita acestor etichete se poate ingloba cod PHP in interiorul tagurilor HTML. Prin denumirea functiilor nu se tine cont daca este scris cu litere mici sau cu majuscule, insa denumirea variabilelor facand distinctie intre acestea. Inchiderea unui rand in PHP se face prin utilizarea ,,;”.
Mai jos este prezentat cel mai simplu script PHP:
<?php
echo “Cel mai simplu script PHP”;
?>
Varianta cand in interiorul scriptului este inserat un fisier HTML:
<?php
echo “Cel mai simplu script <b>PHP</b><br>cu etichete HTML”;
?>
Functia echo este utilizata pentru a afisa informatia cuprinsa intre ghilimele. Pot fi inserate alte blocuri de comentarii intre etichetele <html> respectiv </html>.
Limbajul de programare PHP este un limbaj axat pe scripting de partea serverului, cu ajutorul acestui limbaj se poate colecta diferite date din forme, se pot genera pentru paginile web continuturi dinamice si se pot primi sau trimite cookie-uri.
Pe calculatorul utilizatorului stocate sub fisiere de mici dimensiuni exista cookie-urile, acestea fiind definite portiuni de informatii si sunt utilizate de catre browser pentru a identifica utilizatorii sau pentru a pastra urma acestora pe site.
Cookie-urile se pot sterge de catre un utilizator, sau pot fi blocat prin setarile efectuate din browser, asadar utilizarea acestora trebuie facuta cu un grad ridicat de atentie si doar in cazul in care este necesar. Acestea pot cuprinde o cantitate cu limita de informatie iar durata de viata a acestora poate fi limitata (zile, inchierea sesiunii etc) sau nelimitata (pana ce acestea sunt sterse).
Scripturile PHP pot fi utilizate in trei domenii principale:
Script de partea serverului
Acesta este cel mai utilizat domeniu PHP, sunt necesare trei elemente pentru ca scriptul sa poata functiona: analizatorul codului PHP, serverul web si un browser. Softul PHP trebuie sa fie conectat la server.
Script in linia de comanda
Putem obtine rularea unui script PHP fara ca sa existe o conexiune cu un server sau cu un browser. In aceasta situatie se va cere doar utilizarea analizatorului PHP. Este preferat acest mod de folosire a limbajului PHP in cazul scripturilor executate regulat prin cron jobs sau task scheduler (Windows).
Programarea aplicatiilor de birou
Cand vine vorba de crearea aplicatiilor de birou cu o interfata grafica, limbajul de programare PHP nu este chiar cel mai dorit program care poate fi utilizat. Acest caz face referire in special atunci cand sunt programate aplicatii care o sa ruleze pe mai multe platforme.
Precum in alte limbaje de programare si in limbajul de programare PHP avem mai multe variabile. Printre cele mai des utilizate se afla si variabila ,,string”, aceasta apare in cazul unui sir de caractere sub forma de litere sau cifre.
Variabila reprezinta un depozit de date cu un nume si careia i se poate atribui o valoare, aceasta valoare poate fi schimbata de mai multe ori si poate sa fie salvata intr-o baza de date.
Existenta semnului $ in fata sirului de caractere reprezinta o variabila string. Sintaxa unui sir de caractere cu o variabila string este prezentata mai jos:
$denumire_text=”sir de caractere”
Caracterele dintre ghilimele sunt atribuite variabilei string, iar daca atribuim un numar unei variabile string, putem sa renuntam la aceste ghilimele:
$user_id=654
Pentru a afisa o variabila, folosim sintaxa urmatoare:
<?php
$denumire_text=”sir de caractere”
print($denumire_text);
?>
In cazul in care dorim setarea culorii pentru caractere, folosim sintaxa urmatoare:
<font face=\”Arial\” color=\”#000000\”>
</font>
Pentru a evita conflictul de ghilimele, inseram caracterul ,,/” in fata fiecarei ghilimele, in acest fel se vor ignora ghilimelele de catre scriptul PHP. In cazul mai multor grupuri de ghilimele se pot evita aparitia erorilor:
<font face=”Arial” color=”#000000”>Bine ati venit pe site-ul meu!</font>
Cand apare o conditionare in secventa de cod, se va utiliza ciclul ,,while”, acesta va executa o anumita parte din cod, aceea parte care defineste conditionare. Acest ciclu poate fi folosit si atunci cand este nevoie de repetarea unei secvente de cod, nemaifiind necesara rescrierea acestei secvente de cod de mai multe ori.
O alta variabila importanta care arata conditionarea este variabila ,,if”, aceasta este folosita pentru a realiza actiuni diferite in baza rezultatului obtinut prin compararea a doua valori. Daca este satisfacuta conditia care este pusa la variabila ,,if” serverul trece la ramura ,,then”, in caz contrar operatiunea este dirijata spre ramura ,,else”.
IF(‘ceva_1’ == ‘ceva_2’){
‘Ramura THEN’
} else {
‘Ramura ELSE’
}
Prin instructiunea ,,if” se pot compara numere, alte variabile, sau portiuni de text.
Este necesar includerea de cod PHP in fisierele care vor fi furnizate utilizatorilor si acesta trebuie delimitat de restul continutului prin tagul <?php respectiv ?>. Toata informatia care va fi intre aceste taguri va fi interpretata ca si cod sursa PHP.
De cele mai multe ori rezultatul unu scrip PHP este un text simplu care este interpretat ca si cod HTML. De cele mai multe ori PHP returneaza o pagina care ulterior este afisata in navigatorul web.
Prin limbajul de programare PHP se pot accesa mai multe sisteme de gestionare a bazei de date prin intermediul interfetelor de programare cu acces direct sau prin intermediul retelei ODBC. PHP are interfete de acces direct cu diferite baze de date, una dintre cele mai uzuale este: MySQL.
Conectarea la baza de date se face prin urmatoarea sintaxa:
mysql_connect(): cu aceasta functie PHP-ul se conecteaza la baza de date avand urmatorii parametrii: numele utilizatorului si parola si numele serverului. Navigatorul web returneaza in acest caz valoarea TRUE sau FALSE, daca conexiunea a fost stabilita si nu exista nici o eroare sau respectiv daca exista o eroare.
Prin utilizarea functiei mysql_select_db, stabilim baza de date la care ne conectam, aceasta are urmatorii parametrii: identificatorul de acces catre serverul MySQL si numele bazei de date.
Pentru a deschide o conexiune persistenta cu serverul MySQL folosim functia mysql_pconnect(), aceasta poate fi folosita si de alte scripturi care sunt apelate de catre utilizator. In cazul in care PHP primeste o cerere pentru stabilirea unei conexiuni noi, se face o verificare daca nu exista deja o conexiune persistenta identica deschisa iar in caz contrar se creaza o alta conexiune noua. Aceasta conexiune se pot stabili doar daca PHP este executat ca si modul in cadrul serverului web Apache.
Pentru a inchide o conexiune cu serverul MySQL utilizam functia mysql_close(). Aceasta returneaza variabila TRUE daca conexiunea este incheiata cu succes iar in caz contrar variabila FALSE.
Figura nr. 4 Securitatea cu ajutorul serverului XAMPP (sursa: http:// rferdian45.wordpress.com)
Dupa ce serviciile din server sunt instalate, configurate si setate conform nevoilor fiecarui programator, rezultatul final se poate urmari prin accesarea unui fisier cu extensia .php care sa apeleze functia phpinfo. Acest lucru se poate obtine prin accesarea unui fisier existent sau prin crearea unui fisier cu urmatoarea secventa de cod:
<?php
phpinfo();
?>
Rezultatul obtinut in urma executiei fisierului este o imagine cu toata configuratia serverului, de la calea fisierului executat pana la sistemul de operarea care ruleaza pe server sau variabila cookie-urilor care au fost create. In imaginea de mai jos poate fi vizualizat un astfel de exemplu:
Figura nr. 5 Fisier XAMPP
2.7 Baze de date MySQL si PhpMyAdmin
Unul dintre cele mai raspandite limbaje pentru lucrul cu bazele de date este limbajul MySQL, acesta este utilizat de catre administrator de baze de date, programatori sau alti utilizatori; o buna cunoastere a acestuia reprezinta un factor important in lucrul cu bazele de date.
Oricare obiect din cadrul limbajului MySQL are o data (poate fi: o expresie, un atribut, o variabila, o functie sau o procedura stocata care are rolul de a returna o valoare). La aceasta data au fost associate date de tipurile,care servesc definirii valorilor ce pot fi stocate de obiect.
Pentru a definii obiectivul vor trebuii utilizate o serie de elemente caracteristice:
natura datelor sunt cuprinse in obiect(pot fi binare,sub forma de character sau intregi)
dimensiunea valorilor stocare(numarul de bytes necesari pentru a stoca datele)
precizia (se aplica doar in cazul numerelor valorice,precizand un numar de cifre zecimale ce se pot atribuii in cazul oricarui tip de date)
scala (se aplica numai in cazul valorilor numerice,precizand un numar de cifre zecimale ce pot fi acceptate oricarui tip de reprezentare)
In functie de tipurile de date ce sunt atribuite programului MySQL se vor determina valorile ce vor fi acceptate in sistem.In cadrul limbajului MySQL reprezinta diferite tipuri de date: tipuri numerice exacte,tipuri zecimale,tipuri de gen bit,tipuri monetare,tipuri numerice,tipuri sir de caractere,tipuri sir de carcatere unicod si alte tipuri.Intr-un final vom incerca sa abordam pe scurt oricare tip de date utilizat de limbajul MySQL.
Tipuri de date exacte
Datele de tip numeric vor fi folosite in vederea stocarii numerelor corecte. In cele mai multe cazuri SGBD-urile vor accepta o gama de mai multe date de character numeric,fiecare avand roluri diferite de memorare a datelor. Exista o relatie direct proportionala intre marimea domeniului acceptat si dimensiunea spatiului de stocare. Largirea domeniului acceptat necesita marirea volumului spatiului de memorare a datelor. Exista situatii in care vor fi acceptate si numere fractionare sau cele zecimale,dar exista si cazuri in care vor fi acceptate doar numerele intregi. Fiecare tip de date insuseste anumite conditii care pot fi acceptate de SGBD-uri.
Cateva dintre ele vor fi insusite in tabelul prezentat mai jos:
Tabel nr.1 Date de tip numeric (Forta,p.242)
Tipuri de date zecimale
Datele de tip zecimal insusesc valori zecimale cu scala fixa si precizie.Numarul de bytes utilizate pentru prezentarea datelor de tip zecimal depend de acuratetea acestora.Acuratetea are rolul de a mentiona numarul maxim de zecimale premise care pot compune numarul,insusit la pozitia punctului(la stanga de virgule si la dreapta).Precizia in cazul datelor de valoare zecimala ia valori situate intre 1 si 38.Scala este definite prin valori cuprinse intre 0 si valoare preciziei(intr-un final va afisa valoarea 0).Scala arata numarul de zecimale din care este compus numarul.In cele ce urmeaza a fi prezentate vom preciza conditiile necesare pentru ca datele zecimale sa fie acceptate de SGBD:
Tabel nr.2 Date de tip zecimal (Dollinger,p.12)
Date de tip bit
Aceste date pot lua una dintre cele doua valori binare:1 sau 0,sau pot fi nule(null). In aplicatii,ele au rolul de a definii valoare de adevar:true sau false. Datele de tip bit au o reprezentare optimizata in baza de date,bitii fiind organizati din opt in opt bytes. Daca intr-o tabela sunt afisate intre 1 si 8 biti,vor fi grupati intr-un byte. Daca exista intre 9 si 16 biti,vor fi aranjati in 2 bytes. In cazurile cand este acceptata si valoarea nula,spatial alocat memorarii trebuie sa fie mai mare. In tabelul prezentat mai jos va fi evidentiata conditia de functionare a datelor de tip bit care va fi acceptata de SGDB:
Tabel nr.3 Date de tip bit(Dollinger,p.12)
Date de tip monetar
Sunt formate din tipuri de date care sunt folosite pentru definirea valorilor monetare si a unor subdiviziuni ale acestora.
Tipurile de date monetare vor fi de doua feluri:smallmoney si money,iar conditiile stipulate in privinta acceptarii de catre SGBD-uri sunt:
Tabel nr.4 Date de tip monetary (Dollinger,p.13)
Date de tip aproximativ numerica
Acest tip de date insuseste numere cu virgula mobile. Parametrul aferent numarului flotant se pot insusii valori in intervalul 1-53. Pentru configurarea mantisei acesta este echivalentul de biti necesari. Are rolul de a determina stabilirea preciziei si dimensionarea numarului flotant. Aceasta scala de prezentare contine doua subdiviziuni,care sunt semnalate in tabelul de mai jos:
Tabel nr.5 Performantele parametrilor de flotare (Dollinger,p.13)
Datele de tip aproximativ numeric sunt afisate sub forma a doua reprezentari: real sau float. Conditiile pentru ca aceste date sa fie acceptate de SGDB-uri sunt afisate in tabelul de mai jos:
Tabel nr.6 Date de tip aproximativ numeric (Dollinger,p.13)
Date de tip ora si data calendaristica
Aceste date sunt acceptate de toate SGBD-urile. Reprezentarea datelor de tip ora si data calendaristica se pot diferentia in functie de domeniul utilizat. Astfel nu exista modele standard de definire a datelor calendaristice sau a orei.
Datele pentru reprezentarea datei calendaristice pot sa apara sub doua comenzi:
Smalldatetime si datemie,in functie de acuratete. Serverul MySQL va reprezenta valorile sub forma a doi intregi fiecare de cate 4 bytes. Primul intreg este definit de numarul de zile datat perioadei de referinta(intervalul de referinta poate fi 1 ianuarie 1986-31 decembrie 9999). Cel de al doilea intreg insuseste ora din zi in milisecunde care este raportat la miezul noptii. Valorile smalldatetime au o precizie mai mica in afisarea datelor.Sunt utilizate doi intregi,fiecare de cate 2 bytes. Primul intreg corespunde numarului de zile afisat dinainte sau dupa date de referinta (1 ianuarie 1988). Cel de al doilea intreg corespunde numarului de minute care este raportat la ora de la miezul noptii.
Conditiile de reprezentare a valorilor de tip ora si valorilor calendaristice sunt exprimate in tabelul de mai jos:
Tabel nr.7 Date de tip ora si data calendaristica(Forta,p.243)
Date de tip sir de caractere
Sunt datele cel mai des intalnire. Aceste tipuri de date retin siruri de date.Sunt evidentiate doua tipuri de siruri:siruri cu lungime variabila si siruri cu lungime fixa. Sirurile cu lungime fixa sunt evidentiate de datele care sunt prezentate printr-un numar exact de caractere care vor fi precizate in momentul in care s-a creat tabelul cu date. In tabele cu valori fixe nu sunt admise caractere suplimentare.In cadrul tabelelor sunt stocate spatii necesare pentru memorarea informatiilor din tabele.
In cazul sirurilor cu lungime variabila, pot fi stocate informatii cu orice lungime. Lungimea sirului difera in functie de datele introduce in table si in fucntie de SGBD. Sirurile cu lungime variabila au o dimensiune minima fixa. Se vor memora doar datele specificare si absolut nimic in plus. Intre sirurile cu lungime fixa si cele cu lungime variabila exista diferente.
Parametrul aferent sirului de caractere insumeaza valori intre 1 si 8000. Caracteristicile suportate de SGBD pentru datele de modelul sir de caractere sunt prezentate in tabelul de mai jos:
Tabel nr.8 Date de tip sir de caractere (Forta,p.241)
In cazurile in care nu sunt precizate valorile parametrului de atribuire, se considera valoarea standard de 1 pentru variabilele declarate sau cele de atribuire si valoarea 30 functiei cast.
Date de tip caracter unicod
Aceste tipuri de date definesc siruri de caractere unicod care au lungime variabila sau fixa. In situatiile in care parametrul de definire al sirului nu ne este precizat,se va considera valoarea 1 pentru variabilele declarate si cele de atribuire iar valoarea 30 pentru functia cast.
Datele de tip caractere unicod sunt de tipul nchar si nvarchar.Cand datele sunt greu de estimate,sau au variatii mari,este mult mai efficient sa fie de tipul nvarchar.Datele de tip caractere unicorn acceptate de SGBD sunt insusite in tabelul prezentat mai jos:
Tabel nr.9 Date de tip caractere unicod(Dollinger,p.16)
Date de tip sir binary
Tipul acesta de date este neavantajos.Spre deosebire de alte tipuri de date care au un anumit tip de componenta,datele de tipul binary pot avea caractere de diferite tipuri.Aceste caractere pot lua forma imaginilor grafice,a elementelor multimedia,a documentelor text,etc.
Pentru a fi acceptate de SGBD,cerintele caracteristice acestui tip de date sunt prezentate in tabelul urmator:
Tabel nr.10 Date de tip sir de caractere(Forta,p.244)
CAPITOLUL III – MODELAREA APLICATIEI MAGAZIN ONLINE
3.1 UML – Unified Modeling Language
Unified Modeling Language sau prescurtat UML este un limbaj vizual de modelare, acesta nefiind inca un limbaj vizual de programare pentru ca nu dispune de sprijinul semantic si vizual pentru a putea inlocui limbajele de programare. Acest limbaj este destinat specificarii, vizualizarii, documentarii si construirii sistemelor de aplicatii dar are anumite limite referitor la generarea de coduri. Unified Modeling Language imbina cele mai bune practici si tehnici din domeniul programarii, care s-au dovedit eficiente in construirea sistemelor complexe.
Standardul a fost conceput si administrat de catre Object Management Group, acesta fiind un produs in urma a multor ani de munca a mai multor companii cu traditie in domeniul IT, precum: Oracle Corporation, Hewlett-Packard Company, Sun Micro Systems sau IBM Corporation.
In prezent UML nu este doar un simplu limbaj de modelare, este un limbaj universal pentru dezvoltatorii de software din toata lumea. Acesta este succesorul celor mai bune trei limbaje orientate pe obiecte anterioare, precum: Booch, OOSE si OMT. Unified Modeling Language contine unirea a acestor trei limbaje si in plus ajuta la rezolvarea unor probleme de modelare pe care limbajele vechi nu le puteau rezolva.
Exista patru faze extrem de importante in vederea crearii unui produs software, faze dictate in ingineria programarii, precum: analiza solicitarilor clientului, proiectarea sau descompunerea in module mici a intregului proiect pentru a fi implementat cat mai usor, implementarea sau programarea acestuia si testarea sa. In cadrul unui proiect avem implicati mai multe persoane fiecare avand atributii diferite dar complementare celorlalte persoane. Asadar putem distinge mai multe specialitati, cum ar fi: utilizatori, sefii de proiect, proiectantii de sistem, analistii de sistem, programatorii si inginerii de test.
Limbajul de modelare UML este o tehnica des intalnita pentru specificarea, descrierea si documentarea functiilor unei aplicatii in fazele de design. Acesta este un limbaj grafic creat pentru specificarea, vizualizarea, construirea si documentarea sistemelor software, care include designul si structura acestora. Chiar daca UML-ul nu poate garanta succesul realizarii unui proiect acesta constituie o unealta extrem de importanta in vederea realizarii acestuia, reprezentand o colectie ampla de practici ingineresti care pana in momentul de fata sau dovedit de un real succes in modelarea sistemelor complexe. Unul dintre scopurile urmarit de dezvoltatorii acestui limbaj de modelare a fost acela de a crea un set de notatii semantice care sa faca referire la toate tipurile de poriecte arhitecturale, indiferent de domeniu (software, constructii, marketing s.a.m.d.).
Solicitarile tot mai complexe ale unui sistem fac din acest limbaj un factor extrem de important in vederea realizarii unui proiect, UML-ul fiind un limbaj riguros de modelare folosind cele mai bune tehnici. Flexibilitatea acestui limbaj permite modelarea aplicatiilor care utilizeaza orice tip de middleware de pe piata, iar prin faptul ca obiectele si clasele sunt definite precum concepte fundamentale, un model conceput in UML poate relativ usor sa fie implementat in diferite limbaje de tip OOP, precum: Java, C++ sau C#. Trebuie mentionat insa faptul ca putem folosi limbajul UML si pentru a modela aplicatii non-OOP in alte limbaje precum Fortran, Cobol sau Visual Basic.
Instrumentele de design, care ajuta designerii sa ia diferite decizii reprezinta un mijloc foarte important de a creste calitatea si productivitatea rezultatelor designului software. Astfel au aparut pe piata alte uneltele CASE (Computer Aided Software Engineering) dintre care putem distinge ArgoUml, Rational Rose, Poseidon (Gentleware). Cateva motive pentru care ArgoUml aparut in anul 1998 se distinge din multitudinea de instrumente este:
oferta toate mijloacele necesare pentru a creste productivitatea in vederea realizarii de software-uri de tip OOP.
utilizeaza mijloace standard deschise ceea ce reprezinta posibilitatea de colaborare cu alte aplicatii care utilizeaza aceste standarde, printre acestea numerotandu-se in primul rand UML-ul, XML MetadataInterchange (XMI), Object Constraint Language (OCL) si Scalable Vector Graphics (SVG).
este o aplicatie care se bazeaza 100% pe Java, deci se poate bucura de toate calitatile unui software Java.
este in continua dezvoltarea, fiind un produs open-source.
designerii de sisteme complexe nu concep un design in totalitatea sa, astfel ei trebuie sa construiasca partial un design, dupa care trebuie sa il evalueze si eventual sa il modifice pana in punctul in care sunt pregatiti sa extinda acel design partial.
in prima faza sunt generate idei noi care ulterior sunt explorate iar implicatiile lor evaluate.
Partile principale ale UML sunt:
Vederile (View) – acestea surprind aspectele particulare ale sistemului, fiind o abstractizare a acestui sistem, iar pentru construirea acestuia se folosesc un numar ridicat de diagrame.
Diagramele – continutul unui view reprezentat prin grafuri, UML-ul avand noua tipuri de diagrame, care se pot combina pentru a forma toate view-urile unui sistem.
Elemente de modelare – acestea sunt conceptele folosite in diagrame care au o anumita corespondenta in programarea orientata pe obiect, precum: obiecte, mesaje, clase sau relatii intre acestea, cum ar fi: dependenta, asocierea sau generalizarea. Un singur element poate fi utilizat in mai multe diagrame diferite avand acelasi mod de reprezentare cu acelasi inteles.
Mecanisme generale – ele permit introducerea de informatii si comentarii despre un anumit element.
In urmatoarea figura sunt prezentate toate diagramele mentionate in specificatiile UML:
Figura nr. 6 Diagrama UML (sursa. http://www.en.wikimedia.org)
3.2 Aplicatia ,,Magazin online”
Aplicatia ,,Magazin online” are in componenta sa doua parti importante precum partea de administrare dedicata personalului care administreaza aceasta pagina, de unde se poate adauga, edita sau sterge un produs existent si partea utilizatorilor unde utilizatori pot interactiona cu pagina web.
Pentru a putea efectua aceste operatii este necesara autentificarea cu user si parola. Avand in vedere faptul ca un program de lucru adecvat dureaza aproximativ opt ore, s-a luat hotararea de a utiliza o sesiune care sa dureze opt ore, acest lucru fiint realizat cu ajutorul ,,cookie-urilor”, acestea fiind niste fisiere in care sunt stocate date de autentificare ale administrator, precum se poate vedea in urmatoarea secventa de cod:
require ‘test/db.php’;
session_start();
if(($_SERVER[“REQUEST_METHOD”] == “POST”) && ($_POST[“login”]!=””))
{
$username=mysql_real_escape_string($_POST[‘email’]);
$password=mysql_real_escape_string($_POST[‘password’]);
$sql=”SELECT id FROM ‘users’ WHERE ‘email’=’$username’ and ‘password’=’$password’”;
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
$hour = time() + 28800;
setcookie(username, $_POST[‘email’], $hour);
setcookie(password, $_POST[‘password’], $hour);
header(“location: adminLoginServices.php”);
}else{
echo ‘<script>alert(“Usernameul sau parola sunt incorecte!”)</script>’;
echo ‘<script> document.location=”adminLoginServices.php”</script>’;
}
Datele de autentificare se preiau din fisierul de baze de date care este inclus la inceputul scriptului php, in fisierul db.php
<?php
$mysql_hostname = “localhost”;
$mysql_user = “root”;
$mysql_password = “”;
$mysql_database = “magazin_online”;
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)
or die(“Conexiunea la baza de date nu se poate realiza!”);
mysql_select_db($mysql_database, $bd)
or die(“Conexiunea la baza de date nu se poate realiza!”);
?>
Fereastra prin care se face autentificarea cu username si parola sunt optimizate pentru tableta si mobil acestea fiind responsive deoarece in prezent acestea reprezinta o necesitate, traficul de pe aceste dispozitive fiind in continua crestere in fiecare an. Cu ajutorul tehnologiei ,,boostrap” se efectueaza o serie de validari care verifica daca in campul pentru adresa de e-mail este introdusa o adresa de e-mail sau alt tip de date. Acestea se pot vedea in imaginea urmatoare:
IMAGINE
Posibilitatea administratorului de a adauga produse noi, se face prin accesarea de catre acesta a butonului Adauga produs nou.
IMAGINEA 2
Dupa aceasta operatie administratorului i se ofera posibilitatea de a completa un formular la care poate atasa un fisier, modifica pretul produsului, descrierea si cantitatea acestuia.
Tipul formularului este “multipart/form-data”, acesta este prezentat mai jos:
IMAGINEA 3
Sectiunea de cod a acestui formular este:
<form action="addNewItem.php" method="post" enctype="multipart/form-data">
<span class="btn btn-default btn-file">
<input type="file" name="fileToUpload" id="fileToUpload">
</span>
<br><br>
<input style="border: 1px solid #008fd5; width:355px;color:#000" type="text" name = "name"
placeholder="Denumire produs">
<br><br>
<input style="border: 1px solid #008fd5; width:355px;color:#000" type="text" name = "pret"
placeholder="150">
<br><br>
<input style="border: 1px solid #008fd5; width:355px;color:#000" type="text" name = "cantitate"
placeholder="2">
<br><br>
<textarea style="width:48%; resize: none; color:#000 " rows="7" cols="3" name="description"
placeholder="Descriere Produs"></textarea>
<br><br>
<input style = "color:#000" type="submit" value="Adauga Produs" name="submit">
</form>
Daca toate datele sunt introduse corect, dupa accesarea butonului de actiune pe ecran va aparea un mesaj prin care administratorul este instiintat faptul ca produsul a fost adaugat cu succes, dupa aceasta suntem redirectionati catre pagina unde avem produsele listate. Acest mesaj arata ca si in urmatoare imagine:
IMAGINE 4
Sectiunea de cod pentru sincronizarea fisierului urcat pe server si adaugarea produselor in baza de date este prezentata in urmatoarele randuri:
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Verifica daca imaginea nu este fake
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
$uploadOk = 1;
} else {
$uploadOk = 0;
}}
// Verifica daca exista fisierul
if (file_exists($target_file)) {
$uploadOk = 0;
}
// Verifica marimea fisierului
if ($_FILES["fileToUpload"]["size"] > 5000000) {
echo "Poza prea mare";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
$linkpoza = $target_file;
mysql_query("INSERT INTO `products` (denumire,pret,cantitate,descriere,linkpoza) VALUES ('".$_POST["name"]."','".$_POST["pret"]."','".$_POST["cantitate"]."','".$_POST["description"]."','".$linkpoza."') ");
echo '<script>alert("Produsul a fost inserat cu succes")</script>';
echo '<script>document.location="adminLoginServices.php"</script>';
} }
Administratorul paginii web poate sa stearga sau sa editeze un anumit produs din baza de date prin accesarea butonului care indica acest lucru, secventa de cod corespunzatoare editarii produsului este descrisa in randurile care urmeaza:
if ( isset($_COOKIE['username']) && isset($_COOKIE['password']) && ($_GET["delID"] !=""))
{
mysql_query("DELETE FROM `products` WHERE id='".$_GET["delID"]."' ");
echo '<script>alert("Produsul a fost sters cu succes!")</script>';
echo '<script>document.location="adminLoginServices.php"</script>';
}
if ( isset($_COOKIE['username']) && isset($_COOKIE['password']) && ($_GET["eID"] !="")&&
($_POST["Editare"] !="") )
{
mysql_query("UPDATE `products` SET denumire ='".$_POST["denumire"]."', pret =
'".$_POST["pret"]."', cantitate = '".$_POST["cantitate"]."' , descriere = '".$_POST["description"]."'
WHERE `id`='".$_POST["eid"]."' ");
echo '<script>alert("Produsul a fost editat cu succes!")</script>';
echo '<script>document.location="adminLoginServices.php"</script>';
}
Iar secventa de cod pentru stergerea produsului din baza de date este descrisa in randurile urmatoare:
if ( isset($_COOKIE['username']) && isset($_COOKIE['password']) && ($_GET["delID"] !=""))
{
mysql_query("DELETE FROM `products` WHERE id='".$_GET["delID"]."' ");
echo '<script>alert("Produsul a fost sters cu succes!")</script>';
echo '<script>document.location="adminLoginServices.php"</script>';
}
Listarea produselor pentru ambele parti (administrare si utilizatori) este in mare parte similara, partea pentru utilizatori avand in plus afisarea pozei produsului. Aceasta se face prin urmatoare secventa de cod:
if ( isset($_COOKIE['username']) && isset($_COOKIE['password']) && ($_GET["eID"])=="" )
{
while ($rowproduse = @mysql_fetch_assoc($produse)){
$denumireProdDB = $rowproduse["denumire"];
$pretProdDB = $rowproduse["pret"];
$idProdDB = $rowproduse["id"];
$cantProdDB = $rowproduse["cantitate"];
……………….
<td><?php echo $idProdDB; ?> </td>
<td><?php echo $denumireProdDB; ?> </td>
<td><?php echo $pretProdDB; ?></td>
<td><?php echo $cantProdDB; ?> </td>
CONCLUZII
Prin aceasta lucrare am incercat sa demonstrez inportanta utilizarii tehnologiei IT in cadrul
comertului, prin utilizarea comertului electronic. Ca studio de caz s-a ales construirea unui program
pentru un magazine virtual.
Aceasta lucrare are un studio in domeniul programarii online, studiu care a dus la dezvoltarea unei
aplicatii practice utilizand unele platforme deja existente in acest domeniu.
Pentru a realize aplicatia s-au folosit scheme logice bine structurate atat pe partea
administrativa,cat si pe partea de utilizatori. Aceasta aplicatie contine atat ferestre pentru utilizatori
cat si pentru partea de administrare, in care se pot sterge sau adauga produse.
Pentru a-si usura munca,utilizatorul are la dispozitie instrumente in cadrul departamentului IT.
Meniul actual permite realizarea cautarilor in cadrul nomenclaturii de produse, fiind evidentiate
mai multe criterii de cautare.
Butonul de furnizori si produse este un alt element de mare importanta al aplicatiei, in care
utilizatorul poate vizualiza exact cand s-a inregistrat o comanda noua, fiind evidentiate importante
caracteristici ale companiei respective.
Aplicatia include varianta de listare a produselor, aceasta fiind de o importanta deosebita,prin
fatpul ca permite vizualizarea tuturoror produselor cat si realizarea de comparatii intre sortimente si
preturi. In acest sens aplicatia afiseaza un raport pentru fiecare produs in parte,avand un cod fix
atasat tipului de produs si pretului. In cazul anumitor erori aparute in momentul plasarii sau onorarii
comenzii, clientii pot returna produsele, fiind de mare folos identificarea lor cu ajutorul codului.
Pentru angajatii departamentului, raportul zilei este extrem de benefic, fiind evitata lipsa de notarea
evenimentilor si a comunicarii.
Cu ajutorul butonului stare retea, poate fi monitorizata reteaua locala in timp real, butonul fiind
situate in aplicatia Magazin Online.
Pentru a prevenii anumite incidente privind server-ul, prin butonul server, aplicatia include un
raport complex legat de server.
Aplicatia Magazin Online ruleaza pe un server, avand un sistem de operare windows 7, cu un
server numit xampp.Magazin Online,care a fost dezvoltata pentru a permite utilizatorilor o securitate
sporita, precum si inlaturarea dosarelor pline cu facturi, dar nu in ultimul rand poate sa ajute la
monitorizarea statusului unei retele.
Aplicatia este dedicata persoanelor cu experiente in domeniul administrarii unei retele de
calculator, dar nu in ultimul rand se poate utiliza si de persoane care nu sunt familiare cu acest
domeniu.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Magazinul Online (ID: 117594)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
