Proiectarea Si Programarea In Php a Magazinului Virtual
Cap. 3: Proiectarea și programarea în PHP a magazinului virtual
Aplicatia proiectata are ca obiectiv promovarea și comanda on-line de produse IT. Fiecare vânzare va fi precedată de o comandă, care va trebui confirmată pentru ca livrarea să aibă loc. Confirmarea se va face telefonic dar si prin e-mail, astfel că serverul pe care magazinul va fi instalat va trebui să fie capabil să trimită și să recepționeze e-mail-uri.
3.1 Proiectarea de ansamblu
Proiectarea de ansamblu a sistemului informatic și succesiunea activitatilor din cadrul proiectarilor este urmatoarae:
definirea obiectivelor
locul aplicației in sistem
definirea ieșirilor
definirea intrărilor
Obiectivele sistemului
Proiectarea sistemului trebuie să răspundă de urmatoarele cerinte:
Flexibilitate;
Fiabilitate;
Ușurința în folosire;
Implementarea cât mai rapidă;
Cost redus;
Eficiența redusă.
Proiectarea sistemului varealiză:
Proiectarea sistemului integrat al cererilor și ofertelor de munca;
Proiectarea paginilor web care va avea la bază informații despre procesul activitrăților;
Reproiectarea unei părți a sistemului existent;
Sistemul de inregistrarea cererilor și ofertelor de munca trebuie sș realizeze urmatoarere informații:
Asigură securitatea și confidențialitatea datelor;
Stocarea datelor;
Transmiterea datelor;.
Proiectarea bazei de date trebuie să aibă urmatoarele cerinte tehnice:
Să fie în formă normala 3;
Să raspunda restricțiilor de:
Unicitate a cheii;
Integritate a domeniului;
Integritate a relației;
Integritate de referință;
3.2 Model relațional al bazei de date.
Modelul relațional este un model logig al bazei de date care sa impus datorită naturaleții sale și simplității în înțelegerea și manipularea structurilor de date. Rrezentarea unei baze de date sub formă de relații se numește model relațional al bazei de date.
O relație este formată dintr-un tabel bidimensional în care coloanele corespund atributelor iar fiecare linie corespunde unei entități.
Fiecare relație se identifică 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 materializăm 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 folosită este cea aparținând 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 – cheia primară a tabelei
name – nume categorie
description – descriere
picture – fotografie
Tabela ss_ordered_carts este de tip InnoDB și are 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 – cheie primada
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 se va înțelege totalitatea informațiilor furnizate de acesta beneficiarilor interni și externi, respectiv rapoarte, note de informare-rapoatre, etc.
Definirea ieșirilor fiecărui subsistem informatic, presupune, în primul rând, stabilirea la nivel global, a informațiilor necesare conducerilor de pe diferite trepte ierarhice ale sistemului, specificând pentru fiecare în parte: aspectele programatice (legate de utilitate) și aspectele semantice (legate de conținut).
La nivel global, se vor prezentă toate caracteristicile ieșirilor sistemului proiectat, cum ar fi de exemplu: periodicitatea, numărul de exemplare, destinația fiecărui exemplar și tipul de exemplar.
Din panoul de administrator se pot prelua datele necesare pentru procesarea comenzii și anume:
Date Contact: Nume / Preume / Email / Telefon / Adresă / Oraș / Cod Poștal
Produse: Denumire Produs / Nr Produse Comandate
Total: Costul Produselor
3.6 Definirea documentelor de intrare
Prin ”intrările” sistemului vom înțelege totalitatea datelor care reflectă starea și dinamica fenomenelor și proceselor economice din domeniul analizat, care sunt necesare creării, actualizării bazei de date și obținerii situațiilor de ”ieșire”.
Pentru proiectarea videoformatelor de intrare, există două moduri de desfășurare a dialogului operator-calculator și anume:
întrebare-răspuns cu defilarea liniilor ecranului
afișarea machetei de introducere a datelor de intrare
Trimite Comanda
Imediat după ce utilizatorul a adăugat în coșul de cumpărături produsele dorite urmează completarea formularului 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
”Adresă” – Adresa unde vor fi livrate produsele comandate
”Oraș” – Orașul unde vor fi livrate produsele
”Judet” – Judetul unde vor fi livrate produsele
”Cod Poștal” – Codul Orașului
”Tara” – Tara unde vor fi livrare produsele
Odată câmpurile completate se apasă butonul trimite , iar comanda va fi trimisă către un administrator.
Adaugă Categorie
Pentru adăugarea unei noi categorii de produse este necesară completarea a 4 câmpuri:
”Parinte” – Categorie Principală / Subcategorie dacă este selectată o categorie existentă.
”Nume Categorie” – Numele Categoriei
”Logo” – Poza aferenta pentru aceasta categorie
”Descriere” – Descrierea sumara a categoriei adaugate
Dupa completarea acestor campuri se apasa butonul „Salveaza”
Adaugă Produs
Adăugarea unui nou produs în baza de date de către administrator se face completând un formular .
” Categorie” – Categoria unde apare produsul
” Denumire” – Nume produs
” Preț” – Prețul produsului
” Preț Nou” – Dacă se va completa câmpul Preț Nou – Produsul respectiv urmează să apară în categoria de PROMOȚII.
” Poza” – Upload fotografie produs
” În Stoc” – Da/Nu – Produsul se află sau nu în stoc.
” Descriere” – Descrierea produsului respectiv
Dupa completarea acestor 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 care verifică dacă a fost setată o valoare a unei variabile;
strlen() – funcție ce returnează lungimea unui șir de caractere;
require() – funcție care include în scriptul curent conținutul unui fișier cu verificarea de a fi introdus o singură dată (spre deosebire de funcția include() – care permite includerea fișierului de mai multe ori) ;
printf() – funcție care afișeaza un șir de caractere formatat;
crypt($pass, "BB") – funcție care criptează un șir de caractere ($pass) după o cheie de criptare (BB);
mail($to, $subject, $message, $headers) – funcție folosită pentru a trimite un email (de la $to, cu subiectul $subiect, având ca mesaj $message cu headerele adiționale $header);
strcmp() – funcție care compară două șiruri de caractere (asemănător funcției standard în C)
trim() – funcție care elimină spațiile goale de la începutul și sfârșitul unui șir de caractere specificat ca parametru (asemănător funcției standard în C);
mysql_query() – trimite o comandă mysql bazei de date active de pe server;
mysql_fetch_array() – returnează o linie din rezultatul comenzii;
mysql_error() – returnează mesajul de eroare sub formă de șir de caractere generat de baza de date mysql dacă este cazul;
mysql_num_rows() – returnează numărul de linii din rezultatul unei cereri mysql;
mysql_connect('localhost', $user, $pass) – deschide o conexiune către un server mysql (numele serverului – ‚localhost’, $user – username-ul si parola – $pass);
mysql_select_db($dbname) – alege o bază de date mysql după conectarea la un server mysql;
session_start() – inițializează o secțiune de date bazată pe ID-ul de sesiune trimis printr-o cerere GET sau POST;
session_destroy() – distruge toate datele asociate cu sesiunea curentă;
ob_start() – oprește afișarea bufferului până la terminarea execuției scriptului;
function draw_data_form($prefix, $an, $luna, $zi, $an_min, $an_max) – funcție definită de programator care generează codul HTML pentru afișarea datei calendaristice sub forma a trei elemente combo-box;
function verifica() – funcția folosită foarte des în proiect, care verifică datele trimise de un formular în vederea introducerii acestora într-un tabel (într-o bază de date);
function afis_next($p, $total) – funcție care afișează lista paginilor dintr-un meniu de afișare a anumitor informații;
function init_print() {
isNS=(document.layers==1);
print(); – inițializează listarea la imprimantă a unei pagini web;
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Proiectarea Si Programarea In Php a Magazinului Virtual (ID: 150218)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
