Programarea Si Proiectarea In Php a Magazinului Virtual

Cap. 3: Programarea si proiectarea în PHP a magazinului virtual

Aplicatia are ca scop promovarea și comanda on-line de produse IT. Pentru fiecare vanzare se va efectua o comandă, care trebuie confirmată pentru ca produsul sa fie livrat. Confirmarea se va face prin telefon, dar si prin e-mail, astfel că serverul pe care magazinul va fi instalat trebuie să poata să trimită și să recepționeze e-mail-uri.

3.1 Proiectarea de ansamblu

Proiectarea de ansamblu a sistemului și succesiunea activitatilor este urmatoarea:

Descrierea obiectivelor

descrierea intrarilor

descrierea ieșirilor

locul unde se afla aplicatia in sistem

Obiectivele sistemului

Proiectarea sistemului trebuie să răspundă de urmatoarele cerinte:

Fiabilitate;

Flexibilitate;

Implementare rapida;

Usurinta in utilizare;

Pret redus.

Proiectarea sistemului varealiză:

Proiectarea sistemului integrat al ofertelor și cererilor de munca;

Proiectarea site-urilor ce contine informații despre procesul activităților;

Reproiectarea unor părți ale sistemului;

Sistemul de inregistrarea cererilor și ofertelor de munca trebuie sa contina urmatoarere informații:

Asigura securitatea datelor;

Trimiterea datelor;

Stocarea datelor;.

Proiectarea bazei de date trebuie să aibă urmatoarele cerinte tehnice:

Să fie în formă normala 3;

Să raspunda restricțiilor de:

Integritate a domeniului;

Unicitatii cheii primare;

Integritate de referinta;

Integritate a relatiei;

3.2 Model relațional al bazei de date.

Modelul relațional reprezinta un model logic al bazei de date ce s-a impus datorita simplității în inteligibilitatea și modelarea structurilor de date. Construirea unei baze de date sub formă de relații se cheama model relațional al bazei de date.

O relație este construita dintr-un tabel bidimensional în care coloanele corespund atributelor, iar fiecare linie este parte a unei entități.

Fiecare relație este observata printr-un nume unic în cadrul unei baze de date.

Fiecare atribut are un nume unic și trebuie să sugereze semnificația acestuia.

O linie a relației se numește tuplu al relației .Prin relație observam o clasă de entități în care fiecare tuplu reprezintă o entitate.

3.3 Schema Conceptuala a bazei de date

Fig. 3.1 – Schema BD

3.4 Structura bazei de date

Baza de date utilizata apartine serverului MySQL și conține 5 tabele: ss_categories, ss_ordered_carts, ss_orders, ss_products, ss_special_offers.

Fig. 3.2 – tabele bazei de date

Tabela ss_categories este de tip InnoDB și are următoarele câmpuri:

Fig. 3.3 – Tabela Categorii

categoryID – este cheia primară a tabelei

name – reprezinta numele categoriei

description – descriere

picture – fotografie

Tabela ss_ordered_carts este de tip InnoDB și prezinta următoarele câmpuri:

Fig. 3.4 – Tabela – ordered carts

productID – id produs – cheie primara

orderID – id comanda

name – nume produs

price – pret

quantity – cantitate

Tabela ss_orders este de tip InnoDB și are următoarele câmpuri:

Fig. 3.5 – Tabela 0rders

orderID – id vanzare – cheie primara

order_time – data efectuari comenzi

cust_firstname – nume client

cust_lastname – prenume client

cust_email – email client

cust_country – tara de resedinta a clientului

cust_zip – codul postal

cust_address – adresa

cust_phone – nr. telefon

Tabela ss_special_offers este de tip InnoDB și are următoarele câmpuri:

Fig. 3.6 – Tabela Oferte speciale

offerID – oferta ID – cheie primara

product ID – produsID

sort_order – sortare

Tabela ss_products este de tip InnoDB și are următoarele câmpuri:

Fig. 3.7 – Tabela produse

productID – ID produs – este cheie primara

categoryID – ID categorie

name – nume produs

description – descriere largita

customers_rating – rezultatul votului

price – pret

picture – poza

in stock – in stoc da/nu

thumbnail – poza mica

customer_votes – voturile clientilor

big_picture – poza mare

brief_description – descriere scurta

list_price – listare pret

product_code – codul produsului

3.5 Definirea documentelor de ieșire

Prin ieșirile unui subsistem informatic intelegem totalitatea informațiilor furnizate de acesta beneficiarilor externi și interni, plus rapoarte, note de informare-raportare, etc.

Definirea ieșirilor fiecărui subsistem informatic, are la baza stabilirea la nivel global a informațiilor esentiale conducerilor pe mai multe trepte ierarhice ale sistemului, enumerand pentru fiecare în parte: aspectele programatice (legate de utilitate) și aspectele semantice (legate de conținut).

La nivel global, vor fi enumerate toate caracteristicile ieșirilor sistemului construit, cum ar fi: numarul de exemplare, periodicitatea, destinația și tipul de exemplar.

Din panoul de administrator se pot accesa datele necesare pentru procesarea comenzii, spre exemplu:

Date Contact: Nume / Prenume / E-mail / Telefon / Adresă / Oraș

Produse: Denumire Produs / Nr Produse Comandate

Total: Costul Produselor

3.6 Definirea documentelor de intrare

Prin ”intrările” sistemului intelegem multitudinea datelor care descriu dinamica și starea fenomenelor și proceselor economice din domeniul analizat, care sunt folositoare construirii, actualizării bazei de date și obținerii situațiilor de ”ieșire”.

Pentru proiectarea videoformatelor de intrare, există două moduri de prezentare a dialogului operator-calculator și anume:

1.întrebare-răspuns cu parcurgerea liniilor ecranului

2.expunerea machetei de introducere a datelor de intrare

Trimite Comanda

Imediat după ce utilizatorul a pus în coșul de cumpărături produsele alese, trebuie completat formularul de trimitere a comenzii . Pentru a putea trimite comanda utilizatorul trebuie să completeze următoarele câmpuri:

”Nume” – Numele Utilizatorului

”Prenume” – Prenumele Utilizatorului

”Email” – Adresa E-mail

”Telefon” – Număr de Telefon

”Oraș” – Orașul unde vor fi trimise produsele

”Adresă” – Adresa unde vor fi trimise produsele comandate

”Judet” – Judetul unde vor fi trimise produsele

”Tara” – Tara unde vor fi trimise produsele

Dupa ce câmpurile au fost completate, se apasă butonul trimite , iar comanda va fi trimisă către un administrator.

Adaugă Categorie

Pentru efectuarea unor alte categorii de produse este obligatorie completarea a 4 câmpuri:

”Parinte” – Categorie Principală / Subcategorie dacă este selectată o categorie existentă.

”Nume Categorie” – Numele Categoriei

”Logo” – Poza aceastei categorii

”Descriere” – Descrierea exacta a categoriei adaugate

Dupa completarea acestor campuri se apasa butonul „Salveaza”

Adaugă Produs

Introducerea unui alt produs în baza de date de catre administrator se face prin completarea unui formular .

” Categorie” – Categoria unde se afla produsul

” Denumire” – Nume produs

” Preț” – Costul produsului

” Preț Nou” –In cazul in care se va completa câmpul Preț Nou – Produsul respectiv va aparea în categoria de PROMOȚII.

” Poza” – Upload fotografie produs

” În Stoc” – Da/Nu – Produsul este sau nu în stoc.

” Descriere” – Descrierea produsului cu pricina

Dupa ce se vor completa aceste campuri se apasa butonul „Salveaza”

Setari Generale

Configurare

” Nume Site” – Setare nume site.

” Url” – Adresa site (ex: www.pc-shop.ro).

” Admin Email” – Setare adresa e-mail administrator.

” Verificare Email” – Verificare e-mail.

Moneda

” Simbol Moneda” – Setare simbol moneda (ex: RON , $ , €)

” Moneda Curenta” – Setare Moneda

” Monede Acceptate” – Lista monede acceptate (ex: RON , USD , EURO)

Parola Admin – Schimbare Parola

” User” – Editare user administrator.

” Parola Veche” – Parola Veche

” Parola Noua” – Adaugare Parola Noua

” Confirmare Parola Noua” – Verificare Parola Noua

Pagini Site – Editare Pagini

” Pg. Despre Noi” – Editare pagina Despre Noi

” Pg. Plata si Livrare” – Editare pagina Plata si Livrare.

3.7 Descrierea funcțiilor utilizate în aplicație:

isset() – funcție pentru verificarea unei valoari a unei variabile a fost setata;

strlen() – funcție pentru returnarea lungimii unui șir de caractere;

printf() – afișearea unui șir de caractere formatat;

require() – funcție care contine în script cuprinsul unui fișier cu conditia de a fi inserat o singură dată (spre deosebire de funcția include() – care permite includerea fișierului de mai multe ori) ;

mail($to, $subject, $message, $headers) – funcție utilizata pentru trimiterea unui email (de la $to, cu subiectul $subiect, având ca mesaj $message cu headerele adiționale $header);

crypt($pass, "BB") – funcție care criptează un șir de caractere ($pass) după o cheie de criptare (BB);

trim() – funcție care sterge spațiile goale de la începutul și sfârșitul unui șir de caractere numit ca parametru (asemănător funcției standard în C);

strcmp() – funcție care compară două șiruri de caractere (asemănător funcției standard în C)

mysql_fetch_array() – returnează o linie din comanda;

mysql_query() – trimite o comandă mysql bazei de date active de pe server;

mysql_error() – intoarce mesajul de eroare sub formă de șir de caractere generat de baza de date mysql;

mysql_num_rows() – intoarce numărul de linii din rezultatul cererii mysql;

mysql_select_db($dbname) – selecteaza o bază de date mysql după conectarea la un server mysql;

mysql_connect('localhost', $user, $pass) – acceseaza o conexiune către un server mysql (numele serverului – ‚localhost’, $user – username-ul si parola – $pass);

session_destroy() – elimina toate datele asociate cu sesiunea curentă;

session_start() – incepe o secțiune de date bazată pe ID-ul de sesiune trimis printr-o cerere GET sau POST;

ob_start() – stopeaza afișajul bufferului până la terminarea execuției scriptului;

function draw_data_form($prefix, $an, $luna, $zi, $an_min, $an_max) – funcție care generează codul HTML pentru afișajul datei calendaristice sub forma a trei elemente combo-box;

function afis_next($p, $total) – funcție care afișează lista paginilor dintr-un meniu de enumerare a anumitor informații;

function verifica() – funcția utilizata frecvent în proiect, ce verifică datele transmise de un formular în vederea inserarii acestora într-un tabel (într-o bază de date);

function init_print() {

isNS=(document.layers==1);

print(); – incepe listarea la imprimantă a unui site;

Similar Posts