Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Module ale aplicatiei baze de date

Informatica


Module ale aplicatiei baze de date

1) Modulul de administrare al bazei de date



Descriere

Are un rol esential in buna functionarea a site-ului , dar mai ales in gestionarea eficienta a resurselor si a activitatii de comert electronic desfasurate - punind la dispozitia utilizatorilor cu drepturi de administrator o interfata de control puternica si usor de utilizat.

Modulul de administrare este format din urmatoarele sectiuni :

Administrare Categorii - se ocupa de gestionarea tabelelor tipproduse si sablon_caracteristici

Administrare Producatori - se ocupa de gestionarea tabelei producatori

Administrare Ofertanti - se ocupa de gestionarea tabelei ofertanti

Administrare Produse - se ocupa de gestionarea tabelelor: produse , caracteristici si product_ofertanti

Administrare Comenzi - se ocupa de gestionarea tabelei comenzi

* Sectiunea Administrare Categorii

In cadrul aplicatiei , ierarhia de categorii existenta este structurata pe 2 nivele:

- categorii principale : ca de exemplu componente principale, networking , multimedia,.

Acestea contin intotdeauna mai multe subcategorii

- subcategorii : ca de exemplu: placi de baza, procesoare , memorii, placi video,.

Acestea sunt caracterizate de faptul ca au ca "parinte" una din categorii principale.

Aceasta 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 - care pot fi astfel 'asimilate' ca fiind frunze ale acestui arbore).

Din cadrul acestei sectiuni se poate modifica/edita ierarhia de categorii existenta.

In principiu ,la accesarea acestei sectiuni ,este afisata ierarhia de categorii si sunt puse la dispozitie comenzi de: adaugare, de stergere si de redenumire a unei categorii.

Aceste comenzi opereaza asupra bazei de date , modificand in mod corespunzator informatiile tabelei tipproduse .De aceea , ca metoda de protectie suplimentara - exista cod JavaScript, care la lansarea unei astfel de comenzi cere confirmari/informatii suplimentare , evitand astfel lansarea eronata /nedorita acestora.

Deasemenea , 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 inregistrarii din tabela tipproduse ce corespunde categoriei

Mecanismul de template-uri

O alta comanda importanta - relativ la o categorie de produse - este comanda "Template" - ce permite editarea unui sablon de caracteristici comun tuturor produselor din categoria respectiva (toate produsele dintr-o subcategorie , in mod firesc, au aceleasi caracteristici tehnice, doar valorile acestor caracteristici vor diferi de la un produs la un altul) .

Rolul acestui sablon iese in evidenta - la inserarea unui nou produs , in momentul in care este necesara specificarea caracteristicilor sale tehnice. In loc sa se specifice - pentru fiecare produs - numele si valoarea fiecarei dintre caracteristicile sale , pe baza acestui sablon al categoriei va fi generat un formular cu campuri corespunzatoare fiecarei caracteristici tehnice a produsului .

Astfel, tot ce ramane de facut este completarea /setarea acestor elemente de form la o valoare dorita si corespunzator produsului editat.

- Cum a fost implementat?

Aceasta facilitate de 'template de caracteristici' a fost 17217c217r implementata astfel:

Exista practic un array PHP asociativ si multidimensional denumit '$template' care contine toate sabloanele de caracteristici pentru fiecare categorie existenta si care este salvat sub forma serializata - ca string binar - in tabela sablon_caracteristici din baza de date

Structura acestui array este urmatoarea:

$template = array( id =>sablon , id=>sablon,..)

unde id reprezinta id-ul categoriei

sablon - reprezinta sablonul de caracteristici al categoriei ce are acel id (in cadrul bazei de date) , fiind la randul sau un array PHP asociativ si multidimensional:

$sablon = array(nume=> caracteristica , nume=>caracteristica,...)

unde nume - reprezinta numele unei caracteristici din multimea de caracteristici a categoriei

caracteristica - este un array PHP asociativ ce contine informatii despre formatul caracteristicii ce are acel nume

$caracteristica = array("nume"=> nume_caract , "tip"=>tip_caracteristica, "aditional"=>extra);

unde nume_caract - specifica numele caracteristicii

tip_caract - va specifica formatul caracteristicii

Formatul unei caracteristici specifica tipul elementului de form , ce va fi generat pentru caracteristica respectiva , in cadrul formularului de editare/inserare caracteristici pentru produsele din categoria respectiva

Formatul unei caracteristici poate fi: text (implicit), combobox , checkbox sau textarea .

extra - va specifica informatii suplimentare despre formatul caracteristicii , in cazul in care acesta este de tip 'combobox' . Practic aceasta valoare este un sir ce contine optiunile de selectie ale combobox-ului.

- Cum functioneaza?

La accesul sectiunii 'Administrare Categorii' este refacut continutul acestui array

$template , din baza de date, si apoi array-ul este inregistrat in cadrul sesiunii de administrare curenta (folosind functia session_register) , astfel incat acesta sa fie disponibil in toate paginile-script ale modulului de administrare ,in care se doreste/este necesar acest lucru .

La editarea template-ului pentru o categorie - practic, se construieste un array sablon (cu structura specificata mai sus) care este apoi salvat impreuna cu id-ul categoriei respective ca element al array-ului de sabloane '$template': $template[$id]=$sablon;

Pentru a permanentiza modificarile facute in urma editarii sablonului de caracteristici ale unei categorii - din pagina sablonului editat , trebuie activat butonul 'Save template' - moment in care array-ul '$template' ,in noua sa structura modificata este serializat si apoi salvat (updatat) in baza de date , in tabela sablon_caracteristici.

Utilizarea efectiva a array-ului de sabloane '$template' se face la inserarea/editarea caracteristicilor unui produs . In acest caz se preia sablonul de caracteristici al categoriei din care face parte produsul: $sablon = $template[$id]; unde $id - este id-ul categoriei respective.

Pe baza acestui sablon - array PHP , se genereaza un formular ,in care fiecare element de form existent va corespunde unei caracteristici si va avea tipul - dat de formatul caracteristicii ce este specificat ,evident, in sablon.

Elementele de form poate fi :

- de tip text - daca pentru caracteristica asociata trebuie introdusa o valoare text

- de tip combobox - daca pentru caracteristica asociata trebuie selectata o valoare dintre mai multe valori existente . Acest tip se foloseste in cazul caracteristicilor a caror valori pot fi incadrate intr-o multime de valori cunoscute si distincte .

- de tip checkbox - daca pentru caracteristica asociata trebuie introdusa o valoare de tip selectie binara : da/nu , 0/1 , etc.

- de tip textarea - daca pentru caracteristica asociata trebuie introdusa o valoare text de lungime mare .

In acest mod editarea/inserarea caracteristicilor pentru un produs este mult mai facila si rapida.

Scripturile PHP care implementeaza sectiunea 'Administrare Categorii' sunt urmatoarele:

admin_categorii.php - incarca din baza de date si afiseaza ierarhia de categorii , reface din baza de date sablonul cu template-urile de caracteristici ale fiecarei categorii , valideaza prin cod JavaScript comenzile date relativ la ierarhia de categorii .

operare_categorii.php - primind o comanda de editare a unei categorii , realizeaza efectiv modificarile cerute asupra tabelei tipproduse , in cadrul bazei de date.

template.php - afiseaza si permite editarea sablonului de caracteristici al unei categorii.

Fiecare template de caracteristica din cadrul sablonului poate fi vizualizat/editat/modificat/sters.

template.php - implementeaza comanda 'Template' descrisa anterior

save_template.php - permite salvarea ,in cadrul bazei de date, a sablonului cu template-urile de caracteristici ale tuturor categoriilor.

poza_categorie.php - permite specificarea informatiilor referitoare la fisierului imagine pentru o categorie editata

savepoza_categorie.php - in functie de ce anume s-a specificat anterior pentru fisierul imagine al unei categorii , realizeaza updatarea/inserarea/stergerea pozei corespunzatoare categoriei respective , in cadrul bazei de date

* Sectiunea Administrare Producatori

In aceasta sectiune se gestioneaza tabela producatori - ce contine date despre producatorii acelor produse comercializate in cadrul site-ului si , mai general , date despre toti producatorii importanti de accesorii si componente de calculatoare.

In principiu , la accesarea acestei sectiuni : se afiseaza tabelat datele despre fiecare producator existent in baza de date : nume , site-web si descrierea producatorului.

Sunt disponibile urmatoarele comenzi:

Add New - pentru adaugarea unui nou producator sau

Facand click pe numele unui producator din tabel - se intra in modul de editare al acelui producator , informatiile acestuia , ce sunt afisate in cadrul unui formular ,putand fi modificate/ updatate sau sterse din baza de date , prin activarea butoanelor Save , respectiv Delete .

Scripturile PHP care implementeaza aceasta sectiune sunt urmatoarele:

admin_producatori.php - incarca din baza de date si afiseaza tabelat informatiile despre fiecare producator existent

insert_producatori.php - permite introducerea informatiilor specifice despre un nou producator , informatii ce ulterior vor fi salvate in baza de date , ca o noua inregistrare a tabelei producatori

edit_producatori.php - afiseaza datele corespunzatoare unui anumit producator si permite editarea/modificarea sau stergerea acestora din cadrul tabelei producatori, in baza de date.

* Sectiunea Administrare Ofertanti

In aceasta sectiune se gestioneaza tabela ofertanti - ce contine informatii despre cei mai importanti furnizori autohtoni de accesorii si componente de calculatoare.

Importanta unor informatii cat mai detaliate despre fiecare ofertant de produse este vitala in alegerea cat mai avantajoasa a unor parteneri de afaceri de calitate.

La accesarea acestei sectiuni : se afiseaza tabelat datele despre fiecare ofertant existent in baza de date : nume , site-web , informatii de contact si descrierea ofertantului

Sunt disponibile urmatoarele comenzi:

Add New - pentru adaugarea unui nou ofertant sau

Facand click pe numele unui ofertant din tabel - se intra in modul de editare al acelui ofertant , informatiile acestuia , ce sunt afisate in cadrul unui formular ,putand fi modificate/ updatate sau sterse din baza de date , prin activarea butoanelor Save , respectiv Delete .

Scripturile PHP care implementeaza aceasta sectiune sunt urmatoarele:

admin_ofertanti.php - incarca din baza de date si afiseaza tabelat informatiile despre fiecare ofertant de produse - existent.

insert_ofertanti.php - permite introducerea informatiilor specifice despre un nou ofertant, informatii ce ulterior vor fi salvate in baza de date , ca o noua inregistrare a tabelei ofertanti

edit_ofertanti.php - afiseaza datele corespunzatoare unui anumit ofertant si permite editarea/modificarea sau stergerea acestora din cadrul tabelei ofertanti, in baza de date.

* Sectiunea Administrare Produse

La accesarea acestei sectiuni sunt afisate sub forma ierarhica categoriile de produse existente.

Numele fiecarei categorii este pus intr-un link , astfel incat la selectarea acestui link-categorie , in partea de jos a paginii vor fi afisate informatiile corespunzatoare tututror produselor din acea categorie.

Pentru fiecare produs - sunt afisate urmatoarele informatii:

nume , descriere, pret produs - date preluate din tabela produse

producator - data preluata din tabela producatori

ofertanti , preturi oferite de ofertanti - date preluate din tabela product_ofertanti

Pretul produsului este pretul sau de comercializare si difera de obicei de preturile de furnizor ce insotesc numele fiecarui ofertant-furnizor pentru produsul respectiv .

Pentru fiecare produs afisat ,in dreptul acestuia , sunt disponibile urmatoarele comenzi:

'AddNew' , 'Editare' , 'Poze ', 'Caracteristici' , 'Ofertanti' si 'TopNews'.

Comanda 'Add New' - inserare a datelor de baza ( nume , descriere , pret , producator ) pentru un nou produs .

Se genereaza un formular in campurile caruia pot fi specificate aceste informatii.

De exemplu: pentru specificarea producatorului produsului , exista un combobox - generat din PHP , astfel incat sa contina numele tuturor producatorilor existenti , acestia fiind preluati din baza de date in urma unei interogari. Tot ce ramine de facut , este selectarea optiunii corespunzatoare producatorului acelui produs.

Comanda 'Editare' - se intra in modul de editare a datelor de baza ale produsului .

Aceste date : nume , descriere , pret , producator sunt incarcate in campurile unui formular,

putand fi modificate/ updatate sau sterse din baza de date , prin activarea butoanelor Save , respectiv Delete .

Implementare practica:

La apasarea butonului de editare se paseaza scriptului editare_produs.php codul corespunzator produsului editat.

Se interogheaza tabela produse folosind codul respectiv - si se preiau datele de baza ale produsului avand acel cod.

Se genereaza dinamic - din cadrul PHP - 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.

De exemplu: pentru producatorul produsului exista un combobox - ce contine ca optiuni de selectie numele tuturor producatorilor existenti in tabela producatori si id-urile corespunzatoare acestora.

La generarea acestui combobox - avand la dispozitie id-ul producatorului pentru produsul curent (preluat din tabela produse) se seteaza ca selectata optiunea cu numele producatorului ce poseda acel id. Astfel la afisarea formularului , comboxul va afisa numele producatorului curent al produsului ,preluat din baza de date .

Comanda 'Poze' - se pot edita pozele pentru produsul curent

Pentru fiecare produs exista trei poze:

- Poza mica - este poza ce apare la listarea si afisarea produselor dintr-o aceeasi categorie , produselor apartinand unui acelasi producator ,etc.

- poza medie - este poza ce apare pentru un produs , in pagina web corespunzatoare acestuia (pagina in care se dau informatii detaliate despre produs)

- poza mare - este poza ce apare intr-o fereastra separata , atunci cand din pagina web a produsului se activeaza butonul 'mareste imaginea' . Rolul acesteia este de a oferi o mai buna prezentare a detaliilor grafice si de constructie ale prodului - lucru important , de exemplu , in cazul placilor de baza (cand de obicei se doreste vizualizarea mai detaliata a arhitecturii acesteia)

La accesarea acestei comenzi , va fi generat un formular cu trei campuri de tip text ,in care se vor introduce informatii - in functie de care ,se va opera asupra campurilor de tip blob din tabela produse , corespunzatoare celor trei tipuri de poza ale produsului.

In campul text corespunzator unui tip de poza se pot introduce urmatoarele informatii:

- Calea catre fisierul imagine - ce se doreste a fi incarcat in baza de date , pentru tipul respectiv de poza.

- Cuvantul 'delete' - daca se doreste stergerea tipului respectiv de poza pentru produsul curent.

Orice alte informatii , nu vor avea efect asupra pozelor produsului curent.

La submiterea formularului se va apela scriptul 'savepoze_produs' - ce va updata /insera/sterge pozele pentru produsul curent , conform indicatiilor text specificate anterior.

Comanda 'Caracteristici' - se intra in modul de editare al caracteristicilor produsului.

Se afiseaza o pagina web, ce contine un formular ,in campurile caruia sunt afisate caracteristicile curente ale produsului , incarcate din baza de date ,din tabela caracteristici..

In continuare - pot fi editate/sterse/updatate valorile caracteristicilor pentru produsul respectiv.

Scriptul care implementeaza aceasta comanda are doua parti:

- o prima parte: in care , pe baza sablonului de caracteristici al categoriei din care face parte produsul respectiv ,este generat formularul ce contine elemente de form corespunzatoare formatului fiecarei caracteristici a produsului.

- o a doua parte: in care ,se preiau valorile caracteristicilor produsului din baza de date ,din tabela caracteristici , si se incarca in formular - ca valori ale elementelor de form asociate fiecarei caracteristici .

Astfel , tot ce ramane de facut , din partea utlizatorului-administrator este editarea dupa bunul plac a valorilor acestor caracteristici . La submiterea formularului , catre scriptul de destinatie: 'save_caracteristici' va fi trimis un array asociativ (nume_caracteristica=>valoare_caracteristica) , format ce faciliteaza ulterior , salvarea in baza de date a noilor valori specificate pentru caracteristicile produsului .

Comanda 'Ofertanti' - se intra in modul de editare al ofertantilor pentru acel produs

Se afiseaza o pagina web , ce contine un formular ,in cadrul caruia vor apare informatii despre ofertantii curenti ai produsului .

Daca produsul - are specificat ,anterior, un numar de ofertanti - impreuna cu informatiile adiacente - acestea vor fi incarcate din baza de date si afisate corespunzator - in cadrul formularului.

Pentru fiecare ofertant exista 3 elemente de form , aranjate in linie : un combobox cu numele tuturor ofertantilor existenti in baza de date - in care va apare selectat numele ofertantului si doua campuri text ,in care vor apare specificate pretul oferit de ofertant , respectiv o descriere a ofertantului.

Sunt posibile urmatoarele operatii:

- inserare informatii despre un nou ofertant

Pentru aceasta - trebuie completata o 'linie libera' de elemente de form (adica un combobox si doua campuri text adiacente , aceste elemente de form trebuind sa fie needitate)

Pentru un produs poate exista un numar maxim de 5 ofertanti , astfel incat inserarea unui nou ofertant se poate face doar prin stergerea unuia vechi . Dar , oricum s-a considerat ca un numar de 5 ofertanti pentru un produs este arhi-suficient.

- modificare/editare informatii ale unui ofertant deja existent

Pentru aceasta se modifica efectiv - in 'linia' ocupata de ofertantul respectiv , informatiile afisate ale acestuia.

- stergere ofertant existent

Pentru aceasta trebuie sters continutul elementelor de form din 'linia' ocupata de ofertantul respectiv in cadrul formularului. De exemplu: pentru combobox-ul in care apare selectat numele ofertantului respectiv , trebuie selectata prima optiune a acestuia : 'selectati un ofertant'.

Pentru salvarea modificarilor efectuate se va apasa butonul 'Save' din cadrul formularului.

Informatiile vor fi modificate corespunzator in tabela product_ofertanti si apoi se va reapela scriptul ce afiseaza produsele din categoria din care face parte si produsul curent editat.

La reafisarea produsului anterior editat vor apare si noile informatii update/modificate despre ofertantii curenti .

Comanda 'TopNews' - permite adaugarea produsului curent in cadrul topului cu noutati de produse. In urma activarii comenzii este apelat scriptul 'noutati_produse.php' care indeplineste urmatoarele actiuni:

- incarca din baza de date , din tabela noutati_produse - informatiile produselor aflate in top , si creaza cu aceste date un array asociativ PHP ,denumit $noutati , care permite ulterior afisarea acestor date.

- determina daca produsul curent - se afla deja in cadrul topului de noutati , cautand produsul curent in array-ul $noutati , pe baza codului produsului , furnizat la apelul scriptului.

- afiseaza tabelat - intr-o noua pagina web, generata dinamic, topul noutatilor de produse

Pentru fiecare produs din top, sunt afisate: nume, categoria din care face parte , pretul si locul ocupat in cadrul topului

- daca produsul curent nu face parte din top - acesta se poate insera in top - prin specificarea intr-un formular : a pozitiei pe care se doreste adaugarea acestuia si actionandu-se apoi butonul 'Adauga Produs' .

- daca produsul curent se afla deja in top , lucru determinat prin cod - la pasul anterior , se ofera posibilitatea stergerii sale din top, prin actionarea butonului 'Sterge Produs'.

Scripturile PHP care impementeaza sectiunea 'Administrare Produse' sunt urmatoarele:

admin_produse.php - incarca din baza de date si afiseaza sub forma ierarhica categoriile de produse. La selectarea unei categorii- se vor incarca din baza de date si apoi afisa toate produsele din aceea categorie.

insert_produs.php - implementeaza comanda 'Add new' descrisa anterior.

edit_produs.php - implementeaza comanda 'Editeaza' descrisa anterior.

caracteristici_produs - implementeaza comanda 'Caracteristici' descrisa anterior.

save_caracteristici.php - implementeaza comanda 'Caracteristici' descrisa anterior.

ofertanti_produs.php - implementeaza comanda 'Ofertanti' descrisa anterior.

edit_ofertanti_produs.php - implementeaza comanda 'Ofertanti' descrisa anterior.

poze_produs.php - implementeaza comanda 'Poze' descrisa anterior.

savepoze_produs.php - implementeaza comanda 'Poze' descrisa anterior.

noutati_produse.php implementeaza comanda 'TopNews' descrisa anterior

operare_noutati_produse.php - implementeaza comanda 'TopNews' descrisa anterior .

Realizeaza efectiv stergerea sau adaugarea unui produs , in topul cu noutati de produse , operand asupra bazei de date.

* Sectiunea Administrare Comenzi

La accesarea acestei sectiuni , sunt afisate tabelat , informatiile de baza - despre toate comenzile de produse facute de utilizatorii-clienti ai magazinului virtual.

Aceste informatii sunt preluate din tabela comenzi si afisate in ordinea cronologica a transmiterii comenzilor de catre utlizatori ( deci in functie de momentul inserarii inregistrarii corespunzatoare comenzii in tabela comenzi).

Informatiile afisate pentru fiecare comanda sunt urmatoarele:

Nume si prenume client , numar de produse comandate , total de plata (in USD fara TVA),

Data emiterii comenzii, optiuni de livrare si de plata si informatiile de contact ale clientului.

In dreptul fiecarei comenzi afisate sunt disponibile urmatoarele linkuri:

'sterge' - duce la stergerea inregistrarii corespunzatoare comenzii respective din baza de date

'in detaliu' - are ca efect generarea unei pagini , in care vor fi afisate toate detaliile comenzii respective , sub forma unei facturi proforme - de achitie a produselor ce fac obiectul comenzii respective.

In cadrul acestei pagini , poate fi deasemenea vizualizat continutul cosului de produse - ce face obiectul comenzii respective.

Acest lucru a fost implementat astfel:

In momentul lansarii comenzii de cumparare de catre utilizator , pe langa celelalte informatii specifice ,se salveaza in baza de date - in tabela comenzi , sub forma serializata si variabila- array $cosproduse ce implementeaza cosul de produse .

La activarea link-ului 'in detaliu' - se preia din tabela comenzi , data de tip blob ce contine forma serializata a cosului de produse , se deserializeaza si astfel , avem la dispozitie un array ce are exact acelasi continut ca si cel existent in cosul de produse , in momentul lansarii comenzii de cumparare de catre client.

Scripturile PHP care implementeaza aceasta sectiune sunt urmatoarele:

admin_comenzi.php - incarca din baza de date , din tabela comenzi , si afiseaza tabelat si in ordine cronologica , informatiile de baza ale tuturor comenzilor de cumparare facute de catre

utilizatorii-clienti ai magazinului virtual.

detalii_factura.php - incarca din baza de date si afiseaza toate informatiile corespunzatoare unei comenzi , inclusiv continutul cosului de produse ce face obiectul comenzii respective.

Afisarea informatiilor are loc in formatul unei facturi proforme - ce poate fi astfel printata si utilizata ca si factura - la plata produselor din comanda de cumparare data de catre utilizator.

sterge_factura.php - sterge toate informatiile corespunzatoare unei comenzi - din cadrul tabelei comenzi , din baza de date.

2) Modulul de inregistrare-autentificare al utilizatorilor

Acest modul indeplineste urmatoarele functii in cadrul aplicatiei :

asigura securitatea procesului de comercializare a produselor , prin utilizarea autentificarii utilizatorilor ce doresc sa achizitioneze produse si a altor mecanisme specifice.

pune la dispozitia utilizatorului - care a parcurs procesul de autentificare - o serie de optiuni si facilitati speciale - din cadrul contului personal.

Din 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 perechi :adresa email - parola , corecte.

pentru userii inregistrati - care doresc sa se autentifice, dar au uitat parola , este posibil

sa reintre in posesia acesteia , specificand adresa de e-mail corecta (cea cu care s-au inregistrat) .

Procesul de inregistrare al utilizatorilor

Este un proces desfasurat in trei etape - 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. Procesul de inregistrare se deruleaza astfel:

Pasul 1 : se solicita - in cadrul unui formular - introducerea unei adrese de e-mail valide a utilizatorului , a unei parole (de minim 5 caractere) si reconfirmarea acesteia din urma .

Pe baza acestui cuplu de informatii: (adresa-email, parola) se va face ulterior autentificarea utilizatorului , fiind importanta deci acuratetea acestor date.

De aceea la submiterea formularului , prin cod Javascript , se vor face urmatoarele verificari:

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.

Doar daca aceste conditii sunt indeplinite, formularul este submis , trecandu-se astfel la pasul urmator.

Pasul 2 - se solicita - in cadrul unui formular - introducerea urmatoarelor date:

Date personale : nume , prenume , cod numeric personal.

Adresa: Localitate , judet/sector , adresa efectiva , numar de telefon.

Firma: nume firma ,cod fiscal ,functia ocupata in cadrul firmei.

Aceste date sunt necesare in cazul in care utilizatorul face comanda de cumparae pe numele

unei firme

Optiuni : utilizatorul poate sa opteze pentru tipurile de oferte pe care doreste sa le

primeasca in mod regulat , prin abonament

Tipurile de oferte care sunt puse la dispozitie si pentru care se poate opta , sunt:

Oferta in format HTML , Oferte speciale , Lista de preturi, Lista cu noutati produse.

Ulterior din cadrul contului personal , utilizatorul poate (re)configura dupa bunul plac

aceste optiuni .

La submiterea acestui formular, prin cod JavaScript , se verifica validitatea urmatoarelor date:

cod numeric personal - se verifica ca acesta sa fie format numai din cifre si sa nu aiba mai

putin de 13 caractere.

nume , prenume , localitate , judet/sector , adresa efectiva - se verifica ca aceste campuri sa

fie completate de catre utilizator

numar de telefon - se verifica ca acesta sa fie format numai din cifre si sa aiba un numar de

cifre corespunzatoare (minim 8 si maxim 12)

Daca toate aceste conditii sunt indeplinite , formularul este submis si se trece la ultimul pas.

Pasul 3 - se afiseaza toate datele introduse si toate optiunile facute.

Utilizatorul poate opta pentru revenirea la unul din pasii anteriori - in cazul in care doreste modificarea unora dintre datele/optiunile anterioare sau , fiind de acord cu informatiile afisate, sa le confirme , apasand butonul 'Confirmare' .

La apasarea acestui buton - este apelat scriptul 'crearecont_final' care preia informatiile introduse de utilizator , face unele prelucrari asupra acestora si apoi le introduce in baza de date , inserand o noua inregistrare in tabela utilizatori.

Dupa aceste operatii , utilizatorul este redirectionat catre pagina de start a aplicatiei - de unde, are acum posibilitatea de a se autentifica si de a intra astfel, in cadrul contului personal .

Procesul de autentificare al utilizatorilor

Pentru a se autentifica - un utilizator trebuie sa acceseze pagina de logare , si in form-ul intitulat 'Login' sa-si introduca adresa de e-mail si parola cu care s-a inregistrat .

La acest nivel exista doua modalitati de asigurare a securitatii accesului la contul de utilizator :

Prin cod Javascript se verifica validitatea adresei de e-mail si a parolei , mai exact daca

acestea verifica regulile de format prestabilite.

Daca cuplul (adresa email ,parola) sunt corecte sintactic , atunci se interogheaza tabela utilizatori cu aceste date , in vederea identificarii utilizatorului respectiv .

In cadrul tabelei utilizatori , cuplul de coloane (email, parola) are valori unice pentru

fiecare inregistrare , deci daca aceste date introduse sunt corecte , in urma interogarii ar trebui sa rezulte o unica inregistrare - deci sa fie identificat un unic utilizator - posesor de drept al acestor date.

Daca identificarea esueaza , este reincarcata pagina de logare - in partea de sus a acesteia aparand un mesaj de avertizare corespunzator.

Este posibil ca pentru un utilizator bine intentionat, procesul de autentificare sa esueze datorita introducerii unei parole eronate sau inexacta , utilizatorul uitand parola corecta.

In acest caz, se vine in sprijinul utilizatorului - acesta avand posibilitatea de a recupera parola corecta . Pentru a realiza acest lucru - in pagina de logare , in cadrul unui al doilea formular , utilizatorul trebuie sa-si specifice adresa de e-mail corecta cu care s-a inregistrat, si apoi sa apese butonul "Trimite parola".

Dupa verificarile de rigoare asupra adresei de email specificata , daca aceasta este corecta sintactic si daca este identificata intr-una din inregistrarile tabelei utilizatori , atunci pe aceasta adresa - este trimis un email in care se specifica parola asociata , astfel ,utilizatorul de drept reintrand in posesia acesteia.

Daca autentificarea reuseste utilizatorul "intra" in cadrul contului personal.

In cadrul contului personal , sunt puse la dispozitie urmatoarele comenzi:

'Modificare date personale' - prin care utilizatorul isi poate vizualiza si modifica datele personale , introduse anterior in cadrul procesului de inregistrare.

La lansarea comenzii , sunt incarcate din baza de date si afisate in cadrul unui formular urmatoarele date ale utilizatorului: nume , prenume , cod numeric personal,adresa ,numar de telefon, nume firma , cod fiscal , functia ocupata .

Utilizatorul poate edita aceste date si apoi salva in baza de date actualizarile efectuate prin apasarea butonului 'Actualizare'.

'Modificare adresa de e-mail' - prin care utilizatorul isi poate modifica adresa de e-mail curenta . Noua adresa de email va fi folosita ulterior , in locul celei vechi , in cadrul procesului de autentificare. De aceea dupa reactualizarea adresei de email si salvarea ei in baza de date , utilizatorul este de-logat si redirectat catre pagina de start a aplicatiei - de unde , accesand pagina de logare se poate din nou autentifica folosind noua adresa de e-mail ,pentru a reintra astfel in cadrul contului personal .

'Modificare parola' - prin care utilizatorul isi poate schimba parola curenta.

Noua parola va fi utilizata ulterior, in locul celei anterioare, in cadrul procesului de autentificare . De aceea dupa reactualizarea parolei si salvarea ei in baza de date, utilizatorul este de-logat si redirectat catre pagina de start a aplicatiei - de unde , accesand pagina de logare ,se poate din nou autentifica folosind noua parola ,pentru a reintra astfel in cadrul contului personal .

'Editare optiuni' - prin care utilizatorul isi poate reconfigura optiunile de abonare la cele patru tipuri de oferte existente : oferta html , oferte speciale , lista de preturi si lista de nouatati produse.

'Vizualizare comanda curenta' - prin care utilizatorul poate vizualiza continutul curent al cosului propriu de produse si in continuare are posibilitatea de a lansa comanda de cumparare a produselor respective.

Aceasta comanda constituie ,in principiu ,o modalitate de revenire la pagina de vizualizare a cosului de produse , deoarece, daca la lansarea comenzii de cumparare , din cadrul paginii de vizualizare a cosului de produse, utilizatorul nu este autentificat sau inregistrat el va fi redirectat catre pagina de logare , de unde prin inregistrare (daca e cazul) si autentificare va ajunge apoi in cadrul contului personal.

Revenirea in cadrul paginii cu cosul de produse se va face astfel , tocmai prin intermediul acestei comenzi.

Scripturile PHP care implementeaza 'Modulul de inregistrare-autentificare al utilizatorilor' sunt urmatoarele:

inregistrare.php - genereaza pagina web de start a modulului de inregistrare-autentificare, in care pune la dispozitia utilizatorului trei formulare: primul pentru logare, al doilea pentru trimitere parola (in cazul in care utilizatorul inregistrat si-a uitata parola) si ultimul pentru initierea procesului de inregistrare a utilizatorului

crearecont_pas1.php - implementeaza 'Pasul 1' din procesul de inregistrare , descris anterior

crearecont_pas2.php - implementeaza 'Pasul 2' din procesul de inregistrare , descris anterior

crearecont_pas3.php - implementeaza 'Pasul 3' din procesul de inregistrare , descris anterior

crearecont_final.php - inregistreaza efectiv utilizatorul - introducand toate datele si optiunile acestuia - ca o noua inregistrare, inserata in tabela utilizatori , in baza de date.

trimite_parola.php - realizeaza trimiterea parolei ,uitata de catre utilizator, pe o adresa de e-mail specificata de catre aceasta anterior , si dupa ce aceasta adresa de e-mail este mai intai validata sintactic si apoi regasita in cadrul unei inregistrari a utilizatorului din cadrul tabelei utilizatori.

logare.php - implementeaza procesul de autentificare al utilizatorilor , descris anterior.

edit_email.php - permite, din cadrul contului personal al utilizatorului , modificarea de catre acesta a adresei de email - folosita in procesul de autentificare .

edit_parola.php - permite, din cadrul contului personal al utilizatorului , modificarea de catre acesta a parolei proprii - folosita in procesul de autentificare .

editdate_personale.php - permite, din cadrul contului personal al utilizatorului , modificarea de catre acesta datelor personale.

edit_optiuni.php - permite, din cadrul contului personal al utilizatorului , modificarea de catre acesta a optiunilor de abonare la diversele tipuri de oferte existente.

logout.php - realizeaza de-logarea utilizatorilor , in momentul in care acestia apasa butonul de log-off din cadrul contului personal sau in urma modificarii-reactualizarii din cadrul contului personal a adresei de e-mail sau a parolei personale.

3) Modulul 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 ierarhia de produse comercializate de catre magazinul web

punerea la dispozitia utilizatorului a diverselor facilitati ale aplicatiei

Acest modul mai este denumit si modulul comercial al site-ului

Sectiunea de navigare\vizualizare a site-ului

Utilizatorul poate naviga prin ierarhia de categorii de produse existente ,pentru ca in final sa ajunga la destinatie: pagina unui produs ce prezinta interes .

Astfel in fiecare pagina a acestei sectiuni - prin intermediul scriptului 'antet.php' - este inclusa

in partea de sus a paginii , o bara de butoane - prin intermediul careia se poate vizualiza oricand continutul de subcategorii ale fiecarei categorii principale de produse.

La apasarea unui astfel de buton , se va genera dinamic o noua pagina web: pagina categoriei principale selectate . In cadrul acestei pagini ,sunt incarcate din baza de date , din tabela tipproduse ,si apoi afisate toate informatiile despre subcategoriile acelei categorii principale.

Se vor afisa tabelat numele fiecarei subcategorii insotita de poza corespunzatoare ce descrie grafic subcategoria respectiva.

Efectuarea unui click pe numele sau poza unei subcategorii afisate va duce la generarea dinamica a unei noi pagini web: 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. Se vor afisa tabelat : numele fiecarui produs , pretul , producatorul si poza ( de dimensiune mica )corespunzatoare produsului

Efectuarea unui click 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.

Tot aici - incadrand imaginea produsului ,se afla butoanele ce implementeaza diverse facilitati si comenzi referitoare la produs, si anume:

'adauga in cos' - permite adaugarea produsului respectiv in cosul de produse al utilizatorului

'vezi/modifica cos' - permite vizualizarea si modificarea continutului cosului de produse

'mareste imaginea' - descris in sectiunea de facilitati

'comparatie' - descris in sectiunea de facilitati

'recomanda acest produs unui prieten' - descris in sectiunea de facilitati

In partea de jos a paginii produsului , sunt incarcate din baza de date, din tabela caracteristici , si afisate tabelat : toate caracteristicile tehnice ale produsului

Scripturile PHP care implementeaza aceasta sectiune sunt urmatoarele:

index.php - genereaza pagina de start a aplicatiei , in cadrul careia sunt puse la dispozitia utilizatorului facilitatile generale ale site-ului . Deasemenea , 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 patru locuri in cadrul topului de noutati produse existent.

antet.php - script care, inclus fiind in fiecare pagina a acestei sectiuni , va afisa in partea de sus a paginii , un antet cu sigla firmei si o bara de butoane penteru accesul la categoriile principale de produse. Deasemenea mai sunt afisate o imagine-link la pagina de vizualizare rapida a cosului de produse si totalul de plata al continutului curent al cosului de produse al utilizatorului.

readimg.php - citeste din baza de date si afiseaza , in functie de parametrul primit , una dintre cele trei poze ale unui produs.

categorie_principala.php - genereaza dinamic 'pagina unei categorii principale de produse', descrisa anterior.

categorie.php - genereaza dinamic 'pagina unei subcategorii de produse' , descrisa anterior.

produs.php - genereaza dinamic 'pagina unui produs' , descrisa anterior.

caracteristici.php - incarca din baza de date , din tabela caracteristici, si afiseaza tabelat valorile tuturor caracteristicilor tehnice ale unui produs

Sectiunea de cautare a site-ului

Utilizatorul are la dispozitie trei modalitati de cautare a informatiilor in cadrul site-ului:

cautare dupa numele unei subcategorii

In acest caz , utilizatorul trebuie sa selecteze intr-un combobox , numele subcategoriei dorite

Ca rezultat , este generata dinamic o noua pagina web : 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. Se vor afisa tabelat : numele fiecarui produs , pretul , producatorul si poza ( de dimensiune mica )corespunzatoare produsului

cautare dupa numele unui producator

In acest caz, utilizatorul trebuie sa selecteze intr-un combobox , numele producatorului dorit.

Ca rezultat este generata dinamic o noua pagina web: pagina produselor producatorului selectat.

In cadrul acestei pagini , sunt incarcate din baza de date , din tabela produse, si apoi afisate,

informatiile de baza despre toate produsele ce apartin producatorului selectat. Se vor afisa tabelat : numele fiecarui produs , pretul , poza ( de dimensiune mica )corespunzatoare produsului si subcategoria din care face parte produsul.

cautare dupa un cuvant cheie

In acest caz , utilizatorul trebuie sa specifice intr-un camp text al formularului de cautare , cuvantul cheie dupa care se va face cautarea si sa apese butonul intitulat 'GO' , ce declanseaza procesul de cautare .

Cautarea este 'case insensitive' si este o cautare dupa expresii regulate, in acest sens

folosindu-se functiile specifice oferite de limbajul PHP .

Procesul efectiv de cautare are loc printre datele de tip sir ale fiecarei inregistrari - ce

corespunde unui produs in cadrul tabelei produse .

Se vor retine acele produse care satisfac criteriul de cautare , construindu-se astfel un array

asociativ PHP , denumit '$produse' , ce contine informatiile de baza ale acestor produse.

Un produs satisface criteriul de cautare daca: s-a gasit cel putin o aparitie a cuvantului cheie

specificat , in cadrul datelor de tip sir ale inregistrarii ce corespunde produsului in tabela

produse.

Dupa terminarea procesului de cautare , este generata o noua pagina web in care - pe baza

array-ului '$produse' - sunt afisate tabelat rezultatele cautarii: produse care satisfac criteriul

specificat . Pentru fiecare produs sunt afisate: numele, pretul si poza corespunzatoare.

Detalii complete despre unul din produsele afisate se poate face efectuand un click pe

numele sau pe poza produsului .

Scripturile PHP care implementeaza aceasta sectiune sunt urmatoarele:

edit_cautare.php - afiseaza in cadrul paginii in care este inclus ca script , formularul ce contine cele trei optiuni de cautare: dupa numele unei categorii,dupa numele unui producator sau dupa un cuvant cheie. Initial , realizeaza cateva operatii preliminare , ca de exemplu:

Incarca din baza de date si construieste un array cu numele tuturor subcategoriilor - ce vor fi ulterior incarcate ca si optiuni de selectie ale comboxului de cautare dupa numele unei categorii.

Incarca din baza de date si construieste un array cu numele tuturor producatorilor - ce vor fi ulterior incarcati ca si optiuni de selectie ale comboxului de cautare dupa numele unui producator

cautare.php - implementeaza procesul de cautare dupa un cuvant cheie specificat. Afiseaza tabelat rezultatele cautarii

categorie.php - cauta in baza de date si afiseaza tabelat toate produsele unei subcategorii specificate

produse_producator.php - implementeaza pocesul de cautare dupa numele unui producator.

Afiseaza tabelat rezultatele cautarii.

Sectiunea de facilitati ale site-ului

In cadrul paginii unui produs , prin intermediul butoanelor cu acelasi nume ,sunt disponibile urmatoarele facilitati:

'mareste imaginea' - permite afisarea pozei de dimensiune mare , a produsului.

La apasarea acestui buton este executata o functie Javascript care

creaza o noua fereastra si apoi

lanseaza in executie un script PHP ce va incarca din baza de date si ulterior afisa in aceasta fereastra , poza (de dimensiune mare) a produsului .

'recomanda acest produs unui prieten' - permite trimiterea de catre utilizator a unui email catre o alta persoana , in care poate sa recomande produsul si sa specifice observatiile si comentariile sale vizavi de produs.

La apasarea acestui buton , este executata o functie JavaScript care :

creaza o noua fereastra

creeaza un formular in aceasta fereastra , in care, utilizatorul este invitat sa introduca cateva date personale ( nume , prenume, adresa de email) , adresa prietenului caruia vrea sa-i recomande acest produs si un text care sa insoteasca aceasta recomandare.

La submiterea formului este apelat scriptul 'recomanda_produs.php' care va verifica validitatea datelor introduse de catre utilizator si , in cazul in care acestea sunt corecte , va trimite pe adresa specificata (cea a prietenului) un e-mail in a carui corp vor fi incluse : mesajul recomandare completat de catre utilizator si un link catre pagina web a produsului ce este recomandat.

'comparatie' - permite compararea produsului curent cu orice alt produs ce face parte din aceiasi subcategorie de produse .

La apasarea acestui buton este lansat in executie scriptul 'compara.php' , care efectueaza urmatoarele task-uri :

La prima rulare a scriptului (atunci cand este apasat butonul 'compara') se interogheaza baza de date, se determina toate produsele din categoria produsului ce se compara, si se construieste cu acestea un array PHP asociativ: $data = array(cod_produs=>nume_produs,..)

Acest array va fi serializat si deci , disponibil apoi ,in toate rularile ulterioare ale scriptului, cand se realizeaza comparatii intre produsele apartinand categoriei initiale (categoria produsului din pagina caruia a fost lansata comanda 'compara'). Astfel , nu mai este necesar, ca la fiecare comparatie a doua produse din aceiasi categorie sa se interogheze baza de date si sa se reconstruiasca acest array , acest lucru facandu-se doar initial pentru prima comparatie a doua produse dintr-o categorie data.

Genereaza dinamic o noua pagina web: pagina comparatiei intre produse.

In cadrul acesteia , intr-un formular, vor apare alaturat doua combobox-uri , ce vor fi incarcate cu datele din array-ul $data, deci cu toate produsele din categoria data.

Combobox-ul din partea stanga va avea selectata ca optiune - produsul initial comparat (cel

din pagina caruia a fost lansata comanda 'compara' .Dedesubt se va afisa , dupa ce a fost

incarcata din baza de date , poza mica a produsului.

In partea de jos a paginii vor fi afisate tabelat , dupa ce au fost incarcate din baza de date ,

valorile caracteristicilor acestui produs.

In combobox-ul din partea dreapta , utilizatorul va putea selecta produsul cu care se doreste

a fi comparat produsul initial . In urma acestei selectii , formularul va fi submis si scriptul

'compara.php' va fi astfel reapelat .

In urma reapelarii , se va reconstrui dinamic pagina comparatiei intre produse, comboxurile din cadrul formularului, vor fi setate conform optiunilor facute anterior.

Sub fiecare combobox , se va afisa , din baza de date, poza mica corespunzatoare produsului

selectat. In partea de jos a paginii se vor afisa tabelat , dupa ce au fost incarcate din baza de

date, valorile caracteristicilor pentru fiecare dintre cele doua produse comparate.

La schimbarea selectiei din unul din cele doua combobox-uri cu produse , formularul va fi submis, scriptul 'compara.php' reapelat si procesul descris se repeta.

La nivel de site , pe langa facilitatile de cautare descrise anterior , mai sunt disponibile urmatoarele facilitati:

Trimiterea instant a ofertelor

Dupa cum s-a aratat anterior , un utilizator - in cadrul procesului de inregistrare sau ulterior din cadrul contului personal - are posibiliatea de a-si configura/reconfigura optiunile de trimitere a acestor oferte prin abonament.

Alternativ, orice utilizator poate opta pentru primirea instant a ofertelor existente , fara a fi nevoie ca acesta sa se inregistreze/autentifice si sa se aboneze pentru a putea primi aceste oferte.

Pentru trimiterea instant a ofertelor se foloseste modelul cerere- raspuns , in care utilizatorul , in cadrul unui formular , va selecta una sau mai multe optiuni din gama tipurilor de oferte existente si trebuie apoi sa introduca intr-un camp text al formularului o adresa de e-mail valida.

La submiterea formularului , in urma apasarii butonului "GO" , se verifica corectitudinea formatului adresei de email prin cod JavaScript. Daca aceasta este valida , imediat , pe aceasta adresa sunt trimise ,in corpul unor mesaje email , ofertele pentru care utilizatorul a optat anterior.

Scripturile PHP care implementeaza 'Sectiunea de facilitati ale site-ului' , sunt urmatoarele:

produs.php - script ce implementeaza la nivel de cod JavaScript facilitatile 'mareste imaginea' si 'recomanda acest produs uni prieten' , descrise anterior.

recomanda_prieten.php - implementeaza la nivel PHP facilitatea 'recomanda acest produs unui prieten' , descrisa anterior.

compara.php - implementeaza facilitatea 'compara produse' , descrisa anterior.

trimite_oferte.php - implementeaza facilitatea 'trimitere instant oferte' descrisa anterior.

4) Modulul de preluare/prelucrare al comenzilor de la utilizator

Are 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

Procesul de cumparare , incepe la nivelul paginii produsului , in mometul in care userul adauga produsul respectiv la cosul de produse , activand butonul 'Adauga in cos'.

Cosul de produse este implementat printr-un array asociativ, bidimensional PHP , ce are urmatoarea structura:

$cosproduse = array(cod1=>info1 , cod2=>info2,..) unde

cod - reprezinta codul unui produs din cosul de produse ,

info - este un array asociativ PHP ce contine ca informatii despre produs: numele, pretul si

cantitatea in care produsul a fost comandat , fiind de forma:

$info= array("nume"=>nume,"pret"=>pret, "cantitate"=>cantitate)

Acest array este serializat , astfel incat el sa poata fi mentinut ca variabila pe toata durata unei sesiuni utilizator si sa poata fi disponibil in toate paginile-script in care este necesar acest lucru.

Deasemenea - in legatura cu cosul de produse - mai exista doua variabile , ce sunt la randul lor serializate, si anume:

$nrproduse - ce indica numarul curent al produselor din csul de produse

$total - ce indica pretul total (in USD si fara TVA) a continutului curent al cosului de produse

La apasarea butonului 'adauga in cos' este apelat scriptul 'adauga_cos.php' care

realizeaza urmatoarele operatii:

daca produsul este pentru prima oara introdus in cosul de produse , atunci se interogheaza

baza de date pentru a afla nume si pretul produsului . Cu aceste informatii si setand

cantitatea la 1 - se construieste un array - de tipul $info - care este apoi adaugat ca

element al array-ului $cosproduse .

daca un produs identic a mai fost anterior adaugat in cos , atunci in elementul-array corespunzator produsului in cadrul array-ului $cosproduse , este incrementata doar variabila cantitate .

dupa adaugarea produsului in cos , prin redirectare , va fi reafisata pagina produsului

respectiv.

Vizualizarea cosului de produse

Exista doua modalitati de vizualizare a cosului de produse:

vizualizare rapida a cosului de produse

In partea superioara a fiecarei pagini web ,generata din cadrul modulului comercial al site-ului , apare pretul total al continutului curent al cosului de produse si alaturat sigla cosului de produse - link catre pagina de vizualizare rapida a cosului de produse .

Prin efectuarea unui click pe sigla cosului - este apelat scriptul 'rapidview_cos.php' care va

afisa tabelat ,in cadrul unei pagini web, continutul cosului de produse si pretul total atat in

USD cat si in lei . Pentru fiecare produs din cos , sunt afisate numele, pretul in USD si in lei

si cantitatea in care produsul a fost achizitionat.

In acest caz nu se pot face modificari asupra cosului de produse.

vizualizare / modificare a cosului de produse

Se realizeaza prin apasarea butonului cu acelasi nume - din cadrul paginii unui produs.

Ca urmare , este apelat scriptul 'vezi_cos.php' care va afisa tabelat continutul cosului de

produse si pretul total atat in USD si in lei.

Pentru fiecare produs , pe langa informatiile uzuale:nume,pret, cantitate sunt afisate si

comenzi pentru modificarea cantitatii/stergerea produsului respectiv in/din cadrul cosului de

produse. Aceste comenzi opereaza asupra array-ului $cosproduse reactualizand in mod

corelat informatiile despre produs.

De exemplu - la stergerea unui produs - trebuie reactualizate in mod corespunzator :

numarul total de produse - in variabila $nrproduse , trebuie scazuta cantitatea in care era

prezent produsul

pretul total al cosului - in variabila $total , trebuie scazut costul total al produsului , adica

suma data de produsul cantitate x pret produs

Deasemenea , in pagina , mai sunt prezente doua butoane:

'Goleste cosul' - la apasarea acestuia cosul de produse este golit, i.e. variabilele

$cosproduse , $total , $nrproduse sunt setate la null

'Inapoi la produse' - permite reintoarcerea in cadrul paginii produsului ,de unde s-a lansat

comanda de vizualizarea a cosului.

Lucrurile nu sunt chiar atat de elementare precum par, pentru ca la activarea butoanelor de

modificare a cosului - dupa apelul unui script 'modifica_cos.php' ce realizeaza efectiv

modificarile asupra cosului - este reapelat scriptul curent (vezi_cos.php) prin redirectare.

Deci dupa posibila utilizare a acestor butoane - reintoarcerea in pagina produsului nu se mai

poate face prin comenzi Javascript de genul: history.back ( ) sau simple redirectari.

Solutia consta in pastrarea prin serializare a codului acelui produs - din a carui pagina

produs s-a lansat comanda de vizualizare/modificare cos. Astfel la activarea butonului

'Inapoi la produse' va fi posibila reintoarcerea in pagina ultimului produs vizitat , prin

redirectarea catre scriptul de generare a paginii , script ce va primi ca parametru codul

produsului respectiv .

Lansarea comenzii de cumparare a produselor

Aceasta se poate face din cadrul celor doua pagini de vizualizare a cosului de produse , prezentate anterior , prin actionarea butonului 'Comanda'.

Din motive ce tin de securitatea datelor , preluarea si prelucrarea comenzilor de cumparare a produselor , lansata de utilizatori - se poate face doar pentru utilizatorii inregistrati si care s-au autentificat anterior.

De aceea la activarea butonului 'Comanda' este apelat scriptul 'checklogin.php' care verifica daca utilizatorul este unul inregistrat si in acest caz daca a trecut procesul de autentificare, in caz contrar utilizatorul fiind redirectat catre sistemul de inregistrare/autentificare.

Dupa ce utilizatorul se inregistreaza si se autentifica sau inregistrat fiind , doar se autentifica , are posibilitatea din cadrul contului personal - sa revina in pagina de vizualizare a cosului de produse si sa relanseze comanda de cumparare.

Preluarea comenzii de cumparare

Daca comanda de cumparare este lansata de catre un utilizator inregistrat si care s-a si autentificat atunci are loc preluarea si prelucrarea comenzii sale de cumparare.

Acest proces are loc in doi pasi:

Pasul 1 - este generata in mod dinamic o pagina web , ce contine un formular , in care:

sunt preluate din baza de date - din tabela utilizatori , si apoi incarcate in elemente ale

formularului: datele personale ale utilizatorului, adresa sa , numarul de telefon , adresa de e-mail . Unele dintre aceste date, cum ar fi : adresa , telefonul pot fi editate/modificate de catre 

utilizator .

Ca o masura suplimentara de securitate - codul numeric personal al utilizatorului - nu este

afisat in cadrul formularului , utilizatorul trebuind sa reintroduca in mod corect aceasta data

in campul de form corespunzator.

Sunt puse la dipozitie si alte elemente de form : pentru preluarea de la utilizator a diverse informatii , cum ar fi : informatii despre firma: nume firma , cod fiscal , cont bancar si numele bancii - daca comanda se doreste a fi facuta pe numele unei firme .

Deasemenea , utilizatorul trebuie sa selecteze o modalitate de plata a comenzii si o modalitate de livrare a produselor comandate - dintre cele cinci optiuni de plata si cele cinci optiuni de livrare puse la dispozitia utilizatorilor de catre firma All4Shop

In final , utilizatorul are posibilitatea - de a-si exprima opiniile si comentariile personale

relativ la comanda facuta , date ce vor fi introduse , deasemenea intr-un camp al

formularului.

La submiterea formului , prin cod JavaScript se verifica validitatea datelor introduse :

pentru codului numeric personal introdus - se verifica ca acesta sa fie format numai din

cifre si sa nu aiba mai putin de 13 caractere

pentru numarul de telefon - se verifica ca acesta sa fie format numai din cifre si sa aiba un

numar de cifre corespunzatoare (minim 8 si maxim 12)

pentru adresa de email - se verifica daca aceasta repecta regulile de format specifice

pentru restul campurilor - daca acestea sunt obligatorii - se verifica , ca acestea sa fie

completate de catre utilizator

Daca toate datele introduse/prezente in formular sunt valide, formularul este submis si se

trece la pasul 2

Pasul 2

Intr-o prima faza , se interogheaza baza de date si se preia din tabela utilizatori codul numeric personal al utilizatorului .

Aceasta valoare este apoi comparata cu valoarea de cod numeric personal introdusa de utilizator in cadrul formularului anterior.

Daca valorile nu coincid , utilizatorul este atentionat printr-un mesaj corespunzator si poate reveni la pasul 1 - pentru a reintroduce in mod corect aceasta valoare , fara de care procesul nu poate continua.

Daca valorile coincid , se trece mai departe si va fi generata dinamic o pagina web in care sunt afisate : pe de o parte - continutul cosului de produse ce face obiectul cumpararii si totalul de plata in USD si lei , si pe de alta parte toate informatiile preluate de la utilizatorul-client in pasul anterior.

Dealtfel , utilizatorul poate reveni la acest pas anterior daca nu este de acord/doreste modificarea unora dintre datele afisate.

Daca este de acord cu datele afisate - atunci , pentru a finaliza procesul de cumparare trebuie sa activeze butonul 'Trimite comanda' , dupa care va fi automat redirectat catre pagina de start a aplicatiei.

Prelucrarea comenzii de cumparare

Aceasta se face in urma activarii butonului 'Trimite comanda' de catre utilizator ,ce va duce la apelul scriptului 'comanda_final.php' .

Acest script realizeaza urmatoarele lucruri:

primeste ca variabile , toate datele si informatiile preluate de la utilizator in cadrul procesului 'de preluare comanda de la utilizator' si :

face unele prelucrari asupra acestor date , in vederea compatibilizarii cu structura tabelei

'Comenzi' in cadrul careia vor fi salvate toate aceste date - legate de comanda utilizatorului

introduce toate datele , inclusiv cosul de produse ca si campuri ale unei noi inregistrari ce este inserata in cadrul tabelei 'Comenzi'.

Cosul de produse - reprezentat de variabila- array $cosproduse , este serializat si , sub forma unui string binar este adaugat ca si camp de tip 'blob' al inregistrarii corespunzatoare comenzii utilizatorului in , cadrul tabelei "Comenzi' .

Deasemenea din inregistrarea inserata fac parte informatii ca: numarul de produse prezent in cadrul cosului de produse - reprezentata de variabila serializata $nrproduse si totalul de plata al cosului de produse - reprezentatea de variabila serializata $total .

La inserarea inregistrarii in cadrul tabelei "Comenzi' un camp de tipul 'timestamp' al inregistrarii va fi setat la data si momentul curent al efectuarii acestei operatii , reprezentand astfel momentul trimiterii comenzi finale , de cumparare de catre utilizator a produselor prezente in cadrul cosului de produse.

In final , cosul de produse este resetat : prin setarea la null a variabilelor ce implementeaza cosul de produse ( deci: $cosproduse =null ; $total=null; $nrproduse = null ), astfel incat utilizatorul sa poata in cadrul unei aceleasi sesiuni , sa lanseze o noua comanda de cumparare , evident - daca doreste acest lucru.

Modulul de preluare/prelucrare al comenzilor de la utilizator este implementat de urmatoarele scripturi PHP:

adauga_cos.php - permite adaugarea unui nou produs, la cosul de produse.

rapidview_cos.php - permite vizualizarea rapida a cosului de produse, fara a putea insa sa se poata modifica continutul cosului de produse.

vezi_cos.php - permite vizualizarea cosului de produse si deasemenea modificarea continutului cosului de produse .

modifica_cos.php - realizeaza efectiv modificarea cosului de produse , in functie de comanda de modificare , data de catre utilizator din cadrul paginii de vizualizare/modificare a cosului de produse.

checklogin.php - la lansarea comenzii de cumparare, verifica daca utilizatorul respectiv este unul inregistrat si autentificat, in caz contrar , redirectand utilizatorul catre sectiunea de inregistrare- autentificare a site-ului.

comanda_pas1.php - implementeaza pasul 1 din procesul de preluare a comenzii lansate de catre un utilizator .

comanda_pas2.php - implementeaza pasul 2 din procesul de preluare a comenzii lansate de catre un utilizator .

comanda_final.php - realizeaza prelucrari asupra datelor comenzii si salveaza toate informatiile ce caracterizeaza comanda utilizatorului , in baza de date. In final reseteaza cosul de produse si redirecteaza utilizatorul catre pagina de start a aplicatiei

5) Modulul de comunicare cu utilizatorii

Acest modul implementeaza o serie de facilitati suplimentare, care vin in sprijinul 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:

Forumul All4Shop - constituie o modalitate de comunicare directa intre comerciant si utilizatori .

Votarea site-ului - constituie o modalitate de sondare a opiniei publice , a utilizatorilor ,relativ la acest site.

Pagina de contact - ofera informatiile necesare pentru realizarea contactului direct , intre utilizatori si comerciant.

Votarea site-ului

Utilizatorii au posibilitaea de a-si exprima opiniile cu privire la calitatea site-ului: functionalitate , estetica si nu in ultimul rand calitatea serviciilor si informatiilor oferite.

Acest lucru asigura un mecanism de feed-back din partea utilizatorilor , ajutand la ajustarea neajunsurilor si continua imbunatatire a site-ului.

Intr-un formular , exista mai multe campuri de tip radio-button - ce exprima optiunile de votare ce pot fi selectate: 'foarte bun' , 'bun' , 'mediu' si 'slab'.

Dupa selectarea uneia dintre aceste optiuni si apasarea butonului 'Voteaza' , forumul respectiv este submis ,fiind astfel apelat scriptul 'votare_site.php' care va indeplini urmatoarele task-uri:

va reactualiza (incrementa), in baza de date , in cadrul tabelei votare_site , numarul de voturi

corespunzator optiunii de votare selectata de utilizator.

Se interogheaza baza de date si se construieste un array PHP asociativ , ce contine numarul de voturi asociate fiecarei optiuni: $voturi = array(..nume_optiune=>numar_voturi,.) .

In paralel se calculeaza numarul total de voturi exprimate pana in acel moment.

Pe baza array-ului $voturi se construieste un array ce contine procentul - din numarul total de voturi-ce corespunde fiecarei optiuni: $procent = array(nume_optiune=>procent_optiune)

Se genereaza dinamic o noua pagina web , in care, pe baza array-ului $procent , deci a procentelor calculate pentru fiecare optiune - se afiseaza in mod grafic rezultatele votarii.

Forum All4Shop

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 schimba informatii, nu numai cu partea reprezentata de comerciant, dar si cu ceilalti utilizatori - clienti ai magazinului virtual .

Prin complexitatea sa poate fi considerat o aplicatie de sine statatoare , integrata in cadrul aplicatiei de baza.

Aplicatia forum este multi-forum si multi-thread , supotand deci mai multe fire de executie.

Datele aplicatiei sunt pastrate in baza de date , in cadrul a 6 tabele.

Forumul poate fi accesat de catre utilizatori , din cadrul paginii de start a aplicatiei.

Aplicatia forum este constituita, in principal, din urmatoarele scripturi:

index.php - genereaza dinamic pagina subiectelor de discutie principale (forum-uri ) .

Sunt listate numele si descrierea tuturor forumurilor existente

Datele sun citite din baza de date prin interogarea tabelei boards.

Se poate selecta forum-ul dorit prin efectuarea unui click pe numele forum-ului respectiv.

forum.php - genereaza dinamic si afiseaza pagina web a forumului selectat.

In partea de sus a paginii apare numele forumului si descrierea-mesaj a acestuia.

Dedesubt sunt incarcate din baza de date si afisate, in structura ierarhica informatiile

corespunzatoare firelor de executie (Thread-uri) ale forumului curent.

Pentru fiecare thread sunt afisate numele , numele utilizatorului ce a creat thread-ul respectiv

si data crearii.

In partea de jos a paginii se afla un formular - in care utilizatorul are posibilitatea dea introduce datele ce vor fi utilizate pentru crearea unui nou thread principal in cadrul forumului curent selectat

In cadrul formularului trebuie specificate:

* numele si adresa de e-mail ale utilizatorului

* numele-subiect al thread-ului ce va fi creat

* un text-messaj corespunzator thread-ului - ce va constitui descrierea acestuia.

* optional, se pot specifica : un titlu-link de legatura la mesajul propus de thread

si adresa URL a paginii ce va fi incarcata in urma activarii acestui link.

* Deasemenea prin bifarea unui checkbox - poate fi selectata optiunea ca toate

mesajele inserate de catre alti utilizatori ca reply la mesajul- thread personal, sa fie trimise

prin e-mail pe adresa de e-mail personala specificata de utilizator mai sus.

Pentru crearea thread-ului trebuie apasat butonul de submit ('Post Message') al formularului .

In urma submiterii formulului:

* are loc salvarea in baza de date, in tabela messages, a datelor corespunzatoare noului thread

creat de catre utilizator

* este reapelat scriptul forum.php - care va reafiasa pagina forumului curent, in aceeasta,

aparind acum in cadrul ierarhiei de thread-uri afisate, si fiind deci disponibil si noul thread creat.

In cadrul ierarhiei de thread-uri , apare numele-subiect al fiecarui thread, sub forma unui link.

La urmarea unui astfel de link - este generata dinamic pagina thread-ului astfel selectat.

message.php - genereaza dinamic si afiseaza pagina web a unui thread al forumului curent,

thread ce a fost anterior selectat din ierarhia de thread-uri afisate in pagina forum-ului..

In partea de sus sunt afisate numelele-subiect al thread-ului , datele despre userul care a postat acest mesaj-thread, link-uri specficate de catre user la crearea thread-ului si nu in ultimul rand

mesajul-descriere al thread-ului.

In partea de jos a paginii se afla un formular , similar cu cel din pagina unui forum, in care

un alt user - altul decat utilizatorul ce a creat thread-ul , ce este acum vizualizat - are posibiliatea

de a posta un mesaj de raspuns, care impreuna cu datele adiacente specificate in cadrul

formularului vor avea ca efect crearea unui nou thread - fiu al threadului vizualizat.

In plus, in cadrul acestui formular apare facilitatea , de a insera la inceputul mesajului

ce va fi specificat de catre userul curent, a mesajului pentru care se da acest reply ( adica mesajul corespunzator thread-ului vizualizat).

La sumiterea formularului:

* are loc salvarea in baza de date, in tabela messages, a datelor corespunzatoare noului thread creat ca reply la thread-ul vizualizat

* este reapelat scriptul forum.php - care va reafisa pagina forumului curent, in aceeasta

aparind acum in cadrul ierarhiei de thread-uri si noul thread , creat ca thread-fiu al thread-ului vizualizat.

Procesul poate astfel continua , ori de cate ori din cadrul unui thread curent vizualizat ,un utilizator adauga un mesaj de reply la mesajul acestui thread..

Ca urmare va avea loc crearea unui nou thread-fiu al thread-ului curent vizualizat.

Cand se revine - in pagina forumului curent - in ierarhia de thread-uri va apare pe o pozitie

corspunzatoare si noul thread astfel creat.


Document Info


Accesari: 1950
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )