Proiectarea Aplicatiei Pentru Comercializarea Utilajelor

Cuprins

Introducere

Într-o lume computerizată ca cea în care trăim, unde tehnologia avansează de la o zi la alta Internetul a devenit cea mai importantă sursă de informare și entertainment pentru majoritatea populației. De aceea multe dintre afacerile tradiționale și-au automatizat unele activități devenind afaceri electronice care sunt derulate prin Internet cu ajutorul site-urilor.Un astfel de exemplu este comerțul electronic în care companiile pun la dispoziția consumatorilor prin intermediul magazinelor electronice serviciile pe care le oferă și comerțul tradițional.

Proiectul de față prezintă un site realizat pentru a descrie activitatea unei firme de utilaje alimentare , și comercializarea produselor și serviciilor oferite de aceasta.

Mi-am ales această temă deoarece site-ul web cu rol de instrument de vânzare reprezintă un mijloc foarte important în realizarea comerțului electronic, care este des întâlnit în zilele noastre.

De aceea pentru ca firmele să își crească volumul vânzărilor și să devină mai cunoscute pentru a câștiga încrederea clienților trebuie să își achiziționeze un site web. Astfel prin intermediul site-ului firma își poate prezenta serviciile , produsele , ofertele speciale , discount-urile , și alte facilități pe care le oferă cum ar fi aprovizionarea produselor prin intermediul unei comenzi online.

Site-urile web aduc beneficii și utilizatorilor , nu numai firmelor deoarece potențialii clienți au acces rapid la informațiile de care sunt interesați: detalii legate de produs , listă de prețuri.

Lucrarea este alcătuită din 3 capitole în care sunt prezentate principalele instrumente utilizate în dezvoltarea unui site,astfel:

În primul capitol este prezentat conceptul de bază de date, aspectele generale ale bazelor de date relaționale , orientate obiect și distribuite și principalele caracteristici ale acestora.

În cel de-al doilea capitol sunt descrise principalele caracteristici ale bazei de date MySQL și ale limbajului PHP cu ajutorul cărora putem crea pagini dinamice care vor da naștere unui site.

Al treilea capitol conține o prezentare a modului în care a fost dezvoltată aplicația și de asemenea modalitatea de funcționare a acesteia.

Noțiuni generale baze de date

Baze de date relaționale (BDR)

Baza de date este o colecție de date cu volum mare care conțin nucleul de date folosite intr-un sistem informatic.” Astfel, baza de date este un model al unor aspecte ale realității unei unități economice, modelată prin intermediul datelor. Diferitele obiecte din cadrul realității, ce prezintă interes, poarta numele de clase sau entități. Pentru aceste obiecte sunt achiziționate și memorate date referitoare la diferite caracteristici (atribute). Baza de date reprezinta un ansamblu intercorelat de colecții de date, prin care se realizează reprezentarea unei realități.”[3]

Se numesc date orice formă de structurare a materiei sau energiei care poate fi înzestrată cu o semnificație.

Se numesc informații semnificațiile date de mintea umană datelor.

“Un fișier reprezinta un ansamblu de înregistrări fizice omogene din punct de vedere al conținutului și al prelucrării.

Înregistrarea fizică este legatura de transfer între memoria internă și cea externă a calculatorului.”[4]

Sistemele de baze de date, numite și bănci de date, reprezintă un sistem de organizare și prelucrare, a informației, care implică existența următoarelor elemente:

culegere de date care se află în interdependență ;

prezentarea datelor și a relațiilor dintre ele;

un set de programe care asigură actualizarea ,interogarea bazei de date .

Majoritatea sistemelor de baze de date actuale sunt realizate în modelul de date relațional .

Modelul relațional

Primul exemplu de model de date formal a fost modelul de date relational care a fost propus de cercetătorul E.F.Codd de la compania IBM, prin publicarea lucrarii “Un model relațional de date pentru bănci mari de date partajate”.

Modelul de date relațional se bazează pe noțiunea de relație din matematică, care constă dintr-un tabel bidimensional, compus din linii și coloane..

O bază de date care respectă modelul relațional este o bază de date relaționala.

O bază de date relaționale este un ansamblu organizat de tabele împreună cu legăturile dintre ele.[5]

Într-o bază de data relațională datele sunt stocate sub forma tabelelor. Tabela bidimensională numită relație permite reprezentarea unei entități ,astfel:

atributele entității sunt reprezentate de coloanele tabelei ;

membrii entității sunt reprezentați de liniile (rândurile) tabelei.

Figura 1.0.1 Elementele unei relații (tabel) [14]

“Fiecare atribut este caracterizat printr-un nume și un domeniu de valori pe care le poate lua. Domeniul reprezinta mulțimea tuturor valorilor acceptate pentru un atribut al relației.” [5]

Numele fiecărei coloane este distinct,in prima linie sunt incluse numele de atribute. O linie dintr-o relație se numește tuplu care este distinct față de alt tuplu.

Orice tabelă posedă cel puțin o cheie, adică un atribut sau un grup de atribute prin care se poate identifica în mod unic orice linie. Dacă o tabelă dispune de mai multe chei, una va fi folosită drept cheie primară.

Restricțiile de integritate ale modelului relațional sunt:

restricția de unicitatea cheii (UNIQUE)

restricția referențială – cheie externă (REFERENȚIAL)

restricția entității (NOT NULL)

restricțiile de comportament (CHECK)

Cheia primară trebuie să respecte două restricții de integritate:

“integritatea entității – conform căreia nici un atribut care corespunde cheii nu poate avea valori nule;” [11]

“integritatea referențială – conform căreia, dacă într-o relație apare un atribut prin care se face referință la un alt tuplu din relația curentă sau o altă relație, atribut care poarta denumirea de cheie externă, atunci el trebuie să aibă valori valide, care să existe în relația către care face referință.”[11]

Deși fiecare tabel relațional poate există independent, esența bazelor de date este stocarea informațiilor între care există legături. Legătura între linii din tabele diferite se realizează prin intermediul unei coloane comune, care se numește și cheie secundară sau cheie externă. O cheie secundară este un atribut care apare într-o tabelă și care este cheie primară într-o altă tabelă cu care se află în legătură. Cheile primare și cheile externe stabilesc relații intre tabele și permit crearea legăturilor între date, atunci când este necesar.

Prin folosirea relațiilor, se pot combina date din mai multe tabele în aceeași interogare a bazei de date.

Reprezentarea entităților și a legăturilor dintre acestea se poate realiza folosind diagrama de relații a entităților (ERD – Entity Relationship Diagram). Diagramele ERD ne pun la dispoziție o metodă folosită în vederea prezentarii proiectului general al unei baze de date relaționale, într-un format ușor de înțeles pentru utilizatorii bazei de date.

Proiectarea bazei de date relaționale

Proiectarea unei baze de date relaționale necesită parcurgerea următoarelor etape:

Formularea problemei care presupune fixarea obiectivelor programului informatic în conformitate cu “cerințele managementului activității economice pentru care este proiectată baza de date. Baza de date trebuie să permită atât obținerea unor informații de detaliu, elementare, cât și calculul și prezentarea unor indicatori sintetici, agregați.”[8]

Analiza cerințelor informaționale se concentrează asupra:

datelor de intrare necesare prin intermediul carora se obțin datele de ieșire.

datelor de ieșire ;

“Datele de intrare se culeg din documentele primare care circulă în cadrul fluxului informațional al firmei. Datele de iesire se vor integra în ansamblul de rapoarte, liste, situații cu rezultate pe care le furnizează sistemul informațional compartimentelor de conducere.”[8]

Definirea tabelelor și relațiilor dintre acestea.

“Analiza cerințelor informaționale și a proceselor de prelucrare va conduce la identificarea datelor ce vor trebui stocate , care vor alcătui tabelele bazei de date. Structura unei tabele este reprezentată de lista câmpurilor asociate tabelei împreună cu descrierea atributelor fiecărui câmp (natură, lungime, număr de zecimale etc.), astfel în tabelă vor exista următoarele categorii de câmpuri:

câmpuri de identificare (chei primare și chei condiționate);

câmpuri tip dată calendaristică;

câmpuri cantitativ-valorice;

câmpuri de legătură cu alte tabele;

câmpuri de stare care păstrează informații privind ultimele operații de prelucrare care au fost efectuate pe înregistrările din tabel.

Relațiile dintre tabele se caracterizează prin plasarea unor câmpuri comune în structura fiecăruia dintre tabelele aflate în relație directă. Câmpurile care pot fi folosite în acest scop sunt cele care au proprietatea de a identifica în mod unic o înregistrare dintr-o tabelă.”[8]

Optimizarea structurii bazei de date urmărește: reducerea redundanței datelor adică suprimarea duplicării unor câmpuri în mai multe relații sau suprimarea câmpurilor obținute prin calcul pe baza altor câmpuri. Se mai urmărește și eliminarea anomaliilor de actualizare care se referă la eliminarea anomaliilor de ștergere, respectiv de modificare.

Baze de date orientate obiect (BDOO)

Modelul orientat obiect

Limitele sistemelor relaționale, au determinat evoluția spre sistemele orientate obiect.

Pentru orice aplicație informatică se delimitează trei domenii:interfața, datele și prelucrările. Tehnologia “orientată pe obiecte” reduce cele trei domenii la unul singur:obiectul. “Conceptul orientat pe obiecte leagă întrucâtva datele care descriu obiectul de sistemul de gestiune a datelor, care trebuie să fie compatibil și să admită că obiectul este o unitate de observare care încapsulează atât datele care-l descriu, precum și instrucțiunile care operează asupra datelor.” [5]

Figura 1.2 Paralelă între noțiunile utilizate în sistemele relaționale și orientate obiect[11]

Folosirea tehnologiei orientate obiect în baze de date a dus la apariția bazelor de date orientate pe obiecte. Bazele de date orientate pe obiecte au apărut la sfârșitul anilor 1980, dezvoltarea lor fiind favorizată de aspecte precum : tipuri de baze de date noi, dezvoltarea limbajelor de programare.

Ansamblu de date și a prelucrărilor asociate integrate într-o aceeași capsulă poate fi define un obiect.”Încapsularea este reuniunea definiției statice a unui obiect prin atributele sale și definirea dinamică a acestui obiect, cu ajutorul regulilor de comportament”[5] care sunt traduse cu ajutorul metodelor.Metodele reprezintă prelucrările asociate obiectelor.

Obiectele sunt caracterizate printr-o structură și o interfață .Structura obiectului este reperata printr-un identificator intern și de o stare care permite regruparea atributelor ce pot conține:valori atomice și obiecte (accesate prin identificatorii acestora). Principiul încapsulării nu permite accesarea sau modificarea directă din exterior a structurii obiectului și a metodelor sale, de aceea structura obiectului este recunoscută doar de obiectul însuși. Interfața reprezintă partea vizibilă a obiectului.

Conceptul de ascundere a informațiilor se referă la faptul că detaliile externe ale unui obiect sunt separate de aspectele sale interne.

Majoritatea obiectelelor poseda în comun aceeași structură și același comportament.”O clasă este privită ca un obiect care are atribute și metode proprii definite o singură dată pentru toate obiectele conținute de aceasta.Astfel,o clasă se caracterizează prin atributele clasei și respective metodele clasei.”[1]

Obiectul care este creat după schema precizată de o clasă este o instanță a acelei clase iar operația prin care obiectul este creat se numește instanțiere.Obiectul nou generat posedă valorile corespunzătoare atributelor sale, lista atributelor fiind generată de către clasă.

Ansamblul instanțelor unei clase alcătuiește o coleciectele conținute de aceasta.Astfel,o clasă se caracterizează prin atributele clasei și respective metodele clasei.”[1]

Obiectul care este creat după schema precizată de o clasă este o instanță a acelei clase iar operația prin care obiectul este creat se numește instanțiere.Obiectul nou generat posedă valorile corespunzătoare atributelor sale, lista atributelor fiind generată de către clasă.

Ansamblul instanțelor unei clase alcătuiește o colecție care poartă denumirea de extensia clasei și care are același nume cu al clasei.

Clasele și obiectele grupate și stocate într-o formă fizică alcătuiesc module, ce formează arhitectura fizică a sistemului de gestiune a bazei de date.

Clasa derivată poate moșteni de la clasa de bază atribute și metode. Moștenirea permite ca o clasă să fie definită ca un caz special al unei clase mult mai generale și să preaia de clasa de bază atribute, metode.Astfel, clasele derivate sunt subclase ,iar clasele generatoare ,ce au caracteristici mai generale sunt superclase.Procesul de formare a unei super clase se numește generalizare ,iar formarea unei subclase se numește specializare.

Conexiunile care se prezintă între obiecte sunt materializate prin mesaje . Un mesaj reprezintă o cerere a unui obiect emitent către alt obiect receptor, prin care emitentul îi solicit receptorului să execute una dintre metodele sale.Emitentul și receptorul pot reprezenta unul și același obiect.

Într-o bază de date orientate obiect, accesul la date se realizează prin intermediul unei hărți a ierarhiilor și relațiilor claselor de obiecte. De asemenea ,se poate realiza gruparea sau partiționarea fizică a datelor, tehnică care poartă numele de Catering.

“BDOO sunt utilizate în domenii precum:simularea și modelarea diferitelor fenomene și procese, administrarea documentelor, proiectele CASE (Computer Aidem Software Engineering), CAD (Computer AidedDesign), CAM (Computer Aided Manufacturing), CAE (Computer Aided Engineering), multimedia, ingineria cunoașterii.” [1]

Caracteristici ale bazelor de date orientate obiect

Principalele caracteristici ale unei baze de date orientate obiect sunt:

“Sunt tratate în mod unitar (ca obiecte): datele, programele, comunicația, de unde rezultă independența totală între ele.

Comunicația și distribuirea sunt asigurate atât între date, cât și între programe.

Structura de date este simplificată foarte mult, de unde rezultă ușurința în utilizare și portabilitatea ridicată a sistemelor rezultate.

Pot fi abordate foarte multe domenii din lumea reală în care se regăsesc cele mai diferite tipuri de date.

Se asigură: accesul neprocedural, comunicația, portabilitatea, deschiderea aplicațiilor cu baze de date.”[17]

Avantajele bazelor de date orientate obiect

Sub aspectul avantajelor aduse de structurarea orientată obiect a datelor se pot menționa și alte avantaje, cum ar fi:

ușurința proiectării și reutilizării codului, astfel odată testată funcționarea corectă unor obiecte într-o aplicație, acestea pot fi utilizate și în alte aplicații.

grad înalt de abstractizare, astfel proiectantul și utilizatorii pot obține o imagine de ansamblu, , fără a cunoaște detaliile care au contribuit la construcția obiectului;

siguranța datelor, dat fiind faptul că obiectele se pot accesa decât prin metodele lor, se asigură confidențialitatea și se diminuează frecvența apariției erorilor legate de manipularea greșită a datelor.

Baze de date distribuite (BDD)

Conceptul de baze de date distribuite (BDD)

Datorita progreselor înregistrate în tehnologia BD a fost necesara implementarea unei baze de date care elimină o parte din neajunsurile bazelor de date centralizate, rezolvând problema insulelor de informații. Astfel, bazele de date ditribuite au apărut ca o necesitate, în special în cazul rețelelor de calculatoare, pentru a sprijini gestionarea datelor în situația când acestea se regăsesc fizic în diferite puncte ale rețelei.

Cercetările în domeniul BDD au început în anii 1970 dar adevăratele sisteme distribuite au început să apară pe piață pe la mijlocul anilor 1980: ORACLE SQL*STAR, INGRES/STAR, VAX Data Distribution. Bazele de date care sunt dispersate geografic se spune că sunt distribuite.”O bază de date distribuită permite ca o colecție de relații, dintr-o bază de date, care se afla pe un numar mare de mașini care lucrează sub diverse sisteme de operare și sunt legate prin diferite rețele de comunicație, să poată fi utilizate ca și cum ar fi o singură bază de date pe o singură mașină.”[2]

Principalele cracteristici ale BDD sunt :

Organizarea a datelor în sisteme distribuite este, asemănătoare cu organizarea datelor în baze de date locale (modele de date, metodologii de proiectare, obiective, etc.), la care se adaugă unele aspecte specifice;

BDD sunt manipulate de utilizator fără ca acesta să cunoască locul în care se află datele;

“Datele sunt multiplicate din diferite considerente (fiabilitate, performanță, frecvența de utilizare, siguranță) dar acest lucru este invizibil pentru utilizator;”[9]

Obiectivele bazelor de date distribuite sunt:

creșterea siguranței sistemului și a disponibilității datelor;

descentralizarea resurselor sistemului;

mai bună utilizare a resurselor;

sporirea adaptabilității sistemului la modificările din structura organizatorică.[4]

Într-o bază de date distribuită există patru moduri de alocare a datelor :

Centralizată – baza de date se află în întregime pe un singur site din rețea, cu utilizatori distribuiți în întreaga rețea;

Partiționată(fragmentată) – baza de date este partiționată în mai multe fragmente disjuncte, fiecare fragment fiind atribuit unui site;

Replicare completă – presupune menținerea unei copii complete a BD pe fiecare site;

Replicare selectivă – această strategie este o combinație între partiționare, replicare și centralizare cu scopul de a se cumula, pe cât posibil, avantajele fiecărei strategii și să se elimine dezavantajele.

BDD omogene și eterogene

Bazele de date distribuit sunt folosite pentru a putea accesa atat datele stocate in baze de date locale cat și datele stocate in baze de date aflate la distanță. Sunt două tipuri de baze de date distribuite: omogene și eterogene.

Figura 1.3 Baza de date distribuită omogenă[14]

Un sistem de gestiune a bazelor de date în care ruleaza o rețea de două sau mai multe baze de date se numeste sistem de baze de date distribuita omogen.

Într-un sistem de baze de date distribuit eterogen presupune existența a cel puțin două sisteme diferite de gestiune a bazelor de date în care există o rețea de două sau mai multe baze de date .

Figura 1.4 Baza de date distribuită eterogenă[14]

Avantajele și dezavantajele unei BDD

Ioan Dorso [4] enumera principalele avantajele si dezavantaje ale bazelor de date distribuite :

Avantaje:

“Partajarea datelor și gestiunea distribuită a acestora;

Fiabilitatea și disponibilitatea datelor – fișierele distruse se pot reface rapid utilizând replici aflate pe alte site-uri, iar o greșeală într-o bază de date distribuită va afecta de cele mai multe ori o singură partiție, și nu toată baza de date;

Prelucrarea accelerate a cererilor;

Reducerea relativă a costurilor – costă mai puțin să se creeze o rețea de computere mai mici, dar cu puterea totală a unui singur computer mare.

Dezavantaje :

Complexitatea – trebuie depusă muncă suplimentară de către administratorii bazelor de date pentru se a asigura că natura distribuită a sistemului este transparentă (invizibilă pentru utilizator);

Securitatea – toate partițiile bazei de date sunt securizate. Drept urmare și infrastructura e securizată ;

Dificultatea de a menține integritatea – dacă baza de date este concepută greșit, atunci asigurarea integrității poate suprasolicita și chiar bloca rețeaua dintre noduri;

Lipsa de experiență – câmpul de activitate fiind dificil, nu există documentație suficientă despre experiența acumulată în diverse proiecte concrete.”

Utilizare MySQL si PHP

Notiuni generale MYSQL

Introducere in MySQL

MySQL reprezintă un SGBD foarte utilizat ,produs de compania suedeză MySQL AB. MySQL include un server SQL, programe client pentru accesul la server, instrumente administrative și o interfață de programare pentru scrierea propriilor dumneavoastră programe.

Accesul la serverul MySQL este permis mai multor utilizatori autorizați.Astfel ,MySQL este un server multi-user(mai mulți utilizatori) și mulți-thread(mai multe fire de execuție) .MySQL utilizează limbajul SQL(Structured QueryLanguage pentru interogarea bazelor de date,.Limbajul SQL cuprinde limbajul de definire a datelor (DDL- Data Definition Language) și limbajul de manipulare a datelor (DML-Data Manipulation Language).

Istoria dezvoltării MySQL începe din anul 1979 și a câștigat de mai multe ori premiul cititorilor – Linux JournalReaders' Choice Award. MySQL nu este un proiect Open Source, deoarece este necesară o licență în anumite condiții. Totuși, MySQL se bucura de o amplă popularitate în comunitatea Open Source, deoarece codul sursa este disponibil pentru a fi modificat, MySQL fiind distribuit gratuit sau la un cost redus.

MySql este întâlnit de cele mai multe ori cu limbajele de programare JAVA sau PHP dar există multe scheme API (Application Programming Interfaces) disponibile pentru MySQL care fac posibila scrierea aplicațiilor și în alte limbaje de programare pentru accesarea bazelor de date MySQL.

“Pentru a administra bazele de date MySQL se poate folosi un modul linie de comandă sau o interfață grafică”[12] cum ar fi MySQL Administrator, MySQLQuery Browser și phpMyAdmin. MySQL poate fi rulat pe multe dintre platformele software existente .

Serverul de baze de date MySQL este foarte fiabil și ușor de utilizat. Inițial a fost dezvoltat pentru a manipula baze de date de dimensiuni mari mult mai rapid decât soluțiile existente.

Utilizarea bazei de date MySQL

Înainte de a lucra cu o bază de date trebuie să stocăm date în baza noastră de date.Inserarea datelor se face cu instrucțiunea SQL: INSERT. Folosind aceasta instrucțiune putem insera valori pentru a completa în ordine coloanele tabelei sau putem să completăm numai anumite coloane în cazul în care avem date parțiale despre o anumită înregistrare sau unele câmpuri din înregistrare sunt opționale.

Regăsirea datelor din baza de date se face folosind instrucțiunea SELECT, prin selectarea acelor linii din tabelă care corespund criteriului specificat. Acest lucru se poate face folosind clauza WHERE. MySQL accepta un set complet de operatori de comparație și expresii regulate.

În afară de regăsirea datelor, o bază de date poate fi actualizată prin utilizarea unei instrucțiuni UPDATE. Dacă nu dorim actualizarea tuturor liniilor din tabel, putem limita actualizarea la numite linii folosind clauza WHERE și putem limita numărul total de linii afectate prin specificarea clauzei LIMIT.

Folosind instrucțiunea ALTER TABLE putem modifica structura tabelelor din baza de date. MySQL permite să faceți câte modificări doriți într-o instrucțiune ALTER TABLE.

Ștergerea de înregistrări dintr-o bază de date se face utilizând instrucțiunea DELETE. Dacă dorim să ștergem anumite linii le putem specifica printr-o clauză WHERE.

Se poate elimina o tabelă întreagă folosind instrucțiunea DROP TABLE sau chiar putem elimina o întreagă bază de date cu instrucțiunea DROP DATABASE.

Avantaje MySQL

MySQL are multe avantaje printre care:

Performanța ridicată – “ programatorii pretind că MySQL este cel mai prompt sistem de baze de date pe care îl puteți găsi;”[12]

Cost scăzut – MySQL este disponibil gratuit sub o licență Open Source sau la un preț mic sub o licență comercială pentru utilizări interne .

Ușurință în utilizare – majoritatea bazelor de date moderne utilizează SQL.” MySQL este un sistem de baze de date, a cărui configurare și administrare sunt mult mai simple decât în cazul altor produse asemănătoare.”[6]

Portabilitate – MySQL rulează pe numeroase variante de UNIX și pe Microsoft Windows.

Cod sursă – se pot obține și aduce modificări la coșul sursă al unei baze de date MySQL.

Disponibilitatea suportului pentru MySQL – acest produs are o companie părinte care oferă suport, instruire, consultanță și certificare prin intermediul MySQL AB.

Pagini Web statice

Pagini Web

World Wide Web sau WWW constituie elementul de bază al Internet-ului, fiind un suport pentru text, animație, grafică și sunet. Documentele care sunt situate în spațiul Web sunt cunoscute sub numele de pagini Web.

Paginile Web sunt memorate într-un server specializat și gestionate printr-un software special . Afișarea și regăsirea paginilor web se realizează prin intermediul navigatoarelor Web care poartă denumirea de browser-e.

O pagină Web poate conține text, liste, meniuri, tabele, formulare, elemente grafice, script-uri, stiluri, obiecte multimedia. Mecanismul denumit hypertext permite crearea de căi de acces între documente, astfel :atunci când este accesată o legătură, cum ar fi un element grafic sau o porțiune de text, navigatorul încarcă fișierul și îl afișează.

Paginile Web pot fi asemănate cu paginile unei cărți ce este organizată într-un format care implică citirea ei într-o anumită ordine, de exemplu de la prima pagină la ultima pagină. Însă, acest mod de organizare oferă și posibilitatea de a crea o strategie proprie de navigare prin informațiile existente, deoarece permite sărirea anumitor pagini.În cazul paginilor Web navigarea de la o pagină la alta se realizează prin accesarea hyperlink -urilor existenete în pagină.

În funcție de natura conținutului, paginile Web se clasifică în pagini Web statice și dinamice.

HTML

Paginile Web statice se caracterizează prin faptul că:conțin doar elemente HTML iar codul sursă vizualizat în navigator este identic cu cel al fișierului stocat pe disc,fapt pentru care paginile statice nu oferă interactivitate.

Figura 2.1 Generarea paginilor Web statice[23]

“HTML este acronimul de la HyperText Markup Language și reprezintă un limbaj folosit pentru crearea și marcarea (formatare, aranjare) unui document astfel încât să poată fi publicat pe World Wide Web și vizualizat cu ajutorul unui browser (Internet Explorer, Netscape, Opera etc.).”[18]

Termenul de Hypertext se referă la mecanismul prin care se realizează legături între diferite documente. O pagină de hypertext este o pagină care, pe lângă textul propriu-zis, mai conține și legături către alte informații web, de obicei alte documente web care abordează același subiect ca și în pagina de unde se fac legăturile, aceste legături fiind identificate prin subliniere sau culoare, pentru a le deosebi de textul simplu. Astfel pentru un subiect oarecare se poate accesa de la o pagină simplă de hypertext, cu ajutorul legăturilor, o documnetație impresionanată. În esență, hypertext-ul este interpretat ca un text cu legături către alte texte.

“O caracteristică importantă a limbajului HTML este portabilitatea, adică orice document sursă HTML va arăta identic pe orice tip de calculator și în orice sistem de operare, interpretarea fiind realizată de numeroasele navigatoare.”[10]

Fișierele HTML pot fi create cu editoare de text precum NotePad sau alte editoare specializate, cum ar fi Crimson Editor și sunt salvate cu extensia .html sau .htm .

Editoarele HTML pot fi clasificate în editoare clasice și editoare de tipul WYSIWYG (What You See Is What You Get – ceea ce vezi este ceea ce obții). Diferența între cele două tipuri de editoare constă în faptul că în cea de-a doua categorie, utilizatorii se ocupă decât de partea grafică scrierea codului HTML rămânând în seama acestor programe.

Un fișier HTML poate conține ca orice document un titlu, un paragraf, un tablel sau o imagine. Pe lângă acestea un fiser HTML mai conține și niște elemente denumite tag-uri care îi sugerează browser-ului care este titlul documentului, care este paragraful, care este tabelul sau care este imaginea.

Conținutul paginilor web realizate în HTML nu pot fi modificate dacă au fost încărcate pe un server decât dacă se aduc înapoi pentru a fi modificate. Acest lucru este un dezavantaj al paginilor Web statice, având în vedere că operația necesita foarte mult timp .Un alt dezavantaj al paginilor Web statice îl constituie faptul că lucrul cu bazele de date nu este posibil.

Pagini web dinamice

În comparație cu tehnologiile Web statice, tehnologiile Web dinamice oferă o simplitate sporită în manipularea conținutului paginilor Web. Deși paginile dinamice conțin puțin text, ele pot extrage informațiile necesare din alte aplicații, cum ar fi bazele de date.Astfel, informațiile sunt introduse într-o bază de date și pot fi accesate de câte ori cineva cere acest lucru.

Caracteristici ale paginilor web dinamice:

“conținutul lor este creat dinamic și poate diferi la accesări diferite;

oferă interactivitate;

posibilități de interacțiune.”[11]

Clasificarea paginilor dinamice:

Pagini dinamice generate client-side;

Pagini dinamice generate server-side.

Concepte PHP

Caracteristici generale ale limbajului PHP

“Inițial PHP era acronimul de la Personal Home Page, dar a fost modificat pentru a se alinia la convenția de denumire recursivă GNU(Gnu’s not Unix) și acum este acronimul pentru Hypertext Preprocessor.”[6]

PHP este un un limbaj de tip server side script, utilizat la scară largă,creat special pentru a dezvolta spații Web prin introducerea codului PHP în fișiere HTML.

Acest limbaj a fost conceput în anul 1994 de Rasmus Lerdorf. A fost adoptat de alți oameni și a trecut prin patru modificari importante pentru a ajunge la o versiune stabilă. Versiunea curentă a limbajului PHP este 5, fiind o rescriere completă a motorului Zend care stă la baza acestui limbaj. În aprilie 2007, PHP era în uz pe mai mult de 20 milioane de domenii din întreaga lume,iar acest număr crește rapid.

Spre deosebire de paginile HTML, paginile PHP pot fi verificate doar dacă sunt găzduite pe un server web care are instalat PHP. Când accesăm o pagină cu extensia .HTML/.HTM Web-serverul va transmite pagina HTML către browser fără nici o prelucrare. Dacă este vorba de o pagină PHP serverul Web o trimite interpretorului PHP. Interpretorul PHP parcurge pagina, execută instrucțiunile PHP întâlnite și generează dinamic pagina HTML care este trimisă browser-ului spre afișare. Astfel PHP permite furnizarea unui conținut Web dinamic, care se modifică automat de la o zi la alta sau de la un minut la altul.

Figura 2.3 Funcționarea motorului PHP [16]

Codul PHP este o combinație între limbajul C,Java și Perl și este delimitat de coduri de start și de sfârșit (<?php…?>) ce permit intrarea și ieșirea din modul PHP. Codul PHP este format din instrucțiuni de afișare, PHP fiind folosit în principal pentru a genera cod HTML, sau instrucțiuni de conectare la baze de date, intrucțiuni de trimitere email-uri, instrucțiuni de citire, scriere, manipulare fișiere.Fișierele PHP au extensia .php și pot fi scrise în Notepad sau într-un editor specializat, care va indica și numărul liniilor, lucru util la depanarea scripturilor.

PHP este un instrument de frunte pentru dezvoltarea aplicațiilor în Web, putând fi construite ușor mecanisme de autentificatre utilizatori, sisteme de gestiune a conținutului, gestionare de liste de mesaje, forumuri Web, generarea automată de documente pdf.

Avantajele limbajului PHP

În comparație cu alte produse asemănătoare, PHP are mai multe puncte forte,printre care:

Performanța ridicată – PHP este foarte eficient doarece utlizând un server ieftin puteți oferi milione de accesări pe zi;

Interfețe pentru multe sisteme de baze de date diferite – PHP are conexiuni disponibile la multe sisteme de baze de date:MySQL, PostgreSQL, mSQL,Oracle, Sybase, Hyperwave, Informix, FilePro, dbm;

Biblioteci încorporate pentru multe din task-urile Web obișnuite – PHP are funcții pentru realizarea multor operații utile legate de Web: se pot genera pe loc imagini GAF, se poate realiza conectarea la alte servicii de rețea, se pot trimite mesaje e-mail, se pot genera documente PDF;

Cost scăzut – PHP este un produs distribuit în mod gratuit;

Ușurință în învățare și utilizare – PHP este un limbaj comod pentru începători, sintaxa acestui limbaj fiind bazată pe sintaxa altor limbaje de programare, în principal C și Perl;

Suport puternic orientat spre obiecte – “cu PHP există posibilitatea de a alege programarea procedurală sau programarea orientată obiect”.[6] Versiunea 5 a limbajului PHP are caracteristici spre obiecte bine proiectate;

Portabilitate – PHP este disponibil pentru multe sisteme de operare .Se poate scrie cod PHP pe sisteme de operare gratuite si comerciale de Unix, sau pe diferite veriuni de Microsoft Windows;

Disponibilitatea codului sursă – PHP este un produs Open Source, deci utilizatorii au acces la codul sursă, pe care îl pot modifica sau adauga ceva la limbaj;

Disponibiliatatea suportului – Compania care dezvoltă motorul limbajului PHP, Zend Technologies, asigură dezvoltarea limbajului oferind pe baza comercială atât suport, cât și software înrudit.

Tipuri de date in PHP

Variabilele sunt elemente ce au o anumită valoare la un moment dat. Valoare unei variabile se poate schimba de-a lungul execuției unei aplicații.

Tipul variabilei nu este definit de programator ci este determinat cand este rulat de PHP, în funcție de ipostaza în care variabila este folosită.

Tipuri de variabile:

Integer – numere întregi

Double – numere reale

String – șiruri de caractere

Array – serii de date

Object – reține obiecte

Prin precizarea caracterului $ variabilele sunt diferențiate de celelalte elemente ale limbajului Astfel, o variabilă are forma $nume.

Constantele sunt entități care nu își schimbă valoarea pe parcursul execuției. Este recomandat ca numele constantelor să fie scris cu majuscule pentru a fi mai ușor identificate. Atunci când se folosesc, se specifică doar numele, fără ghilimele sau $.

Accesarea datelor din formularele HTML

Accesarea variabilelor din formularele HTML se face prin intermediul metodelor $_POST și $_GET. Metoda GET este folosită de browser-e pentru a trimite cereri către servere. Odată cu cererea se pot transmite și mici bucăți de informații către server care pot fi date introduse de utilizatori , în formular și care sunt adăugate la sfârșitul URL-ului sub forma pagină.php?parametru=valoare. Majoritatea paginilor pe care le vizualizăm pe internet sunt obținute prin intermediul metodei GET. Exemple de request-uri de tip GET: scrierea unui URL în bara de adrese a browser-ului , accesarea unui link, sau a unei imagini.

Metoda POST este folosită pentru a transmite informații către server . În comparație cu metoda GET care permite doar o cantitate limitată de date să fie transmisă de la browser la serverul Web, metoda POST dispune de limite mai mari, fiind standardul de transmitere a datelor. Exemple de request-uri de tip POST: upload-ul unui fișier pe server, salvarea unui post pe blog.

Proiectarea aplicației pentru comercializarea utilajelor folosite în alimentația publică

Aplicația de fața a fost proiectată pentru a descrie activitatea unei firme de utilaje alimentare ,a produselor și a serviciilor oferite de aceasta: consultanță, proiectare și service.

Compania oferă produse și servicii pentru sectoarele: restaurante, hoteluri, catering, fast-food, pizzerii, covrigării, bar, cafenea, supermarket, magazine alimentare, depozitare frigorifică,panificație și patiserie.

Site-ul a fost proiectat în așa fel încât să ofere o navigare ușoară utilizatorilor.Astfel, site-ul dispune de un navigator de căutare care afișează rapid produsele căutate și de un meniu de navigare care furnizează trimiteri rapide și directe către secțiunile site-ului: Despre noi, Produse, Servicii și Contact.

Firma dispune de o gamă largă de produse grupate în mai multe categorii precum:utilaje frigorifice, fast-food, utilaje patiserie- cofetărie, utilaje pizzerie, înghețată,utilaje autoservise și echipamente catering, utilaje bar și bucătărie caldă. Fiecare produs are o pagină de prezentare care cuprinde specificații tehnice , o imagine de prezentare, preț, producător etc, dar și un buton de cumpărare a produselor , a cărui accesare permite utilizatorului plasarea unei comenzi.Pentru finalizarea comenzii utilizatorul trebuie să-și introducă datele necesare pentru întocmirea facturii care se va emite după înregistrarea informațiilor despre client în baza de date.

Mai mult decât atât firma oferă utilizatorilor posibilitatea înscrierii la cursuri gratuite de gastronomie prin completarea unui formular de înscriere.

Aplicația prezentată conține pe lângă interfața cu utilizatorul și un panou de administrare care permite gestionarea produselor și vizualizarea facturilor de către administrator.

Pentru a dezolta un site este necesar un software a cărui infrastructură asigură găzduirea site-ului Web. Pentru aceasta am instalat pachetul de aplicații Xampp: server de web (Apache), server de baze de date (MySQL), interpretoare pentru scripturi scriseîn limbajele PHP și PERL pentru a putea folosi calculatorul personal ca un server web care îmi permite testarea aplicației.

Următorii pași care trebuie parcurși pentru a crea un site sunt implementarea bazei de date și crearea paginilor Web.

Prezentarea bazei de date

Baza de date a fost creată în Navicat Premium care este un software ce ușurează munca administratorilor de baze de date deoarece permite o conexiune simultană la serverele de baze de date MySQL, Oracle, PostgreSQL.

Figura 3.1 Structura bazei de date

Figura 3.2 Tabela produse

Structura tabelei produse este următoarea:

Cod_produs: câmp de tip întreg de 10 caractere , cu proprietatea de incrementare automată folosit pe post de cheie primară cu valoare unică pentru fiecare produs;

Denumire: câmp de tip varchar de lungime 10 caractere conține denumirea produsului în vederea afișării acesteia în titluri sau link-uri;

Cod_categorie: câmp de tip întreg de lungime 10 caractere reprezintă codul categoriei din tabelul categorie_produse folosit pentru a putea face legatura dintre produse si categoria din care acesta face parte;

Cantitate: câmp de tip întreg de dimensiune 10 caractere salvează numărul toatal de produse disponibile pe stoc;

Imagine: câmp de tip varchar de lungime 255 caractere este folosit pentru a salva numele imaginii produsului. Imaginea este stocată pe server în vederea afișării în pagină;

Producător: câmp de tip varchar cu dimensiuni de 100 caractere este folosit pentru stocarea numelui producătorului;

Preț:câmp de tip real stochează prețul produsului.Acest câmp are dimensiunea maxim 10 caractere folosind 2 decimale;

UM(Unitate monetară) : câmp de tip varchar de dimensiune 3 caractere este folosit pentru a preciza valuta produsului;

Descriere: câmp de tip text de 255 de caractere care conține informații despre produs;

Garanție: câmp de tip varchar de lungime 100 de caractere prezicaeaza perioada de garanție a produsului.

Figura 3.3 Tabela client

Structura tabelei clienți este următoarea:

Cod_client: câmp de tip interg de lungime 10 caractere are proprietatea de incrementare automată folosit pe post de cheie primară cu valoare unica pentru fiecare client;

Nume: câmp de tip varchar de dimensiune 100 caractere stochează numele clientului;

Prenume : câmp de tip varchar de dimensiune 100 de caractere care salvează prenumele clientului;

Companie :câmp de tip varchar de lungime 100 de caractere ,conține denumirea companiei;

Registrul comerțului(reg_com): câmp de tip varchar de lungime 100 de caractere în care se înregistrează numărul registrului comerțului;

CUI :câmp de tip integer de lungime 10 caractere stochează codul unic de indentificare al firmei clientului;

Sediul :câmp de tip varchar de lungime 255 de caractere care conține adresa firmei clientului;

IBAN: câmp de tip varchar de dimensiune 100 caractere reprezintă codul băncii la care are cont clientul.

Banca:câmp de tip varchar de dimensiune 100 de caractere care precizează numele băncii la care clientul are cont.

Telefon: câmp de tip varchar cu dimensiunea maxima de 100 caractere care salvează numărul la care poate fi contactat clientul.

E-mail: de tip varchar de lungime maximă de 100 caractere stochează adresa de e-mail a clientului.

Adresa de livrare: câmp de tip varchar de lungime 100 specifică adresa de livrare a produselor comandate.

Figura 3.4 Tabela categorie_produse

Structura tabelei categorie_produse este următoarea:

Cod_categorie: câmp de tip întreg de lungime 10 caractere caractere cu proprietatea de incrementare automată folosit pe post de cheie primară,având valoare unică pentru fiecare categorie. Acest câmp realizează legătura dintre produse și categoria din care acesta face parte;

Denumire: câmp de tip varchar de dimensiune 100 de caractere care indică numele categoriei;

Cod_categorie principală : câmp de tip întreg de 10 caractere salvează codul categoriei principale.

Figura 3.5 Tabela cos_cumparaturi

Structura tabelei coș_cumpărături este următoarea:

Id: câmp de tip interg de lungime 11 caractere folosit cu proprietatea de incrementare automată, este cheie primară și are valoare unică pentru fiecare coș salvat;

Cod_coș: câmp de tip întreg de lungime 10 caractere reprezintă codul coșului generat în baza de date;

Cod_produs: câmp de tip întreg de lungime 10 caractere precizează codul produsului și face legătura dintre tabelul produse și tabelul coș_cumpărături;

Cantitate: câmp de tip întreg de dimensiune 10 caractere salvează numărul toatal de produse disponibile pe stoc;

Preț: câmp de tip real stochează prețul produsului și are dimensiunea maximă de 10 caractere, folosind 4 decimale.

Figura 3.6 Tabela facture

Structura tabelei factura este următoarea:

Cod_factură: câmp de tip întreg, de dimensiune 10 caractere are proprietatea de incrementare automată și este utilizat pe post de cheie primară ,având valoare unică, pentru fiecare factură;

Serie : câmp de tip varchar de lungime 100 de caractere este folosit pentru a salva seria unei facturi;

Număr _factură: câmp de tip întreg de lungime 10 caractere indică numărul facturii;

Data_factură: câmp de tip data precizează data în care a fost întocmită factură;

Cod_client: câmp de tip interg de lungime 10 caractere reprezintă codul fiecărui client stocat în baza de date;

Cod_coș: câmp de tip întreg cu dimensiune maximă 10 caractere reprezintă codul coșului generat în baza de date;

Preț_fără_TVA: câmp de tip real dimensiune 10 caractere , care folosește 4 zecimale stochează prețul produsului fără TVA;

TVA :câmp de tip real de lungime 10 caractere ,care utilizează 4 zecimale reprezintă valoarea adăugată brută;

Preț_cu_TVA: câmp de tip real dimensiune 10 caractere , care folosește 4 zecimale conține prețul produsului la care s-a adăugat TVA.

Modalitate_plată: câmp de tip varchar de lungime 100 de caractere, care precizează modalitatea de plată a facturii.

Figura 3.7 Tabela formular

Structura tabelei formular este următoarea:

Id: câmp de tip interg de lungime 11 caractere folosit cu proprietatea de incrementare automată folosit pe post de cheie primară ,având valoare unică pentru fiecare înregistrare salvată;

Nume: câmp de tip varchar de dimensiune 255 caractere stochează numele persoanei care vrea să se înscrie la seminarul de gastronomie;

Prenume : câmp de tip varchar de dimensiune 100 de caractere care salvează prenumele persoanei care vrea să se înscrie la seminarul de gastronomie;

Telefon: câmp de tip varchar de 30 caractere care salvează numărul la care poate fi contactată persoanei care vrea să se înscrie la seminarul de gastronomie;

E-mail: câmp de tip varchar de 30 caractere stochează adresa de e-mail a persoanei care vrea să se înscrie la seminarul de gastronomie;

Departament : câmp de varchar cu dimensiunea 30 de caractere precizează departamentul care preai înregistrarea ;

Subiect: câmp de tip varchar de lungime 30 caractere conține subiectul mesajului care va fi transmis;

Mesaj: câmp de tip varchar de lungime 255 de caractere salvează mesajul care va fi transmis.

Prezentarea paginilor site-ului

Paginile site-ului au fost create folosind aplicația de dezolvare web Adobe Dreamweaver C4S. Acest software prevede o interfață intuitivă pentru realizarea și editarea site-urilor HTML și încorporează suport pentru tehnologii web cum sunt CSS, JavaScript și numeroase limbaje de programare server adiționale, incluzând ASP.NET, ColdFusion, JavaServer Pages (JSP) și PHP. Astfel, design-ul paginilor site-ului a fost realizat cu ajutorul stilurilor CSS(Cascading Style Sheets) iar limbajul de programare folosit pentru dezvoltarea aplicației Web a fost PHP.

Aplicația este alcătuită din 17 fișiere php cu ajutorul cărora utilizatorii pot vizualiza produsele pe categorii, pot căuta anumite produse și pot realiza comenzi. Mai mult aplicația oferă și un panou de administrare a produselor care permite adăugarea și eliminarea de produse și vizualizarea facturilor emise.

Primul pas în dezolvarea aplicație îl reprezintă conectarea la baza de date în scopul extragerii informației necesare afișării produselor și a altor secțiuni din site.(Fig. 3.8) Conectarea se realizează folosind funcția mysql_connect( ); folosind ca parametrii de conectare adresa serverului, numele de utilizator și parola. Odată conectat la server trebuie să selectăm baza de date din care dorim să extragem sau să adăugăm informații. Selectarea se realizează folosind funcția mysql_select_db( ); având ca parametru numele bazei de date cu care dorim să lucrăm.

Figura 3.8 Conectarea la BD

Informațiile site-ului sunt încărcate dinamic în interiorul fișierului index. php (Fig. 3.9 )cu ajutorul variabilei globale $_GET. Unele informații sunt salvate în sesiuni pentru a putea face tranziția de la o pagină la alta păstrând în sesiune informații ascunse vizitatorului.

Pagina conține mai multe secțiuni printre care secțiunea header cu motor de căutare și buton de afișare rapidă a coșului,un meniu cu paginile site-ului și categorii de produse și secțiunea de afișare a conținutului (informații, produse, formulare etc. ) .

Figura 3.9 Pagina index.php

Formularul de căutare este alcătuit dintr-un formular HTML care conține un câmp de tip text și un buton. În urma căutării unui produs returnează produsele care conțin cuvintele căutate din baza de date.Produsele sunt grupate în baza de date pe categorii și sunt afișate în funcție de valoarea variabilei $_GET[scat] care reprezintă subcategoria din care produsele fac parte. Dacă există produse în subcategoria selectată, produsele sunt afișate folosind o structură repetitivă de parcurgere a valorilor returnate, altfel este afișat mesajul Nu exista produse în aceasta categorie!.

Codul de afișare a produsului este următorul (Fig. 3.10):

Figura 3.10 Afișarea listelor cu produse

Același cod este folosit și pentru căutarea produselor în baza de date mai puțin comanda sql care în loc să returneze produsele aflate într-o categorie returnează produsele care conțin criteriul căutat.

Figura 3.11 Comanda de extragere a unor produse după descriere sau denumire

Figura 3.12 Pagina produs.php

Pagina de afișare a produsului include denumirea produsului,imaginea acestuia, o scurtă a specificațiilor tehnice,prețul și alte informații despre produs (Fig. 3.12 ) .Toate aceste informații sunt extrase din baza de date în funcție de codul de produs oferit de variabila $_GET[id] și le afișează folosind următoarea structură HTML (Fig. 3.13):

Figura 3.13 Secvența de afisare a unui produs

În codul prezentat am folosit ca funcție specială, funcția number_format() care acționează asuprea modului de afișare a unei valoare astfel: number_format($prod['pret'],2,',','.'); transformă prețul din 1299 în 1.299,00 .

Figura 3.14 Pagina cos.php

Pe lângă informațiile care descriu produsul în pagina de afișare a produsului există un butonul de adăugare în coș. Acesta face referință la pagina cos.php (Fig. 3.14) care în momentul accesării verifică dacă există setat un cod de coș de cumpărături în baza de date pentru utilizatorul curent.Dacă nu există crează unul și îl salvează în sesiune pentru crea un coș unic pentru fiecare client în parte. Bazat pe codul coșului de cumpărături generat, produsul este introdus tebela coș de cumpărături și folosit pentru afișarea într-o listă de cumpărături.

Pentru a extrage datele despre produse din tabela produse și tabela cos_cumparaturi în funcție de codul coșului de cumpărături salvat în sesiune se utilizează următoarea comandă sql de extragere (Fig. 3.15)

Figura 3.15 Comanda de extragere a datelor despre produse

Afișarea rezultatelor primite de la baza de date se realizează folosind o structură repetitivă de tip while care afișează datele într-o structură tabelară conform codului (Fig. 3.16)

Figura 3.16 Afișarea datelor despre produse in coșul de cumpărături

Pagina coș de cumpărături mai conține trei butoane. Butonul Actualizeza coș are funcția de actualizare a cantității din coș .Dacă se dorește ștergerea unui produs din coș, acest lucru se face prin eliminarea valorii din câmpul cantitate din dreptul produsului respectiv și apăsarea butonului Actualizează coș.

Ștergerea coșului reprezintă ștergerea sesiunii clientului și se realizează accesând butonul Anulează comandă sau în cazul în toate produsele din coșul de cumpărături care au fost șterse. Dacă utilizatorul își dorește să facă o nouă listă de cumpărături va trebui să apese din nou butonul de cumpărare a produselor.

Butonul Finalizează comanda face referință la formularul de comandă(Anexa 1) care oferă posibilitatea cumpărării produselor din coș după introducerea datelor personale și selectarea metodei de plată.După apăsarea butonului de comandă informațiile sunt introduse în tabelă clienți.

Comanda sql de introducere a informațiilor clientului în baza de date este ilustrată de Fig 3.17

Figura 3.17 Comanda sql de introducere a informațiilor despre client

În urma inserării datelor folosim funcția php mysql_insert_id(); pentru a returna codul de clinet generat automat de tabela. Pe baza acestui cod returnat executăm comanda sql de introducere a datelor în tabela factura din coșul de cumpărături(Fig. 3.18) pentru generarea facturii clientului, unde total_fără_tva reprezintă prețul total al produselor din coșul de cumpărături , iar $tva reprezintă valoarea TVA-ului calculat pentru prețul total al produselor.

Figura 3.18 Inserarea datelor în tabela facture

După crearea facturii se generează link-ul Vezi factura fiscala, care are referință către fișierul factura.php (Fig. 3.19) care afișează factura fiscală pe numele clientului pentru produsele din coșul de cumpărături.

Figura 3.19 Pagina factura.php

Factura folosește comada din (Fig. 3.20) pentru exatragerea datelor de facturare și a informațiilor clientului în funcție de id-ul facturii din baza de date generat de către variabia $_GET[id].

Figura 3.20 Comanda de exatragere a datelor de facturare și a informațiilor clientului

Afișarea produselor în factură se realizează prin selecția acestora din tabela produse folosind ca legătură tabela cos_cumparaturi în funcție de codul coșului de cumpărături salvat în factură.

Figura 3.21 Secvența pentru afișarea produselor în factură

Afișarea produselor se realizează (Fig. 3.22) folosind o structură de tip tabelar în care sunt enumerate în mod repetitiv produsele din coș.

Pagina de contact(Anexa 2 ) oferă posiblitatea trasmiterii de mesaje către administatorii magazinului folosind funcția php mail();.Transmiterea mesajelor se realizează online prin completarea unui fomular ale cărui informații sunt procesate folosind codul ( Fig. 3.23):

Figura 3.24 Funcția php mail( );

Panoul de administrare oferă posibilitatea adăugării de produse noi în site, de configurare a categoriilor de produse și de vizualizare a facturilor .

Accesul la panou se face prin accesarea adresei http://localhost/ioana/admin.php. Pentru logarea în panou avem nevoie de un utilizator și o parolă ( valorile inițiale sunt admin pentru utilizator și admin pentru parolă) care odată introduse salvează în sesiune variablia de logare.

Figura 3.25 Pagina de administrator

Fișierul admin.php oferă accesul la meniul modulelor de editare a produselor,categoriilor, facturilor.

În secțiunea produse avem listate produsele din baza de date sub formă de link direct către formularul de modificare .Există un câmp de adăugare a unui nou produs în care trebuie să introducem titlul produsului și va genera în mod automat un nou produs în tabelă folosind codul afișat în ( Fig.3.26)

Figura 3.26 Secventa pentru adaugarea unui nou produs in site

Modificarea proprietăților unui produs se face accesând link-ul Adăugă informații care ne va conduce la un formular ce conține următoarele elemente: numele produsului folosit sub formă de titlu în afișările de pe site,specificațiile tehnice ale produsului pentru afișarea lor în pagina de prezentare a produsului, prețul produsului în Euro, garanția oferită de producător, cantitatea produselor din baza de date, numele producătorului, imaginea reprezentativă a produsului, categoria din care acesta face parte.

Figura 3.27 Adăugare informații produs

Pentru încărcare a fișierelor în site folosim variabila globală $_FILES împreună cu diverse informații referitoare la dimensiunea fișierului încărcat la tipul acestui fișier, numele fișierului și locația sa temporară.

Figura 3.28 Cod pentru încărcare imagine

În afară de câmpurile pentru adăugarea caracteristicilor unui produs mai există un buton de ștergere a produselor care reprezintă modalitatea de eliminare a informațiilor din site. Butonul de ștergere transmite variabila $_GET[sterge] care conține codul produsului din baza de date și care rulează astfel:

Figura 3.29 Cod pentru ștergere produs din baza de date

Produsele sunt grupate în categorii și subcategorii .Cu ajutorul formularului de introducere categorii, din secțiunea categorii putem introduce noi categorii în baza de date care pot fi considerate categorii principale sau subcategorii ale categoriilor principale deja existente.

Codul de salvare a categoriilor este următorul:

Figura 3.30 Inserarea unei categorii în baza de date

Codul de afișare a categoriilor și subcategoriile este următorul:

Figura 3.31 Afișarea unei categorii in pagina de administrator

În secțiunea facturi (Fig.3.32) putem vizualiza lista facturilor generate în baza de date, care sunt ordonate în funtie de data facturării.Pentru fiecare factură sunt precizate:număr factură, data factură, numele și prenumele clientului, prețul fără TVA, TVA și prețul cu TVA.

Figura 3.31 Afișarea listei cu facturi

Afișarea listei facturilor se realizează folosind scriptul ( Fig.3.32)

Figura 3.32 Scriptul folosit pentru afișarea listei cu facturi

Concluzii

Dezolvarea rapidă care a avut loc in tehnologia informației și a comunicațiilor a dus la apariția magazinelor electronice care sunt implementate prin intermediul unui site web care este administrat de companie. Magazinul electronic oferă posibilitatea firmelor de a se dezvolta și de asemenea generează multe avantaje atât firmei cât și clienților.

Folosirea unui magazin virtual ajusteaza din valoarea cheltuielilor de marketing ale unei firme deoarece informațiile transmise prin intermediul unui magazin virtual costă mai puțin decât dacă le-am tipări și le-am trimite prin poștă. Un alt avantaj al firmelor care au un site web este distribuirea rapidă a informațiilor care conduce la informarea în permanență a clineților cu noutățile care apar . Informațiile de pe site cu privire la ofertele promoționale a produselor, adăugarea de noi produse sau alte noutăți care apar pot fi actualizate permanent, în comparație cu informațiile din broșuri sau cataloage.

Unul din avantajele pe care magazinele electronice le oferă clienților este posibilitatea accesării bunurilor și serviciilor din orice locație și la orice oră. Aceștia au posibilitatea de a răsfoi catalogul online de produse , de a consulta ofertele, de a plasa comenzi rapid și simplu și de a verifica stadiul comenzilor de oriunde s-ar afla.

Site-ul unei firme reprezintă un instrument de pormovare a firmei și de realizare a vânzărilor dar și un mijloc de comunicare a firmei cu competitorii săi.

Primul pas în dezvolatarea unui site este conectarea la baza de date. Majoritatea informațiilor care sunt afișate pe site sunt gestionate de un SGBD. Folosirea unui sistem de gestiune a bazelor de date permite un control sigur asupra datelor, dar și realizarea de prelucrări asupra acestora și afișarea rezultatelor în rapoarte,liste.

Din cele prezentate putem observa importanța unui site în dezvoltarea strategiei de marketing a firmelor, dar și importanța bazelor de date fără de care nu ar fi posibilă funcționarea site-urilor .

Bibliografie:

Anca Gheorghiu, Corina Maria Bichis, Baze de date, Editura Victor, Bucuresti, 2004

Dumitru Todoroiu, Elena Nachita, Gloria Cerasela Crisan, Baze de date pentru economist, Editura Performatica, 2005

Dușmănescu Dorel, Baze de date, Editura Universității din Ploiești, 2005

Ioan Dorso, Baze de date, Editura Cibernetica MC, 2010

Ion Lungu , Baze de date Oracle –Limbajul SQL, Editura ASE, Bucuresti, 2005

Luke Welling, Laura Thomson, Dezvoltarea aplicatiilor Web cu PHP si MySQL, Editia a II-a , Editura Teora, Bucuresti, 2005

Pătrașcu Aurelia, Tănăsescu Ana, Dușmănescu Dorel, Baze de date. MS-Access. Teorie și aplicații, Editura Universității din Ploiești, 2006

Romica Trandafir, Mihai Nistorescu, Ion Mierluș-Mazilu, Bazele Informaticii si Limbaje de Programare – Baze de date relationale, Editura Conphys, Ramnicu Vâlcea, 2008

Sitar-Taut, Dan-Andrei, Baze de date distribuite, Editura Risoprint, Cluj-Napoca, 2005

Traian Anghel , Dezvoltarea aplicațiilor WEB folosind XHTML, PHP și MySQL, Editura Polirom , 2005

Traian Surcel, Radu Marsanu, Paul Pocatilu, Adriana Reveiu, Felician Alecu, Razvan Bologa, Tehnologii Web si Baze de Date, Editura Tribuna Economică , București, 2005

Toader C., Programarea aplicațiilor web cu PHP și MySQL, Ed. Risoprint, 2006

http://bd.ase.ro/documente/bd/Curs_BD_Lungu,Botha.pdf

http://mediadigitala.ro/index.php/baze-de-date-multimedia/38-baze-de-date-distribuite

http://php.net/usage.php

http://php.punctsivirgula.ro/form/

http://revistaie.ase.ro/content/8/ioniță.pdf

http://www.ghid-html.info/10-notiuni-generale-despre-html.html

http://www.mysql.com/

Anexe

Anexa 1

Anexa 2

Bibliografie

Anca Gheorghiu, Corina Maria Bichis, Baze de date, Editura Victor, Bucuresti, 2004

Dumitru Todoroiu, Elena Nachita, Gloria Cerasela Crisan, Baze de date pentru economist, Editura Performatica, 2005

Dușmănescu Dorel, Baze de date, Editura Universității din Ploiești, 2005

Ioan Dorso, Baze de date, Editura Cibernetica MC, 2010

Ion Lungu , Baze de date Oracle –Limbajul SQL, Editura ASE, Bucuresti, 2005

Luke Welling, Laura Thomson, Dezvoltarea aplicatiilor Web cu PHP si MySQL, Editia a II-a , Editura Teora, Bucuresti, 2005

Pătrașcu Aurelia, Tănăsescu Ana, Dușmănescu Dorel, Baze de date. MS-Access. Teorie și aplicații, Editura Universității din Ploiești, 2006

Romica Trandafir, Mihai Nistorescu, Ion Mierluș-Mazilu, Bazele Informaticii si Limbaje de Programare – Baze de date relationale, Editura Conphys, Ramnicu Vâlcea, 2008

Sitar-Taut, Dan-Andrei, Baze de date distribuite, Editura Risoprint, Cluj-Napoca, 2005

Traian Anghel , Dezvoltarea aplicațiilor WEB folosind XHTML, PHP și MySQL, Editura Polirom , 2005

Traian Surcel, Radu Marsanu, Paul Pocatilu, Adriana Reveiu, Felician Alecu, Razvan Bologa, Tehnologii Web si Baze de Date, Editura Tribuna Economică , București, 2005

Toader C., Programarea aplicațiilor web cu PHP și MySQL, Ed. Risoprint, 2006

http://bd.ase.ro/documente/bd/Curs_BD_Lungu,Botha.pdf

http://mediadigitala.ro/index.php/baze-de-date-multimedia/38-baze-de-date-distribuite

http://php.net/usage.php

http://php.punctsivirgula.ro/form/

http://revistaie.ase.ro/content/8/ioniță.pdf

http://www.ghid-html.info/10-notiuni-generale-despre-html.html

http://www.mysql.com/

Anexe

Anexa 1

Anexa 2

Similar Posts