5 73 Magazin Radescu

10
Conferinţa Naţională de Învăţământ Virtual VIRTUAL LEARNING VIRTUAL REALITY SOFTWARE & MANAGEMENT EDUCAŢIONAL © Dedicată împlinirii a 100 de ani de la naşterea lui Grigore C. Moisil 2006 – ANUL INTERNAŢIONAL UNESCO “GRIGORE C. MOISIL” 1

description

..

Transcript of 5 73 Magazin Radescu

Page 1: 5 73 Magazin Radescu

Conferinţa Naţională de Învăţământ Virtual VIRTUAL LEARNING – VIRTUAL REALITY

SOFTWARE & MANAGEMENT EDUCAŢIONAL

©

Dedicată împlinirii a 100 de ani de la naşterea lui Grigore C. Moisil

2006 – ANUL INTERNAŢIONAL UNESCO

“GRIGORE C. MOISIL”

1

Page 2: 5 73 Magazin Radescu

© Editura Universităţii din Bucureşti Şos. Panduri nr. 90-92, BUCUREŞTI- 050663;Tel.Fax: 410.23.84

E-mail: [email protected] Web: www.editura.unibuc.ro

Descrierea CIP a Bibliotecii Naţionale a României SOFTWARE ŞI MANAGEMENT. CONFERINŢA NAŢIONALĂ DE ÎNVĂŢĂMÂNT VIRTUAL – CNIV 2005 (2 ; 2005; Bucureşti) Lucrările Conferinţei Naţionale de Învăţământ Virtual: ediţia a III-a, Bucureşti, 28-30 octombrie, 2005. Software educaţional/ed:I.Chiţescu, H. Georgescu, V. Preda, … - Bucureşti: Editura Universităţii din Bucureşti, 2005 ISBN 973-737-097-X

Coordonator: Conf. univ. dr. Marin Vlada

2

Page 3: 5 73 Magazin Radescu

Proiectarea unei librării virtuale

Radu RĂDESCU – Universitatea „Politehnica” Bucureşti, [email protected]

Valeriu CIORGAN – Universitatea „Politehnica” Bucureşti, [email protected]

Abstract Magazinul virtual descris în acest articol este construit în limbajul PHP şi se bazează pe modalitatea de plată electronică. Plata prin ramburs este incomodă, deoarece necesită deplasarea la oficiul poştal unde trebuie făcută plata pentru ridicarea pachetului. Modalitatea de plată care se va impune pe viitor este plata prin card bancar. Articolul prezintă în detaliu procedura tehnică de proiectare a unei librării virtuale, precum şi modul de accesare a acesteia de către utilizatori.

1. Introducere Comerţul electronic se poate defini ca fiind o activitate comercială în care o firmă

(comerciant) foloseşte Internetul pentru a-şi prezenta şi vinde produsele către clienţii săi. În general procesul de vânzare-cumpărare on-line se desfăşoară astfel:

• Comerciantul îşi deschide un magazin virtual pe Internet pe care îşi prezintă în

detaliu produsele comercializate. • Cumpărătorul intră pe acest magazin virtual, găseşte produsul căutat şi

transmite o comandă către comerciant, specificând produsele, cantităţile comandate, modalitatea de plată şi adresa de livrare.

• După verificarea veridicităţii datelor din comandă, comerciantul livrează marfa către cumpărător, încasând contravaloarea acesteia, fie de pe cardul cumpărătorului, fie la livrarea produselor sau chiar în avans în unele cazuri.

Deja pe piaţa românească este disponibilă o soluţie web dedicată magazinelor

virtuale numită ePayment prin care se pot procesa plăţi cu card VISA, VISA Electron, Mastercard şi Maestro. Aplicaţia, realizată de GeCAD, poate livra automat codurile de activare sau de acces, poate emite notificări în timp real la aprobarea plăţii.

2. Designul de bază al magazinului virtual Una din regulile în conceperea unei interfeţe utilizator pentru un produs software

este următoarea: o interfaţă utilizator este bine scrisă atunci când programul se comportă exact aşa cum se aşteaptă utilizatorii săi.

3

Conferinţa Naţională de Învăţământ Virtual, ediţia a III-a, 2005 1 of 8

Page 4: 5 73 Magazin Radescu

Această regulă trebuie avută şi la conceperea site-urilor web. Proiectarea magazinului virtual ca site web este dirijată de utilizator (user-centered interface design), iar interfaţa trebuie să mulţumească, să menajeze şi să ajute utilizatorul. În conceperea magazinului virtual, a fost adoptat un design orientat către utilizator. Cum interfeţele utilizator grafice (ex.: Windows) au fost proiectate să ofere utilizatorilor un acces direct dar facil la propriile calculatoare, utilizatorii aşteaptă acelaşi nivel sofisticat dar sugestiv al design-ului şi în cazul site-urilor web.

Pentru a asigura un design orientat către utilizator au fost luate în calcul posibilităţile de navigare prin site, accesul direct şi rapid la informaţii, asigurarea simplităţii, stabilitatea design-ului şi nu în ultimul rând crearea unui conţinut accesibil.

Site-ul web dezvoltat este un magazin virtual care se ocupă cu vânzarea cărţilor. În figura 1 este prezentată prima pagină a site-ului (homepage). Este foarte important ca utilizatorul să aibă acces direct în cât mai multe locuri din site încă din prima pagină. Secţiunile din această pagină sunt: Categorii, Căutare, Noutăţi, Recomandări, Login şi Top 5 vânzări. Aranjarea informaţiilor pe site a fost făcută cu ajutorul unor module care se îşi adaptează automat dimensiunile în funcţie de informaţiile pe care le conţin. Fiecare pagină are pe una din laturi un modul cu lista de categorii şi un alt modul cu formularul de căutare. Pe cealaltă latură sunt prezente modulele Login, Top 5 şi Coşul de cumpărături.

Figura 1. Homepage-ul magazinului virtual

Cea mai importantă problemă de interfaţă în cazul site-urilor de web este absenţa orientării în cadrul organizării locale a informaţiei din acel document. Imaginile clare şi consistente, o privire de ansamblu asupra paginii şi în cazul de faţă o secţiune de categorii ale cărţilor pot da utilizatorilor încrederea că au posibilitatea de a găsi informaţiile dorite într-un mod eficient.

4

Conferinţa Naţională de Învăţământ Virtual, ediţia a III-a, 2005 2 of 8

Page 5: 5 73 Magazin Radescu

Figura 2. Cărţile din categoria beletristică

În figura 2 este prezentată o pagină web care conţine cărţile dintr-o anumită categorie.

Utilizatorii trebuie să aibă întotdeauna posibilitatea de a se întoarce cu uşurinţă la prima pagina a site-ului (acest lucru a fost realizat cu plasarea unui link pe sigla magazinului virtual către homepage) şi la oricare alte puncte importante de navigare prezente în cadrul site-ului. Lipsa legăturilor dintr-o pagină creează confuzie, deoarece utilizatorul nu mai are în ce direcţie să navigheze şi astfel şansele ca el să părăsească site-ul sunt foarte mari.

Secţiuni importante ale navigării în site-ul web realizat sunt paginile de categorii, pagina de rezultate în urma unei căutări, modulul de autentificare şi cel de înregistrare, coşul de cumpărături şi comanda de la casă.

3. Baza de date MySQL O parte din informaţiile disponibile în cadrul site-ului web a fost stocată folosind

baze de date. Toate datele legate de cărţi, categorii, utilizatori şi comenzi au fost stocate în tabele. Baza de date care conţine toate tabelele se numeşte magazin. Cărţile au fost stocate într-un tabel numit books. Lista de categorii a fost stocată într-un tabel numit category cu doar două câmpuri: id de tip întreg, cheie primară şi incrementare automată şi name.

Între tabelele books şi category există o asociere de tipul N:1, realizată prin cheia străină cat (books), care referă cheia primară id (aparţinând tabelului category).

Orice utilizator al site-ului trebuie să se autentifice pentru a putea duce la sfârşit o comandă. Datele necesare autentificării sunt introduse cu ajutorul formularului de înregistrare şi sunt stocate în tabelul users.

5

Conferinţa Naţională de Învăţământ Virtual, ediţia a III-a, 2005 3 of 8

Page 6: 5 73 Magazin Radescu

Tabelul users conţine informaţii necesare autentificării pe site (adresa de e-mail şi parola), necesare livrării unei eventuale comenzi (numele şi adresa) şi date legate de vizitele pe site (data de la care este membru şi data la care a făcut ultima autentificare pe site).

Toate informaţiile legate de comenzi sunt stocate în două tabele: orders şi orders_details. Între tabelele orders_details şi orders există o asociere de tipul N:1, realizată prin cheia străină order_id (orders_details), care referă cheia primară id (aparţinând tabelului orders). Tabelul orders conţine adresa de e-mail a utilizatorului care a făcut comanda, data şi ora la care s-a făcut comanda, totalul în lei al comenzii şi adresa la care va fi livrată comanda.

Tabelul orders_details conţine informaţii legate de cărţile comandate şi de numărul de exemplare. De asemenea, între acest tabel şi tabelul books există o asociere de tipul N:1, realizată prin cheia străină book_id (orders_details), care referă cheia primară id (books).

În figura 3 este prezentată diagrama entitate de relaţii.

Figura 3. Diagrama entitate de relaţii

4. Principalele secţiuni ale magazinului virtual În figura 4 este prezentată diagrama fluxului de date. Lista de categorii, prezentă

întotdeauna în partea stângă, este generată în funcţie de înregistrările din tabelul category. Acest lucru se face printr-o interogare a bazei de date folosind funcţia mysql_query(). Rezultatele sunt apoi prelucrate cu funcţia mysql_fetch_array(), funcţie care returnează un array cu toate înregistrările rezultate în urma interogării.

Link-urile apelează fişierul index.php cu 3 parametri transmişi prin metoda get: page=categ (în cadrul fişierului index.php este inclusă pagina categ.php), id=<valoare> (id-ul categoriei) şi pagina=1 (indică pagina curentă din lista de cărţi).

6

Conferinţa Naţională de Învăţământ Virtual, ediţia a III-a, 2005 4 of 8

Page 7: 5 73 Magazin Radescu

Baza de dateVariabilele de

sesiune

Modul utilizator

Inregistraredate

Dateautenficare

Dateautentificare

Modul navigare

Lista produse

Modul coş de cumpărături

Inregistrarecomanda

Lista cărţi

Id produsId produs

Pagina

coşului de cumpărături

Pagina de comandă

Modulul coş de cumpărături

Pagina de categorii

Pagina decăutare

Modulul de navigare

Pagina deautentificare

Pagina de creare cont

nou

Modulul utilizator

Figura 4. Diagrama fluxului de date

5. Înregistrarea unui nou utilizator Crearea unui nou cont pe site-ul web se face accesând link-ul Cont nou şi

completând formularul de înregistrare. A fost creat un mecanism de verificare şi validare a informaţiilor introduse în

formular, astfel încât la o eroare de procesare câmpurile corecte să îşi păstreze valoarea, iar utilizatorul să fie atenţionat doar pentru câmpurile invalide rămase (vezi figura 5).

7

Conferinţa Naţională de Învăţământ Virtual, ediţia a III-a, 2005 5 of 8

Page 8: 5 73 Magazin Radescu

Figura 5. Crearea contului unui utilizator nou

Dacă un câmp are o valoare invalidă, atunci în partea de sus a formularului, pe un fond roşu, este afişat motivul pentru care câmpul nu a fost validat. În cazul fiecărui câmp invalid, este folosită variabila string err, căreia i se concatenează motivul invalidării pentru fiecare rând în parte. Câmpul adresei de e-mail este câmpul cu cele mai riguroase validări: pe lângă verificarea existenţei unui string, adresa de e-mail este verificată cu ajutorul expresiilor regulate implementate cu funcţia eregi(). Ultima verificare constă în compararea tuturor adreselor de e-mail din tabelul users cu adresa de e-mail curentă. Dacă nu a apărut nici o eroare, atunci se trece la inserarea datelor în tabelul users, folosind comanda SQL insert. Funcţia SQL now(), care returnează data şi ora curentă, este folosită în comanda de inserare a datelor pentru a şti data la care utilizatorul s-a înregistrat pe site.

6. Folosirea sesiunilor în PHP Suportul pentru sesiuni în PHP reprezintă posibilitatea stocării de informaţie

pentru accesări ulterioare. Acest lucru dă posibilitatea programatorului să realizeze aplicaţii web personalizate. Unui utilizator care vizitează site-ul web îi este asignat un id unic, numit id de sesiune (session id). Acest id este fie stocat într-un cookie pe partea de client, fie propagat în cadrul URL-ului.

8

Conferinţa Naţională de Învăţământ Virtual, ediţia a III-a, 2005 6 of 8

Page 9: 5 73 Magazin Radescu

Pentru a porni o sesiune, este necesar apelul funcţiei session_start(). Funcţia trebuie apelată înainte ca orice informaţie să fie afişată în browser. Variabilele de sesiune pot fi accesate în orice pagină din cadrul site-ului web. O variabilă de sesiune se creează astfel:

$_SESSION['user'] = "Ionut"; Dacă se doreşte ca această variabilă să nu mai fie stocată în cadrul sesiuni, atunci

se apelează funcţia unset(): unset($_SESSION['user']); În cazul unei autentificări care s-a realizat cu succes, se folosesc două variabile de

sesiune: una pentru adresa de e-mail şi alta pentru numele utilizatorului. 6.1. Mecanismul coşului de cumpărături În cazul construirii unui magazin virtual, este imperios necesară implementarea

elementelor reale dintr-un magazin, cum ar fi coşul de cumpărături şi casa magazinului unde se plătesc produsele. La baza realizării coşului de cumpărături stau funcţiile de sesiune alte PHP-ului. Practic, coşul de cumpărături este de fapt un vector care este reţinut prin sesiuni. Indexul vectorului reprezintă id-ul cărţii, iar valoarea vectorului pentru indexul respectiv reprezintă numărul de exemplare din coş ale acelei cărţi. Atunci când o carte este adăugată în coş, fişierul index.php primeşte un parametru numit adauga_carte, care are drept valoare id-ul cărţii.

Modificarea cărţilor din coşul de cumpărături este gestionată de fişierul modify_basket.php. Fiecărei cărţi îi corespunde un mic formular în care se poate introduce cantitatea dorită; de asemenea, utilizatorul are posibilitatea de a scoate anumite cărţi din coşul de cumpărături (vezi figura 6).

Figura 6. Lucrul cu coşul de cumpărături

9

Conferinţa Naţională de Învăţământ Virtual, ediţia a III-a, 2005 7 of 8

Page 10: 5 73 Magazin Radescu

6.2. Administrarea librăriei virtuale Pentru orice magazin virtual prezent pe web, un lucru foarte important îl reprezintă

actualizarea informaţiilor referitoare la produse. În acest scop, a fost creată o pagină de administrare a bazei de date a cărţilor, care conţine toate cărţile din tabela books; pentru fiecare carte în parte se poate alege opţiunea de modificare a datelor sau eliminarea cărţii din baza de date (vezi figura 7).

Figura 7. Opţiunea de modificare a datelor

7. Concluzii Scopul acestei lucrări este de a prezenta paşii care trebuie urmaţi pentru realizarea

unui magazin virtual. Secţiunile site-ului şi tabelele MySQL folosite au fost descrise în detaliu. Implementarea coşului de cumpărături a fost posibilă folosind funcţiile de sesiune ale PHP-ului şi s-a bazat pe stocarea unui vector drept variabilă de sesiune. Deoarece PHP-ul are suport pentru expresii regulate, este foarte utilă verificarea în acest mod a adresei de e-mail din formularul de înregistrare.

Posibile îmbunătăţiri ale magazinului virtual ar putea fi: efectuarea de plăţi on-line prin card bancar; adăugarea pentru fiecare carte în parte a unei imagini cu coperta; crearea posibilităţii de “răsfoire” a cărţilor (fiecare carte în parte ar putea să aibă cuprinsul şi primul capitol disponibil on-line); fiecare utilizator sa aibă posibilitatea de a îşi înregistra o listă care să conţină cărţile pe care le are în vedere să le cumpere; posibilitatea utilizatorilor de a avea la dispoziţie o istorie a comenzilor lor; crearea unui newsletter periodic care să prezinte noutăţile apărute pe site.

8. Bibliografie

[1] A. Cooper, Proiectarea interfeţelor utilizator, Editura Tehnică, 1997. [2] D. Amor, The E-Business (R)evolution, Prentice-Hall, 1999. [3] B. Gates, Afaceri cu viteza gândului, Editura Amaltea, Bucureşti, 2000. [4] V. Patriciu, Securitatea comerţului electronic, Editura All, Bucureşti, 2001. [5] http://www.php.net, http://www.mysql.org, http://www.htmlhelp.com

10

Conferinţa Naţională de Învăţământ Virtual, ediţia a III-a, 2005 8 of 8