BAZE DE DATE PENTRU VANZARI AUTO Page 5 Cap.1 Introducere 1.1 Publicitatea pe internet În prezent , aproximativ 1,3 miliarde de oameni de p e toate… [630071]

BAZE DE DATE PENTRU VANZARI AUTO

Page 5
Cap.1 Introducere

1.1 Publicitatea pe internet

În prezent , aproximativ 1,3 miliarde de oameni de p e toate continentele, au
acces ș i folosesc internetul. O dată cu creșterea numă rului de utilizatori ai
internetului , au inceput să ia amploare ș i compa niile din diferite domenii alegâ nd
mediul online pentru promovare, pentru publicitate ș i pentru marketing, acesta fiind
mult mai eficient ș i oferă posibilităț i enorme cu un cost minim.
Principalii consumatori de publicitate online sunt firmele de calculatoare, bă ncile,
companiile de telecomunicații, asigurări ș i turism.Principalul scop al intern etului este
schimbul de informații într -un mod cât se poate de simplu ș i de comod.
Succesul le gat de pu blicitatea electronică vine o dată cu creșterea gradului de interes
și apreciere. Populația Web este într -o continuă creștere î ntr-un ritm rapid, iar rata cu
care crește numărul de documente este și ea în continuă creș tere, de aici vine și ideea
că o pagină de internet izolată , din diferite motive, cum ar fi motive de optimizare , spre
exemplu , este foarte greu de găsit chiar ș i cu aju torul puternicelor motoare de căutare
existente în ziua de astă zi.[1]
1.2 Prezentar ea temei “BAZE DE DATE PENTRU VÂN ZÅRI AUTO”

Am plecat de la ideea realiză rii unui proiect bazat pe baze de date și programare
web care ar putea satisfice cerințele orică rui posibil client inteteresat de o aplicație cu
ajutorul căreia va putea să gestioneze într -un mod câ t se poate de elegant , sigur și
eficient anunțurile online legate de v ânzări auto sau să ofere suport pentru utilizatorii
care doresc să -și facă public anunț ul.
Realizarea proiectului, fiind unul bazat pe baze de date ș i programare web a
impus dezvoltar ea unui site dina mic al că rui cod HTML ș i PHP a fost scris in
Notepad++. În primul râ nd, la realizarea unui site este nevoie de un server HTTP, în
cazul acesta am optat pentru Apache datorită portabilităț ii ridicate, a flexibilităț ii, a
siguranței ș i a extensibilităț ii de care dispune.
Aplicația de față dispune de o interfață ș i sistem de navigare foarte prietenos și
usor de utilizat fără ca utilizatorul să fie nevoit să dețină cunoștinț e avansate în
materie de computer science. S-au folosit butoane ș i cuvinte cu ajutorul cărora se face
saltul l a pagina dorită, iar î n felul acesta , este asigurat un acces rapid la pagina la
care se dorește să se ajungă .
Oricine are acces la internet și doreste să dispună de o reclamă bună privind
anunțul sau poate, î ntr-un mod deosebit de simplu , să apeleze la facilit ățile oferite de
aplicaț ie prin simpla creare a unui cont de utilizator cu introducerea datelor
personale , aceasta fiind necesară în cazul î n care userul respectiv nu are creat un
cont. În cazul in care acesta are un cont deja creat , la fel de simplu poat e să se
autentifice și să adauge un nou anunț, să șteargă un anunț , să modifice informațiile

BAZE DE DATE PENTRU VANZARI AUTO

Page 6
personale sau chiar să -și închidă contul. Odată logat la contul să u, utilizatorul poate
să adauge anunț ul care va cuprinde toate detalii le legate de vehiculul pus la vâ nzare.
Proiectul de fată ofera avantaje majore in comparaț ie cu metod ele clasice de
publicare a anunț urilor in diferite medii media sau în compara ție cu deplasarea în
targuri unde se permit vâ nzari de autovehicule.

BAZE DE DATE PENTRU VANZARI AUTO

Page 7
Cap.2 Considerente teor etice privind realizarea aplicaț iilor
bazate pe baze de date

2.1 De ce avem nevoie de o bază de date ?

Este de remarcat importanța ș i utilitatea unei baze de date , în special atunci
când poate fi folosită împreună cu un site Web. Se pot realiza multe lucruri utile , de la
afișarea unor simple liste cu înregistră ri, până la aplicaț ii mult mai complexe, de
exemplu , realizări de site-uri, de forum -uri și chat -uri bazate pe PHP ș i MySQL
impreuna cu baze de date .
În cazul forumurilor, multe dintre acestea , indiferent d e domeniul de dezbatere,
rulează în PHP ș i MySQL. Metoda aceas ta este foarte eficientă, creând pagini pentru
fiecare mesaj și oferind multiple opțiuni, toate paginile putâ nd fi actu alizate printr -un
script scris î n PHP.
În cazul realiză rii de site -uri de mari dimensiuni , baza de date face diferența, în
sensul că, î n cazul în care dorim să modifică m diferite aspecte, nu trebuie să irosim
timp pentru a face acest lucru deoarece , cu ajutorul PHP ș i MySQL putem avea acces
rapid la baza de date pentru a obține informaț iile necesare. [2]

2.2 Noțiuni int roductive privind de bazele de date

Primele baze de date au fost realizate și folosite încă de prin anii 1960. Datorită
nevoilor mari de actualizări rapide și datorită faptului că era nevoie ca datele din
sistemel e ce se bazau pe baze de date să răspundă într -un timp câ t mai mic, de
preferat î n timp real , s-au încercat realiză ri de sisteme speciale pentru a satisf ace
aceste cerinț e. În anul 1965 , Institutului de Standarde al SUA i s -a impus să găsească
un standard legat de definirea, utilizarea ș i exploatarea datelor, ulterior î n anul 196 7
s-a înaintat primul raport urmând ca peste 4 ani sa apară raportul final pri n care s -au
propus 2 limbaje de prelucrare și exploatare a datelor ș i anume:
-Data Definition Language (DDL -Limbajul de Definire a Datelor)
-Data Manipulation Language (DML -Limbajul de Manipulare a Datelor)
2.2.0 Baze de date relaț ionale

În anul 1970 a apărut pentru prima dată termenul de baza de date relațională .
O bază de date se definește ca fiind o colecț ie de date partajate care se află î n
interde pendență logică împreună cu descrierea lor și cu relaț iile din tre ele.
Prin baza de date înțelegem o colecție partajată de date, între care există relaț ii
logice, c u descriere a datelor, partajată pentru satisfacerea necesităților informaț ionale
ale unei o rganizaț ii sau a unui grup de utilizatori.

BAZE DE DATE PENTRU VANZARI AUTO

Page 8
Baza de date este v ăzută ca o resursă unică, utilizată simultan de ma i mulți
utilizatori, î n care datele sunt integrate cu o de scriere a lor, cu dublare minimă pentru
a reduce redundantele și pentru a menț ine coer ența datelor.În bazele de date există
definiția internă a fiec ărui obiect, care este folosită de programele aplicației și definiția
externă a obiectului care este oferită utilizatorilor, proces numit abstractizare a datelor
în baze de date care garantează transparența pentru utilizatori, interesați doar de
anumite vi zualiză ri exterioare , nu și de modul în care sunt gestionate și stocate datele
în baza de date. Pot fi efectuate modificări ale datelor și a conț inutului , fără ca vederea
externă să fie afectată , cu excepț ia un or modificări aduse câmpurilor ș i atributelor.
Pentru a reali za baze de date trebuie mai intâ i identi ficate urmă toarele
elemente:
-entităț i, reprezentate de obiecte incluse și distincte introduse într -o
bază de date;
-atribute, reprezentate de proprietăți ale entităț ilor;
-relații, reprezentate de asociații între entităț i;
Bazele de date se pot reprezenta ș i modela gr afic prin modelul Entitate -Relaț ie,
unde entitățile se vor reprezenta sub formă de drep tunghiuri, relaț iile cu romburi i ar
cu ovale atributele, l egate între ele ca un graf neorientat.
După cum urmează, există o clasificare a bazelor de date după :
-Orientare: -generalizate ;
-specializate ;
-Modelul de date: -orientate obiect ;
-relaționale ;
-ierarhice ;
-Distribuția biografică :-locale;
-distribuite: -cu distribuție geografică ;
-cu acces distribuit;
[3]
2.2.1 Sisteme gestionare de baze de date (SGBD)

Sistemul software ce permit e definirea ,crearea și mentenanț a bazei de date, dar
și accesul controlat la informațiile din baza de date, se numeș te sistem de gestiune a
bazelor de date (SGBD) . Acest sistem oferă posibilitatea definirii datelor printr -un
limbaj ce permite utilizatorului sau ad ministratorului bazei de date să descrie și să
denumească entităț ile, dar și relaț iile dintre acestea, numit limbaj de definire, dar ș i

BAZE DE DATE PENTRU VANZARI AUTO

Page 9
prin alt limbaj numit limbaj de manipulare a datelor ce conțin diferite operaț ii, precum
inserare, ș tergere, modificare date.
Foarte important est e ca s istemul de gestiune a bazei de date să ofere o viziune
cât mai abstractă asupra realității, de ace ea, printre principalele scopuri ale unui
sistem de gestiune a bazelor de date se găseș te abstractizarea datelor. Din toată
cantitatea mare de informații stoc ate în baza de date la un moment dat , doar datele
necesare aplicației care rulează în acel moment trebuie să conteze ș i pentru aceasta s –
a realizat organizarea pe 3 nivele:
-nivelul logic, care este dat de dezvoltatorul de ap licații ce se folosește de baz a de date;
-nivelul conceptual, în funcț ie de viziunea administratorului bazei de date, responsabil
de realizarea structurii conceptuale a bazei de date;
-nivelul fizic, dat de inginerul de sistem, acesta ț ine cont de memorie, dreptul de acces
etc.
Descri erea bazei de date se realizează prin schemă, pentru fiecare nivel există câte o
schema, iar în final între scheme există legă turi.
Integritatea datelor este și ea foarte importantă , deoarece o aplicație este
dependentă de datele din baza de date, adică datele și accesul la ele afectează în mod
direct aplicaț ia. Prin int egritatea datelor se intelege ră spunsul ba zei de date la diferite
modificări care pot apărea asupra datelor î nregistrate.
Modelele d e descriere a datelor reprezin tă o colecție de concepte cu ajutorul
cărora se fac descrieri de relații între date și descrieri de restricții într -o organizare de
tip unitară .
Modelul de date se împarte în 3 părți ș i anume:
-partea structurală , un set de r eguli referitor la modul de alc ătuire a bazei de date;
-partea de manipulare, definirea operaț iilor admise asupra datelor;
-partea referitoare la integritate.
Pentru fiecare model de abstractizare referit mai sus se pot realiza modele de date
după cum urmează : -model extern de date, pen tru nivelul logic;
-model de date conceptual, pentu nivelul conceptual;
-model intern de date, pentru nivelul fizic. [4]
2.2.2 Compo nentele unui sistem gestionar de bazelor de date (SGBD)

Există cinci componente : -hardware;
-software;
-date;

BAZE DE DATE PENTRU VANZARI AUTO

Page
10
-proceduri;
-persoane;
Componentele software sunt r eprezentate de programele SGBD și de aplicații,
scrise în limbaje de nivel î nalt precum (Pasc al, C, C++, Turbo C, SQL, MySQL etc.),
plus sistemul de operare .
Componentele hardware sunt reprezentate de rețele de calculatoare ș i servere.
Datele sunt cea mai importantă componentă a oricărui sistem de baze de date.
Datele propriu -zise sau meta -datele sunt și ele incluse în baza de date, se stochează în
catalogul de sistem care înglobează :
-denumiri, tipuri, dimensiuni ale articolelor d in baza de date;
-denumiri de relaț ii sau tabele;
-constrâ ngeri privind integritatea datelor;
-nume de utilizatori autorizați caror li se permite accesul la baza de
date;
-indexuri , precum ș i structuri de stocare folosite;
Procedurile reprezintă reguli și instrucți ni folosi te la implementarea, accesarea
și întreț inerea bazelor de date:
-pronire sau oprire SGBD;
-utilizare programe de ap licație pentru baze de date;
-deschidere sesiuni de lucru;
-tratare erori de natură hardware sau software;
-reorganiză ri ale bazei de date;
Persoanele se împart î n 3 categorii:
-proiectanț i;
-programatori;
-administratori;
-utilizatori;
Proiectanț ii bazelor de date se ocupă cu proiectarea logică a bazelor de date sau
cu proiectarea fizică . Proiectarea logică reprezintă identificarea entităților și a
atributelor, a relaț iilor dat e și a constrâ ngerilor. Proiectarea fizică reprezintă
transpunerea mod elului de date î n tab ele, precum și stabilirea constrâ ngerilor legate
de integritate.

BAZE DE DATE PENTRU VANZARI AUTO

Page
11
Programatorii realizează aplicațiile în sine, administratorii se ocupă cu
gestionarea bazelor de date, i ar utilizatorii sunt reprezentați de clienț ii finali ai bazelor
de date. [5]

2.2.3 Limbajele bazelor de date

Aspecte privind implementarea ș i utilizarea bazelor de date:
-definirea bazelor de date cu ajutorul limbajelor de definire a bazelor de date (DDL –
Data definit ion Language) pentru descriere;
-manipularea datelor , prin politici de securitate, reguli de interogare, control
concurență, și reconstruirea bazei de date în cazul unor erori de natură hardware sau
de natură software;
DDL este un limbaj descri ptiv folosit la denumirea entităților și a relaț iilor
logice, specificarea tipurilor ș i structurii interfeț elor, precum ș i moduri de vizualizare.
DML se folosește la operații de manipulare de date ș i anume:
-inserarea de date noi;
-modificarea datelor deja existente;
-extragere date din baze de date;
-ștergere date din baza de date;
Există două tipuri de limbaje de manipulare a bazelor de date:
-DML procedurale, acestea definesc procedurile prin care se fac anumite
operaț ii.
-DML neprocedurale (declarative), acestea specifică numai care operații
trebuie să se facă asupra datelor cum este SQL care este un limbaj de interogare a
bazelor de date neprocedural, standard pentru sistemele de gestiune a bazelor de date
relaționale și limbajul QBE (Query by Example).
SQL si QBE se consideră limbaje din gener ația a patra care definesc ce treb uie să
realizeze și nu cum treb uie să realizeze anumite operaț ii.
Tipuri de limbaje de generaț ia 4:
-limbaje de prezentare;
-limbaje de specialitate;
-generatoare de aplicaț ii (cu ajutorul bazelo r de date se construiesc
aplicaț ii);
-limbaje de nivel înalt ( generează cod pentr u aplicaț ii); [6]

BAZE DE DATE PENTRU VANZARI AUTO

Page
12

2.2.4 Modelarea bazelor de date

Modelul re prezintă totalitatea conceptelor ce au fost folosite pentru descrierea
datelor din baze de date, a relațiilor și a constrâ ngerilor.
Model e logice bazate pe înregistrări: -model de date relaț ional;
-model de date în reț ea;
-model de date ierarhic;
Modele conceptuale: -modelul Entitate -Relaț ie;
-modelul orientat pe obiecte; [7]
2.2.4.0 Modelul de baze de date relaț ional

În modelul de baze de date relational, datele sunt structurate sub f ormă de
tabele.
Relația reprezintă un tabel cu linii și coloane, fiecare tabel având o denumire și este
format din înregistrări (linii, râ nduri, tuplu -ri) și fiecare are mai multe atribu te.
În baze de date , tuplul este o linie sau un rând din tabel, fără ca ordinea
tuplurilor să aibă importanță, dar nu trebuie să fie dubluri ale acestora. Totalitatea
tuplurior se numește cardinalitatea relaț iei.
Atributul reprezintă o coloană cu denumire proprie și distinctă .
Domeniul reprezintă mulț imea de valori pe care poat e să o ia un atribut.
Într-o bază de date relaț ionale , relaț iile sunt normalizate. Normalizarea este
operația de prelucrare a relaț iilor pen tru a evita dublurile de date, și impune ca fiecare
celulă din tabel să conțină doar o singură valoare, fiind satisfac ută aceasta , putem
spune că relația este în prima formă de normalizare.
Prin atributele sale , un tuplu este identificat unic, un atribut care identifică
unic un tuplu se numește supercheie, care poate să nu aibă niciun set de atribute ș i
atunci se va numi cheie candidat, care, aceasta din urmă, dacă este aleasă pentru a
identi fica unic un tuplu dintr -o relație se numește cheie primară ; cele care nu au fost
alese ca și chei primare se consideră că sunt chei alternative. [8]
2.2.4.1 Modelul entitate -relaț ie

Entitatea este un obiect ce poate fi identificat î n mod unic. O reuniune de
entități de același tip se numește tip de entitate sau mulț ime-entitate. Orice bază de
date înglobează mai multe tipuri de entități, cu specificarea că o entitate poate să
aparțină mai multor ti puri de entităț i.Tipul de entitate se poate recunoaște datorită

BAZE DE DATE PENTRU VANZARI AUTO

Page
13
numelui și listei de proprietăți, numite atribute ce conțin valori car e ajută la definirea
entităț ii.
Atributele se împart î n mai multe tipuri , după cum urmează :
-atribute simple;
-atribute compuse;
-atribute cu o singură valoare, acestea au valoare unică pntru fiecare
entitate;
-atribute c u mai multe valori, unele e ntităț i pot avea mai multe valori;
-atribute derivate, ce pot fi obț inute prin diferite expresii.
Structura logică a unei baze de date se poate realiza cu aju torul diagramelor
entitate -relație care conțin standard următoarele elemente și este descrisă prin
exemplul din F ig 2.2. 4.1:
-dreptunghiuri, aici vor fi notate tipurile de entitate;
-elipse, unde vor fi notate atributele;
-linii, cu ajutorul cărora se vor evidenția legă turile dintre elemente.

Fig.2.2. 4.1, diagrama entitate -relație

2.2.5 Restricț ii structurale

Se pot stabili și unele restricț ii structurale cu ca re bazele de date se
conformează, împărțite î n 2 categorii: -restricț ii de cardinalitate;
-restricț ii de participare.
ANGAJAT
Nume
Prenume
Data nașterii
telefon
adresa
Sex
localitate
județ
strada

BAZE DE DATE PENTRU VANZARI AUTO

Page
14
Restricțiile de cardinalitate se referă la numărul de relații pentru o anumită
entitate, mai exact reprezintă numărul entităților la care poate fi asociată o enti tate
prin intermed iul unei relaț ii.
Restricț iile de participare f ac referire la determinarea dacă un tip de enti tate
depinde sau nu de faptul că este legat la unul sau mai mul te tipuri de entitate prin
relație.
Participarea poate fi: -totală, dacă existența entității nece sită existenț a unei
entități asociate relaț iei;
-parțială, dacă existența entității nu necesită existența
unei entități asociate în relația dată . [9]

2.2.6 Superclase ș i subclase

O superclasă este un tip de entitate care include subclase distincte cu
necesitatea reprezentă rii printr -un mo del de date, subclasa se defineș te ca fiind un t ip
de entitate cu rol distinct și care este mem bru al unei superclase. Orice membru al
unei subclase este , de asemenea , și membru în superclasă, dar cu rol diferit. Nu este
obligatoriu ca subclasele să fie neapă rat disjuncte, adică pot exista membrii î n
subclase care pot fi comuni.
Prin împărțirea în subclase și superclase se obț ine un important model,
modelul or ientat pe obiect. Prin atributul superclasei , dar ș i prin atributele proprii ,
putem caracteriza un membru al subclasei, de aici rezultă structura ierarhică. O
subclasă poate la rândul ei să fie superclasă pentru altă subclasă a sa. Subclasa care
are mai multe subclase se numește subclasa partajată, aici apare moș tenirea
atributel or, mai exact moștenirea multiplă . [10]

2.2.7 Ciclul de viață al aplicaț iilor bazate pe baze de date

Etape: -planificarea bazei de date;
-definirea sistemului;
-analiza ș i colectarea cerinț elor;
-proiectarea bazei de date;
-alegerea unui SGBD;
-proiectarea programelor de aplicaț ie;
-realizarea unui prototip al bazei de date;
-implementarea bazei de date;

BAZE DE DATE PENTRU VANZARI AUTO

Page
15
-conversia și încă rcarea datelor;
-testarea aplicaț iei;
-întreț inerea;
Planificarea bazelor de date constă î n ident ificarea planurilor de afaceri ș i a
cerințelor sistemului, evaluări ale situațiilor curente și oportunități privind tehnologia
informaț iei.
Definirea sistemului este etapa în care se stabilește s copul aplicaț iei, domenii
de utilizare, grupuri de utilizatori.
Analiza și colectarea cerinț elor reprezintă o etapă foarte dificilă î n care se face
chestionarea clientului pentru domeniul de interes.
Proiectarea bazei de date porneș te cu re alizarea model elor de date, după care
urmează o analiză amănunțită de identificare și includere î n model a tuturo r
entităților, atributelor și relațiilor de nivel scă zut.
Alegerea unui SGBD, aici se ține cont de costurile hardware și software, cele de
întreținere, dar și de performanț a sistemului.
Proiectarea programelor aplicației în general urmăreș te realizarea de interfețe
prietenoase și eficiente între baza de date ș i utilizator.
Reali zarea unui prototip este o etapă opțională, dar este importantă, deoarece
un pro totip cu model de lucru simplific at reduce costurile, se testează uș or.
Implementarea bazelor de date și a aplicațiilor constă în realizarea (codarea) î n
diferite limbaje bazele de date și aplicaț iile acestora.
Conversia datelor și încărcarea acestora re prezintă transferul în baza de date a
datelor î n exterior.
Testarea aplicației, este o etapă foarte importantă î n care se urmărește
depistarea erorilor de funcț ionare.
Întreținerea operațională este etapa de mentenanță în care se monitorizează
continuu și se remediază erorile de funcționare prin reorganizare și implementare de
cerinț e noi. [11]

2.3 PHP

PHP a fost creat în anul 1994 , proiect la care a contribuit Rasmus Lerdorf , ca o
extensie a limbajului server -side Perl, apoi PHP/FI 2.0 . Ulterior a fost preluat de The
PHP Group ș i supus unor modif icări ș i rescrieri până să ajungă la varianta de astă zi.
PHP-ul este un produs open source, oricine poate avea acces la codul sursă și poate
să modifi ce și să -l folosească gratuit fără nicio problemă .

BAZE DE DATE PENTRU VANZARI AUTO

Page
16
În anul 1998 a fost lansată o nouă versiun e a interpretorului PHP de către Zeev
Suraski ș i Andi Gutmans , versiune numită PHP 3.0, apoi a u rescris baza baza
limbajului și au produs Zend Engine î n anul 199 9, iar mai apoi î n anul 2000 a fost
lansat PHP 4.0 , care avea la bază Zend Engine 1.0.
În 2004 a apă rut PHP 5.0 cu Zend Engine 2 , care avea caracteristici de
programare orien tate pe obiecte mult mai pronunțate decâ t versiunile anterioare, a
mai adus ca no utăți introducerea PHP Data Objects , cu ajutorul căruia se poate
realiza accesarea facilă a diferitelor baze de date. La această nouă versiune au fost
sesizate și îmbunățiri de performanță , a mai dispus de support pentru MySQL ș i
MSSQL, suport pentru SQLite ș i pentru SOAP, dispunea de iteratori pentru date,
puteau fi trat ate excepț ii, deci acest nou prod us suferi se modifică ri importante.
În anul 2007 a apă rut PHP 6.0 , care și acesta avea o serie de îmbunătățiri față
de varianta PHP 5.0 , și anume: fusese îmbunătăț it suportul pentru Unicode, oferea
suport pentru integer pe 64 de biț i, fuseseră retrase taguri -le de tip ASP, au mai fost
retrase unele funcț ii, au fost introduse în distribuț ia principal XMLReader,
XMLwriter, Fileinfo, unele pache te precum Freetype1, GD1, mime_magic au fost ș i ele
retrase, fusese modificată instanțierea obiectelor prin referință , cu ajutorul
instrucț iunii de goto se permit salturi de la un bloc de comenzi la alt bloc de comenzi
etc.
Este considerat ca fiind unul dintre cele mai importante limbaje de programare
WEB , de aceea este ș i foarte utilizat în ziua de astă zi. Dacă ar fi să analiză m unele
statistici , acesta este utilizat î n peste 20 de milioane d e site -uri WEB pe circa 1 milio n
de servere. Este considerat un software liber și se găsește sub licență. Licenṭa PHP și
Free Software Foundation .
PHP este una din cele mai in teresante tehnologii existente în momentul de față,
și este considerat un bun inst rumet pentru dezvoltarea aplicaț iilor WEB. Oferă
posibilitatea furnizării unui conț inut WEB dinamic, acesta fii nd foarte important în
menț inerea traficului unui site WEB. PHP rulează pe serverul WEB , nu în browser, î n
concluzie , spre deosebire de JavaScript , este mult mai avantajos deoar ece, PHP poate
avea acces la fiș iere, la baze de date ș i alte resurse care sunt inaccesibile din
JavaScript.
PHP-ul este un limbaj de programare care a fost special proiectat pentru WEB ,
este un limbaj simplu de utilizat, este structurat cu o sintaxă simplă , combinaț ie de C,
Perl și începâ nd cu versiunile mai noi Java . Acesta poate să ruleze pe multe sisteme
de operare și poate să interacț ioneze cu majoritatea serverelor. Într-o pagină HTML
este posibilă înglobarea codului î n PHP ca re se va executa de fiecare dată când pagina
a fost vizitată .
Codul scris î n PHP va fi interpretat pe serverul WEB și va gene ra cod în HTML
care va fi vă zut de clientul browserulu i. Codul PHP poate fi folosit și in alt mod decât
integrat,și anume în mod “linie de comandă ”, cu ajutorul căruia se pot dezvolta
aplicaț ii independente. PHP-ul folosește extensii pentru fiș ierele de tip PHP precum :
php, .php3, .ph3, .php4, .inc, .phtml. Acesta dispune de tipuri de date interne
precum: Boolean, Intege , Float, String, Array, Obiecte, Resurse, NULL, dispune de
sute de funcții incorporate dar și foarte multe funcții a că ror disponibilitate este prin
intermediul extensiilor.

BAZE DE DATE PENTRU VANZARI AUTO

Page
17
Programele PHP folosesc două tipuri de date și anume șiruri ș i numere. Șirurile
sunt compuse din orice ca ractere , inclusiv cifre numere și caractere speciale pe câ nd
numerele sunt compuse numai din cifre. Foarte importan tă este decizia referitoare la
modul de stocare a datelo r, de obicei datele se stochează sub formă de numere atunci
când dorim să executăm op erații mat ematice, deoarece numerele oferă posibilitatea
efectuării operaț iilor matematice.
Datele vor fi stocate su b formă de șiruri dacă nu sunt în format numeric sau
dacă la operare se doreș te introducere sau vizualizare de date. Numerele pot fi
consi derate ca un mod de stocare intern al calculatorul ui, iar datele stocate sub formă
de șiruri pot fi considerate ca un mod de stocare a l datelor in afara calculatorului , deci
extern.
PHP folosește numere întregi și duble, acestea două reprezentâ nd categor ii de
numere. Numer ele intregi sunt acele numere fără parte a fracțională folosite la
indexare, la care se mai adaugă ș i num erele negative plus numărul zero, deci la fel ca
în matematica, iar numerele duble sunt numere ce pot include fracții zecimale,
echivalate î n matematica cu numerele reale.
În PHP , obiectele au apă rut o data cu PHP 3.0 și PHP 4.0 și întotdeauna când o
variabi lă era folosită într -o funcț ie, se copia tot obiectul. O dată cu apariț ia PHP 5 .0 s-
a modificat complet felul î n care obiect ele sunt tratate, acestea sunt referenț iate cu
ajutorul unui vector intern nu după valoarea lor .
Atunci când PHP interpretează un fiș ier, acesta parcurge textul acestuia până
când întâlnește o etichetă specială care să îi spună de unde și până unde textul
delimitat de etichete v a fi interpretat ca un cod PHP, astfel există posibilitatea
înglobării porțiunilor de cod în PHP î n cod de tip HTML.
În PHP , instrucțiunile sunt separate la fel ca î n alte limbaje de pr ogramare
precum C sau Perl, după fiecare instrucțiune urmând un punct ș i o virgulă .
Comentariile î n PHP sunt la fel ca C, C++, Unix shell, de exemplu: /* Acesta
este un comentariu pe mai multe linii */ sau // Acesta este un comentariu pe o
singură linie.
PHP-ul dispune de 8 tipuri primitive de date ș i anume:
– patru tipuri scalare: -boolean;
-integer;
-float;
-string;
-două tipuri compuse: -array;
-obiect;
-două tipuri speciale: -resource;
-NULL;

BAZE DE DATE PENTRU VANZARI AUTO

Page
18
Tipul boolean poate avea două valori : ADEVÅRAT sau FALS ș i sunt indicate
prin cuvintele cheie TRUE respectiv FALSE. Există posibilitatea ca orice variabilă de
orice tip să se poată converti la tipul boolean.
Tipul integer reprezintă o valoare de tip număr î ntreg. În PHP nu există
operatori pentru împărțiri întregi ș i nici nu există suport pent ru numerele întregi fără
semn.
Conversii se pot face și î n cazul numerelor intregi , de exemplu , valoarea logică
TRUE se poate converti la numărul î ntreg 1, respectiv valoarea logică FALSE se poate
converti la numărul î ntreg 0. Rotunjirile se fac î n jos pentru numerele positive, deci
spre 0 și î n sus pentru numerele negative.
Variabilele de ti p float pot fi specificate fie științific, (cu mantisa ș i exponent) , fie
zecimal. Există posibilitatea convertirii unei variabile de orice tip la tipul float, precizia
depinde de platfo rm, la fel ca și î n cazul integer.
Variabilele de tip string reprezintă șiruri de caractere. PHP nu oferă suport
pentru setul de caractere Unicode, lungimea unui tip string nu este limitată de
interpretor.
Există trei moduri în care pot f i specificați literalii de tip șir de caractere după cum
urmează : -prin ghilimele simple;
-prin ghilimele duble;
-prin notația heredoc, această notație a apărut o dată cu apariția PHP4, iar
pentru a specifica un ș ir de caractere trebuie uti lizat operatorul “<<<”, urmat de ș ir,
iar toate caracterele aflate î ntre “<<<”, urmate de un identificator pe o linie și același
identificator pe altă linie reprezintă valoarea ș irului de caractere.
Dacă se dorește concaternarea ș irurilor de caractere se poate folosi operatorul
“.” Există ș i posibilitatea de a converti orice tip de variabilă la tipul string. Valoarea
logică TRUE se va converti la șirul “1”, valoarea logică FALSE se va converti la ș irul
vid, adică “”, un număr întreg se va converti î ntr-un șir de de caractere c are are ca
valoare valoarea numărului în baza 10, valoarea unui număr real va fi convertit la un
șir de caractere a cărui valoare o reprezintă un număr în format științific, obiectele de
fiecare dată vor fi convertite la ș irul Object, variabilele de ti p resource sunt convertite
la șirul “Resource id #n”, n reprezentâ nd id unic alocat de interpretor resursei,
valoarea NULL se va converti la ș irul vid “”.
Tipul array este optim izat pentru a putea fi folosit î n locul listelor, tabelel or de
dispersie, dicționarelor, colecț iilor, stivelor, cozilor, etc. Datorită acestui fapt se pot
simula destul de ușor arborii n – dimensionali sau tablouri n -dimensionale. Valorile
unor variabile de tip vector pot fi specificate în felul urmă tor: $a=array( „ch‟=>‟string‟
34=> TRUE);
Dacă nu se va specifica o cheie pentru o val oare, atunci valoarea respectivă este
atașată unei chei care va fi cheia maxina d e tip integer, la care se adaugă ș i valoarea
1. Dacă nu sunt chei de tip integer , atunci valoarea se atașază cheii 0. Pot fi ș i chei
negative. Dacă pentru chei folosim valori logice , atunc i valoarea acesteia se
convertește la 1 pentru TRUE ș i la 0 pentru FALSE. Variabilele de tip object sau array

BAZE DE DATE PENTRU VANZARI AUTO

Page
19
nu pot fi folosite pentru chei. Varabilele de tip array pot fi modificate prin setă ri
explicite.
Tipul object, oferă posibilitatea ca orice variabilă de orice tip să poată fi
convertită la tipul obiect, iar dacă variabila este obiect, ea va rămâne nemodificată .
Dacă variabila de convertit va fi de tipul NULL , atunc i noua instanță o să fie
vidă, în toate celelalte cazuri instanța conț ine variabile membru numite scalar care vor
avea valori valorile variabilelor convertite.
Tipul resource se folosește pentru a păstra o referință că tre anumite resurse
externe, cr eate ș i utilizate de anu mite funcț ii speciale.
Tipul NULL, valo rile sp eciale NULL sunt atribuite orică ror variabile care nu au
fot inițializate ș i valoarea NULL este singura valoare pe care o poate avea o variabilă de
tip NULL. O variabilă tipul NULL , dacă aceasta a fost deziniț ializată, dacă nu a fost
inițializată sau dacă i -a fost atribuită constanta NULL. [12]

2.3.0 Clase și obiecte î n PHP

În PHP , o clasă reprezintă o colecție de funcții și de variabile care operează cu
variabilele respective. O clasă în PHP se declară în felul urmă tor:
<?php
class nume_clasa {
// date membre
var nume_var
// metode
}
?>
Obiectele su nt considerate tipuri de date, ș i sunt practic copiile variabilelor
propriu -zise. Se construiesc cu ajutorul operatorului new.
Extinderea claselor este o chestiune foarte imp ortantă. O clasă derivată
păstrează toate proprietățile ș i metodele clase i pe care o extinde dar poate să conțină
și proprietăți ș i metode noi. În PHP nu se permite moștenirea multiplă, deci o clasă
poate să a ibă numai o singură superclasă . Extinderea se face cu ajutorul cuvantului
cheie extends. Întotdeauna superclasa trebuie să fie definită înaintea utiliză rii, deci
superclasa trebuie definită î naintea subclasei.
Constructorii sunt metode ale unor c lase car e sunt apelate automat în
momentul î n care se creea ză o instanță nouă a unei clase. Orice funcție care are
același nume ca și clasă se consideră că este un constructor. Un constructor în PHP
poate să aibă ș i argumente , dar nu este obligatoriu.

BAZE DE DATE PENTRU VANZARI AUTO

Page
20
În PHP, cu ajutorul unor etichete speciale <? la început ș i la sfârș it ?> sau cu
<?php la început și la sfârș it ?>. se delimita codul php.
În PHP , variabilele se vor reprezenta cu ajutorul semnului dolar , după care v a urma
numele variabilei, care sunt case -sensitive.
În PHP3 , tot timpu l variabilele se vor a tribuii prin valoare, PHP4 oferă alt mod prin
care se pot atribu i variabilele , și anume pr in referință, noua variabilă va referi
variabila originală și orice schimbă ri în variabila nouă o va afecta și cea initiate, dar ș i
invers. În PHP există ș i o mare varietate de variabile predefinite care de pind de
serverul pe care rulează .
Variabilele reprezintă o zonă de memorie căreia i se va da un nume pentru a ca
mai târziu să poată fi recunoscută și să ne pute m refer i la ea.
Variabile predefinite: -$GLOBALS -indică faptul că se pot accesa toate variabilele
globale accesibile pentru scriptul curent;
-$_SERVER – conține variabile setate de server -ul web ș i depind
de mediul de e xecuț ie al script -ului curent;
– $_GET si $_POST – conțin variabile primite de script î n urma
unor transferuri ce folosesc metodele HTTP get ș i post;
– $_COOKIE -conțin valorile variabilelor care se referă la cookie –
uri;
– $_FILES -conțin variabile primite după o încărcare de fiș iere cu
metoda post;
– $_ENV -variabile disponibile în funcție de mediul î n care este
executat script -ul;
– $_REQUEST –conține variabile acc esibile prin orice tip de
metodă prin care se pot introduce date;
– $_SESSION -conțin variabile corespunzătoare pentru sesiunea
curentă ;
Constantele di n PHP sunt un fel de variabilă care stochează o valoare , dar
diferența între variabila și constantă este fapul că aceasta din urmă nu mai poate fi
modificată ulterior. Definire a se face cu a jutorul “define” ș i numele ei se scrie cu
majuscule.
Ex.: define(„NUME‟ , „Dorin ‟); [13]

2.4 HTML

HTML re prezintă o formă de marcare orientată că tre prezentarea documentelor
text într -o pagină , cu ajutorul unui software de re dare specializat pentru aceasta, ș i

BAZE DE DATE PENTRU VANZARI AUTO

Page
21
anume un agent utilizator HTML, de exemplu un browser web. HTML oferă mijloacele
necesare prin care un document poate fi abnotat cu tipuri diverse de metadate și
indicaț iile de redare. Redarea poate varia de la decorațiuni ale textului, până la
scripturi complicate, hărț i de imagini, formulare.
HTML poate fi editat ș i citit printr -un simplu editor de text, dar pent ru aceasta este
nevoie de timp și experiență, deoarece este destul de dificil de rea lizat acest lucru.
HTML poate fi generat direct cu ajutorul diferitelor tehnologii de codare din partea
serverelor.
HTML are prescurtar ea Hyper Text Mark -up Language și stă la baza realiză rii paginilor
web, acestea din urmă fiind fo rmate din etichete sau tag -uri cu extensia .html sau
.htm. În majoritatea cazurilor , etichetele sunt perechi de închidere ș i de deschidere
(<eticheta> respectiv < /eticheta>), dar pot fi și cazuri când nu se î nchid, iar browserul
interpretează acest caz afișâ nd rezultatul pe ecran. [14]

2.5 MySQL

MySQL este un si stem cu ajutorul că ruia se face gesti unea bazelor de date, este
dezvoltat de către compania MySQL AB și este distribuit sub Licentă Publică Generală
GNU. Este open -source și în prez ent este cel mai popular sistem de gestiune a bazelor
de date (SGBD). De obicei , acesta este folosit împreună cu PHP -ul. Datorita licenț ei
GNU GPL nu este permisă incorporarea MySQL î n programe software comerciale,
pentru acest lucru fiind necesară achiziția unei licenț e comerciale de la p roducătorul
care o deț ine, și anume MySQL AB.
Serverul de baze de date MySQL este unul foarte rapid, și uș or de utilizat. În
prima fază de dezvoltare a fost creat pentru a putea lucra cu baze de date mari, acesta
dispune de conectivitate, viteză, ș i securita te foarte bună și î l fac foarte folositor la
acesarea bazelor de date prin internet.
O bază de date este o colecție structurată de date , iar cu ajutorul MySQL se pot
foarte ușor adă uga, gestiona ș i procesa date . MySQL gestionează bazele de date
relaționale , adică bazele de date în care informația este memorată î n mai multe tabele
separate , nu într -o singură structură, iar î n felul acesta , viteza ș i flexibitatea sunt
maxime.
Tabelele au un numă r de coloane pentru fiecare tip de informați e, iar liniile
corespund intr ărilor din tabele. Coloanele deț in nume unic și informaț iile din ele s unt
diferite, fiecare cu tipul să u asociat. Liniile sunt numite și înregistrări sau tupluri și
reprezintă înregistră ri. Cu ajutorul cheil or se poate identifica fiecare înregistrare î n
parte.
În MySQL avem 3 tipuri de relații: -relație una la una adica linie la linie , relație
una la mai multe , adică o singură linie dintr -o tabelă se leagă la mai multe linii, relație
mai multe la mai multe , adică mai multe linii dintr -o tabelă sunt le gate la mai multe
linii din altă tabelă.

BAZE DE DATE PENTRU VANZARI AUTO

Page
22
Este la fel de popular ca ș i PHP -ul, deoarece există o legătură strânsă î ntre
acestea. Foarte mulți autori de cărți de specialitate , consideră că MySQL este mult mai
ușor de folosit și de învățat decât alte aplicații din acelaș i domeniu, și anume
gestiunea bazelor de date. [15]

2.6 Apache

Apache este un server HTTP open source. Este foarte important î n dezvoltarea
web-ului, aproximativ jumă tate din paginile web folosesc Apache. Este dezvoltat de o
comunitate de programatori sub denumirea Apache Software Foundation, si poate fi
folosit pe majoritatea sistemelor de operare.
Deoarece este un soft gratuit și open source, î n 1996 a fost cel mai popular
server HTTP, apoi în 2005 a suferit o decă dere, iar în 2008 se mai folosea totuș i tot
cam la 50% di n site -uri. Prima versiune a fost dezvoltată de Robert McCool î n cadrul
proiectului National Center for Supercomputing Applications. Următoarea versiune a
fost rescrisă î n mare parte, acentu l căzând pe î ncercarea de a creea un layer prioritar
și suport de module. [16]

2.7 CSS

Cascading Style Shee ts sau prescurtat CSS se foloseș te pentru a formata
paginile web, formatarea textului, imagine de fundal, aranjare in pagină etc.
CSS aduce multe beneficii utilizatorului , deoarece pentru tot docu mentul
formatarea este introdusă într-un singur loc, editarea etichetelor este rapidă și simplă ,
codul paginii va fi micș orat deoare ce etichetele vor fi introduce î ntr-un singur loc, de
aici rezultă și o î ncărcare mai rapidă a paginilor.
Sintaxa este pe 3 nivele ș i anume:
-nivelul 1 : proprie tățile din do cumentul HTML -cea mai importantă ,
suprascrie orice parametru
-nivelul 2 reprezintă informația introdusă în HEAD ș i este de tip
incorporate
-nivelul 3 reprezintă comenzi de tip externe care se află î n pagini
separate
Un lucru practic este folos irea unui fiș ier ext ern pentru comenzi CSS pentru că
poate să fie utilizat în situații multiple și astfel se elimină timpul ne cesar pentru a
introduce codul î n pagini, iar editarea se va face î ntr-un singur loc pentru multiple
fișiere.
Un fiș ier CSS va fi salvat cu extens ia .css iar legătura paginilor HTML cu
fișierele ext erne se face cu ajutorul liniei: <link rel="stylesheet" type="text/css"

BAZE DE DATE PENTRU VANZARI AUTO

Page
23
href="exemplu_css.css"> , unde rel indică faptul că fiș ierul este de tip stylesheet , type
indică pipul î n cazul acesta text, iar href indică fiș ierul sau adresa lui. [17]

2.8 JavaScript

JavaScript este un limbaj de programare orientat pe obiecte. Este foarte des
utilizat în introducerea de functionalităț i paginilor web, deoarece prezintă avantaj față
de php pentru că codul este r ulat pe calculatorul gazdă, nu pe server , iar în felul
acesta nu se va î ngreuna munca serverului. Acest limbaj a fost folosit la accesul la
obiecte încastrate în alte aplicații dar ș i la construi rea paginilor web.
Inventator ș i dezvoltator a fost Brendan Eich de la Netscape Communication
Corporation cu numele Mocha, ulterior s -a numit LiveScript și până la urmă a ajuns
la denumirea de JavaScript.
Sintaxa JavaScript este apropiată cu sintaxa limb ajului C la fel ca ș i Java , dar
între ele nu există nicio legătură, chiar dacă au nume asemănă toare.
Ultima versiune de JavaScript a fost JavaScript 1.5 corespunză toare ediț iei a 3 –
a ECMA -262,ECMAScript, care era o ediție standardizată aceste lucruri avâ nd loc
până pe la î nceputul anului 2005.
Trecerea de la LiveScript la n umele de JavaScript a avut loc în perioada în care
Netscape î ngloba pentru tehnologia Java suport î n browserul web Netscape Navigator.
Cei de la Microsoft au implementat ș i ei limbajul JavaS cript ș i l-au denumit
Jscript, care avea multe modificări în comparație cu varianta implementată de
Netscape. Sub Windows , Jscript este limbaj executabil și oferă suport pentru
dezvoltarea de aplicaț ii bazate pe Windows Script.
În paginile HTML pot fi intr oduse scripturi scrise în JavaScript cu ajutorul
cărora se pot verifica datele introduse de că tre un utiliz ator sau pentru a crea meniuri
și diferite afecte, fără a se utiliza PHP. Această soluție este foarte avantajoasă,
deoarece nu blochează sau îngreunează serverul, codul rulând pe calculatorul gazdă .
În memoria browserelor , reprezent area unei pagini va fi sub formă de arbore de
obiecte și sunt puse la dispoziția script -urilor JavaScript, care au posibilitatea de citire
și operare cu ele. Acest arbore de obiecte este numit Document Object Model. Cu
ajutorul standardului W3C, există posibilitatea de a scrie script -uri portabile care sunt
compatibile și funcționează cu toate browserele.
O nouă tehnică a început să ia amploare î n ultimii ani , și anume AJAX
(Asynchronous JavaScript and XML) și se bazează pe executarea un or cereri HTTP ce
vor fi satisfăcute în fundal, în felul acesta nemaifiind nevoie să fie incărcată toată
pagina web , ci numai unele porțiuni va trebui să fie actualizate. Prin aceas tă tehnică
se pot cr ea interfețe și aplicații web al căror timp de răspuns este mic, ceea ce duce la
o creș tere semnificativă a performanț elor. [18]

BAZE DE DATE PENTRU VANZARI AUTO

Page
24
2.9 Instalare Apache

Orice server sau pachet instalat are întodeauna un fiș ier de configurare. Pentru
serverul Apache , fișierul de confi gurare este httpd.cong și este localizat î n C:\Program
Files\Apache Group \Apache2 \conf\.Fig.2.9 a, Fig.2.9 b, Fig.2.9 c.

Fig.2.9 a

Fig.2. 9 b

BAZE DE DATE PENTRU VANZARI AUTO

Page
25

Fig.2.9 c
2.10 Instalare PHP

În directorul C: \Progr am Files \Apache Group \ se creaza un folder numit php
în care se va dezarhiva și copia conț inutul directorului php -4.4.0 -Win32, deja
descă rcat. Ulterior este nevoie de editarea fiș ierului de configurare al PHP -ului, fișier
numit php.ini gă sit la calea C: \Programs Files \Apache Group \php ș i facem
următoarele modifică ri:
-doc_root= va trebui să fie schimbat î n doc_root= C: \Program Files \Apache
Group \htdocs, aceasta ne va seta calea către folderul unde sunt ținute scripturile ș i
paginile.
-extension_dir= se va schimba cu extension_dir= C: \Program Files \php\extensions,
aici se setează calea unde vor fi ț inute extensiile php.
-display_error=Off se va schim ba cu display_error=On, pentru afiș area erorilor.
-session.save_path=/tmp va fi schimbat cu session.save_path= C: \Program
Files\Apache Group \php\sesiuni, după care î n directorul C: \Program Files\Apache
Group \php se va cr ea folderul “sesiuni” necesar pentru sesiunile temporare de pe
server.
După ce s-au realizat toate aceste modificări, se fac modificări și asupra
fișierului httpd.conf de la calea C: \Program F iles\Apache Group \Apache2 \conf și se
adaugă la sfârșitul fiș ierului httpd .conf urmă toarele linii de cod:
ScriptAlias /php/ "C:/Program Files/Apache Group/php/"
AddType application/x -httpd -php .php

BAZE DE DATE PENTRU VANZARI AUTO

Page
26
Action application/x -httpd -php "/php/php.exe"
În final se va modifica linia intitulată “DirectoryIndex index.html” cu linia
“directoryIndex index.html index. php”
Se salvează toate modificările și se porneș te serverul Apache, iar procesul de instalare
este finalizat.

2.11 Instalare MySQL

S-a descă rcat mys ql-essential -4.1.13a -win32.m si și se rulează, se selectează
Custom ș i apoi se selec tează calea C: \Program Files \Apache Group \ , unde va exista
un folder MySQL , apoi se continuă instalarea î n acest folder. Fig.2.11
După instalare, se va deschide o fereastră , unde există posibilitatea configură rii
serverului mysql. Se selectează opț iunea Standa rd Configuraton, apoi setăm o parolă
de autentificare , iar procesul de configurare poate continua.

Fig.2.11

2.12 Instalare phpMyAdmin

După ce a fost descă rcat phpMyAdmin , acesta va fi dezarhivat ș i copiat acolo
unde se vor rula scripturile , adică î n C:\Program Fi les\Apache
Group \Apache2 \htdocs , unde htdocs va fi redenumit î n phpmyadmin. Se va încerca
să se ș cceseze http://localhost/ phpmyadmin , iar dacă aici apare eroare , trebui e să se
modifice fiș ierul de configurare al phpMyAdmin și i se va seta parola aleasă la
înregistrarea MySQL -ului descrisă mai sus. Trebuie modificat fiș ierul config.ini.php de
la calea C: \Program Files \Apache Group \Apache2 \htdocs \phpmyadmin, mai exact

BAZE DE DATE PENTRU VANZARI AUTO

Page
27
linia ($cfg['Servers' ][$i]['password' ] = ''; iar acum phpMyAdmin va rula fără nicio
problemă .

BAZE DE DATE PENTRU VANZARI AUTO

Page
28
Cap.3 Prezentare aplicaț ie

Aplicația prezentată în lucrarea de față este un proiect ba zat pe baze de date
special cre at pentru a simplifica , gestionarea și publicarea anunțurilor online legate de
vânză ri auto. Având în vedere că din ce în ce tot mai multă lume foloseș te int ernetul
pentru diferite activităț i, am considerat că prin această lucrare voi pune la punct toate
aspectele leg ate de publicitatea online, aceasta fiind mai comodă , mai la îndemână ș i
mai ieftină decâ t spre exemplu un ziar, o revistă de do meniu , decât mersul la târguri
auto sau decâ t orice alt mijloc prin care se încearcă vâ nzarea unui vehicul , deoarece
actualiză rile se pot face instant fără a fi nevoie de apar iția unui nou numă r de rev istă
sau ziar. În cazul în care se doresc să se realizeze modificări asupra anunț ului,
acestea se pot face foarte ușor ș i rapid din propriul cont.
Aplicația dispune de o interfață simplă și totodată eficientă, dezvolta tă în
limbajul HTML , iar c u design în CSS, cu aju torul căru ia utilizatorul ia contact cu baza
de date. Utilizatorii care doresc să -și publice online anunț ul detaliat legat de un
vehicul auto trebuie mai întâi să se î nregistreze pe site, aceștia fiind nevoiți să -și
creeze un nou cont , în cazul î n care nu dispun de unul , sau să se autentifice în cazul
în care dispun de un cont creat anterior. În cazul î n care nu dispun de cont, crearea
acestuia este câ t se p oate de simp lu de realizat de către oricine fără a deține
cunoștințe avansate î n materie de calculatoare, practic utilizatorul trebuie doar să
adauge datele personale ș i adresa de e -mail și contul este deja creat iar utilizatorul
este adăugat î n baza de date , în tabe la spec ială pentru useri. Această operație se
traduce î n termeni de baze de date ca fiind o inserare a utilizatorului î n baza de date,
mai exact introducerea acestuia și memorarea în tabela special creată pentru
utilizatori cu câ mpuri spec iale.
Într-un câmp din această tabelă va fi stocată și parola aleasă la cre area
contului, parolă care este criptată pentru asigurarea securităț ii. De îndată ce contul a
fost creat utilizatorul respectiv poate să facă modificări asupra profilului să u, să
poste ze anunț uri, să șteargă anunț uri, să-și închidă acontul sau să lase comentarii
referioare la anu nțurile altor utilizatori.
Aceeași situaț ie va avea loc și în cazul î n care un use r se va autentifica la
contul să u creat anterior, acesta putând desigur să realizeze acel eași operaț iuni
enumerate mai sus.
De fiecare dată, la autentificare se va compara numele de log -in cu care a fost
înregistrat userul (username) și parola introdusă , cu username -ul și parola aleasă la
crearea contului. În cazul parolei aceasta va fi și ea criptată după acelaș i algoritm de
criptare care a fost folosit atunci când a avut loc î nregistrarea userului.
Toate aceste operații se realizează în PHP și reprezintă adăugiri sau ștergeri de
intrări în tabela cu care se lucrează în funcție de modificarea care se intenționează să
se facă . Autentificarea, crearea și adăugarea anunț urilor se poate face di n orice pagină
a site -ului datorită faptului că î n par tea din dreapra a paginii există un mic meniu
numit cu ajutorul căruia se pot face operații rapide și simple fără a fi nevoie ca userul
să acceseze pagina de profil, este necesar doar ca userul să fie autent ificat pentru
aceasta.

BAZE DE DATE PENTRU VANZARI AUTO

Page
29
Fiecare pagină dispune de un meniu shoutbox cu ajutorul căruia utilizatorul
poate adă uga o parere, un com entariu sau poate discuta cu alț i vizitatori . Aceștia au
posibilitatea să lase chiar un link spre un alt a nunț sau spre alt site din același
domeniu împreună cu părerea personală, iar un potențial cititor va putea să țină cont
de respecti va părere și s acceseze link -ul respectiv pentru a vedea de ce este vor ba
acolo, facilitate considerată de mine foarte importantă .

BAZE DE DATE PENTRU VANZARI AUTO

Page
30

Cap.4 Proiectare aplicaț ie

4.1 Pagina i ndex.php

Pagina index.php este prima pagină a site -ului, pe care vizitatorii intră atunci câ nd
accesează site -ul. Aceasta este formată din head, delimit at de tagurile speciale <head>
și </head> î n care avem descrierea site -ului, titlul, cuvintele chei e și linkul că tre
fișierul CSS care conține stil urile de pagină .
În continuare avem body -ul siteului, delimitat de asemenea de tagurile speciale
<body> si </body> . Aici avem conț inutul site -ului, structurat pe nivele c u ajutorul
tagurilor <div> apelând funcțiile corespunză toare din fisierul CSS .
În ant etul paginii avem un men iu cu restul paginilor din site (Fig.4.1 a).
Fig.4.1 a
Porțiunea de cod html aferentă este prezentată mai jos:
<div id="navcontainer">
<ul id="navlist">
<li id="active"><a href="/s ite/index.php" id="current">Home</a></li>
<li><a href="/site/anunturi.php">Anunturi</a>
<li><a href="/site/resources.html">Resurse</a></li>
<li><a href="/site/Contact.html">Contact</a></li>
<li><a href="/site/Profil.php">Profil</a></li>
</ul>
</div>
În continuare, î n dreapta paginii avem un meniu î n care utilizatorii se pot
înregistra sau se pot loga pe site , meniu, prezentat în Fig.4.1 b , împreună cu codul
html aferent prezentat ș i descris mai jos.

BAZE DE DATE PENTRU VANZARI AUTO

Page
31

Fig.4.1 b
<h2>Navigheaza in site</h2>
<div id="navleft">
<ul id="navlistleft">
<li id="active1"><a href="/site/index.html">Home</a></li>
<li><a href="/site/Contact.html">Contact</a></li>
<li><a href="/site/Profil.html">Profil</a></li>
<li><a href="/site/Inregistrare.php">Inregistrare</a>
<li><a href="/site/autentificare.php">Log In</a>
</ul>
</div>
O altă facilitate pe care site -ul o oferă , este un shoutbox, o casuță în care
vizitatorii î și pot expri ma părerile despre site, pot lăsa diferite mesaje sau pot pur și
simplu lă sa un a numit mesaj. Principiul de funcț ionare al acestui shoutbox este unul
foarte simplu. Mesajele sunt preluate din formular ul creat în html, de către fiș ierul
shout.php p rim metoda $_POST. Î n aceste mesaje exis tă posibilitatea introducerii
unului link pentru identificarea celui care a lasă t mesajul. Toate acestea sunt
prelucrate și trimise că tre tabela shoutbox, unde sunt stocate toat e mesajele. Fiecare
mesaj primește că te un numar de identificare (ID) care se incrementeaza singur cu
fiecare mesaj pri mit. Codul aferent se poate urmă ri mai jos r espectiv î n Fig.4.1 c, se
poate observa modul în care va ară ta shoutbox -ul.

BAZE DE DATE PENTRU VANZARI AUTO

Page
32

Fig.4.1 c
Codul php corespunzător fiș ierului shout.php :
$_SESSION['nume'] = $_POST['nume'];
$_SESSION['url'] = $_POST['url'];
$_SESSION['opinion'] = $_POST['opinion'];
$cerereSQL = "INSERT INTO `shoutbox` (`num e`, `url`, `opinion`)
VALUES ('".$_SESSION['nume']."', '".$_SESSION['url']."', '".$_SESSION['opinion']."');";
mysql_query($cerereSQL);
header( 'Location: /site/index.php' ) ;
Acesta preia datele primite de la u tilizator prin sintaxa $_POST, și trimite mai departe
către bază de date prin apelul mysql_query.
Codul html corespunzator formularului este:
<div class="text">Your opinions here</div>
<form action="shout.php" method="post">
<div><p>
nume: <br><input type="text" name="nume" value=""/><br />
url: <br><input type="text" name="url" value=""/><br />
Opinion: <textarea name="opinion" rows="1" cols="17"> </textarea><br />

BAZE DE DATE PENTRU VANZARI AUTO

Page
33

<input type="submit" value="Trimite" value="Trimite" class="button" />
<input type="re set" name="Reseteaza" value="Reseteaza">
</p></div>
</form>

Tot in pagina index am introdus și o casuța de că utare după marca auto dorită , în
care utilizatorii pot căuta anunț uri aflate pe acest site. Formularul este unul de stul de
simplu, bazat pe o casuț a text, iar afisar ea se face tot in aceasta pagină (Fig.4.1.d) .
Codul html al acestui formular:
echo '<form name="cauta" action="index.php?pag=cauta" method="post">
Cautare anunt:<br> <input type="text" name="cauta" value=""> <input
type="submit " name="Cauta" value="Cauta"> <br>
</form>';

Fig.4.1.d
Acesta are ca acțiune un case aflat tot î n aceasta pag ina. Deasemenea, se fac verifică ri
pentru ca în casuța de căutare să fie introdus un cuvant, și să aibe mai mult de 3
litere. Aceasta se face prin următoarea funcț ie:
if($_POST['cauta'] == '') {
echo 'Introdu un cuvant pentru a cauta in baza de date. <br>
Apasa <a href="index.php">aici</a> pentru a te intoarce.';
} elseif (strlen($_POST['cauta']) < 3) {
echo 'Cuvantul trebuie sa contina cel putin 3 caractere. <br>
Apasa <a href="index.php">aici</a> pentru a te intoarce.';

BAZE DE DATE PENTRU VANZARI AUTO

Page
34
Dacă pe ramura de sus nu se intră, atunci urmează funcț ia de selectare a datelor
căutate din baza de date, prelucrarea lor și afișarea anunț urilor gasite.
Aceasta se face prin crear ea unei variabile $cerereSQL, î n care i ntroducem sintaxa
MySql necesară pentru căutarea î n baza de date: s electăm toate intră rile d in tabela
`anunț` care corespund cuvân tului introdus în casuța de că utare.
$cerereSQL = 'SELECT * FROM `anunt` WHERE `marca1` LIKE
"%'.addentities($_POST['cauta']).'%"';
Deasemenea folosim funcț ia addentities pentru a ne proteja impotriva eventualelor
atacuri.
După ce initializam variabila cu sintaxa mysql propriu -zisa, o dăm ca parametru
funcț iei mysql_query, pentru a face căutarea î n baza de date. Rezultatul deasemenea îl
stocăm într -o variabilă $rezultat, pentru a -l putea transmite mai departe ca param etru
unei alte funcții care ne ajută sa afisăm toate rezultatele gă site.
$rezultat = mysql_query($cerereSQL);
if(mysql _num_rows($rezultat) > 0) {
Dacă avem minim un rezultat, atunci trecem mai d eparte la afisarea acestora până
când nu mai avem nici un anun ț de afisa t.
while($rand = mysql_fetch_array($rezultat)) {
echo '<b><font color="red">'.$rand['marca1'].' '.$rand['marca2'].', an fabricatie
'.$rand['an_fab'].'</b></font><br>
<b>Culoare:</b> '.$rand['culoare'].'<br>
pret '.$rand['pret'].' '.$rand['pret1'].'< br>
Abs – '.$rand['abs'].', Esp – '.$rand['esp'].', Geamuri Electrice –
'.$rand['geamuri1'].', Oglinzi Electrice – '.$rand['oglinzi'].', Trapa – '.$rand['trapa'].', Pilot
automat – '.$rand['pilot'].', senzori – '.$rand['senzori'].', alarma – '.$rand['alar ma'].',
tapiserie piele – '.$rand['tapiserie'].', '.$rand['cutie'].'<br>
'.$rand['stare'].', '.$rand['viteze'].' viteze, '.$rand['usi'].' usi<br>
<b>Detalii Contact:</b><br>
<b>Nume</b> – '.$rand['nume'].'<br>
<b>Prenume</b> – '.$rand['prenume'].'<br>
<b>Oras </b> – '.$rand['oras'].'<br>
<b>Telefon 1</b> – '.$rand['telefon1'].'<br>
<b>Telefon2 </b> – '.$rand['telefon2'].'<br>
<b>E -mail </b> – '.$rand['mail'].'<br><br>';

BAZE DE DATE PENTRU VANZARI AUTO

Page
35
}
}
Dacă în schimb nu s -a găsit nici un anunț, afisă m un mesaj corespunz ător
else {
echo 'Nu au fost gasite rezultate pentru cautarea: <font
color="red"><b><i>'.addentities($_POST['cauta']).'</i></b></font> <br>
Apasati <a href="index.php">aici</a> pentru a va intoarce';
}

4.2 Pagina î nregistrare.php (creare conturi)

Înregistrarea se poate face din meniul din dreapta, unde a vem opțiunea de
înregistrare. Făcând click pe aceasta, suntem duși pe pagina î nregistrare.php
Aceasta conț ine un formular de î nregistrare în care doritorii iș i pot crea contul
întroducând foarte uso r și întuitiv datele necesare . Designul acestuia este realizat în
înteriorul sintaxei PHP, cu ajutorul funcției „echo”, folosind taguri ș i sintaxa html.
Datele sunt preluate prin metoda $_POST, s tocate î n variabilele definite anterior
și trimise mai depar te către tabela „utilizatori” di n baza de date, unde avem stocați toț i
utilizatorii. Pentru o mai bună siguranța, câmpul de parolă este criptat folosind u na
din cele mai bune criptari, ș i anume md5.
$_POST conține variabile primite de script prin intermediul unor transferuri care
folosesc metoda POST. Prin intermediul acestor vect ori, pot fi accesate valorile
câmpurilor dintr-un formular care a fost completat ș i transmis folosind una dintre cele
doua metode. Pașii detaliati prin cod pot fi observaț i mai jos , iar in Fig.4.2 se poate
observa felul cum arată formularul de î nregistrare.

BAZE DE DATE PENTRU VANZARI AUTO

Page
36

Fig.4.2

Preluarea datelor introduse de user se face prin urmatoarea secvenț a php:
$_SESSION['user'] = $_POST['user'];
$_SESSION['parola1'] = $_POST['parola1'];
$_SESSION['parola2'] = $_POST['parola2'];
$_SESSION['nume'] = $_POST['nume'];
$_SESSION['prenume'] = $_POST['prenume'];
$_SESSION['varsta'] = $_POST['varsta'];
$_SESSION['local itate'] = $_POST['localitate'];

Validarea datelor preluate și introduse se face prin urmă toarea sec vență :
if(($_SESSION['user'] == '') || ($_SESSION['parola1'] == '') || ($_SESSION['parola2'] !=
$_SESSION['parola1']) || ($_SESSION['nume'] == '') || ($_SESSI ON['prenume'] == '') ||
($_SESSION['varsta'] == '') || (!is_numeric($_SESSION['varsta'])) ||
(strlen($_SESSION['varsta']) < 2) || ($_SESSION['localitate'] == ''))
Aici verificăm dacă toate câmpurile au fost completate, dacă cele 2 parole corespund
sau dacă vârsta introdusă este î n format numeric .

BAZE DE DATE PENTRU VANZARI AUTO

Page
37

Introducerea datelor în baza de date se face prin crearea variabilei $cerereSQL,
în care se definește sintaxa MySql specială pentru introducerea datelor primite prin
formula r, în baza de date. Criptarea p arolei se face prin apelul funcț iei „.md5”, care
oferă o mai bună siguranța a stocă rii datelor personale .
La final apelăm funcț ia „mysql_query” cu parametrul creat mai devreme prin
variabila $cerereSQL, care ne permite să adăugăm în baza de date informaț iile primite
de la utilizator.
$cerereSQL = "INSERT INTO `utilizatori` (`utilizator`, `parola`, `nume`, `prenume`,
`varsta`, `localitate`) VALUES ('".addentities($_SESSION['user'])."',
'".md5($_SESSION['parola1'])."', '".addentities($_SESSION['nume'])."',
'".addentities($_SESSION['prenume'])."', '".addentities($_SESSION['varsta'])."',
'".addentities($_SESSION['localitate'])."')";
mysql_query($cerereSQL);

4.3 Pagină autentificare .php

După crearea contului avem posibilitatea de a ne loga pe site, prin intermedi ul
formularul ui de logare , prezent at în Fig.4.3 , disponibil după crearea contului, sau
aflat în quic k-meniul din dreapta paginii, făcând click pe acesta, și ducâ ndu-ne la
pagina: autentificare.php
În această situație avem două cazuri, dacă utilizatorul s -a logat deja, acesta nu
trebuie să mai treacă prin pasul acesta, fiin d dus direct la pagina personală. Dacă nu
este logat deja, atunci acest a este adus la pagina respectivă . De asemenea se fac și
verifică ri pentru ca atunci câ nd userul fa ce click pe butonul de Login, să aibă
completate cele două caseț e de text.

Fig.4.3

Aceasta se face prin sintaxa php :
if(($_POST['user'] == '') || ($_POST['parola'] == ' ')), după care afișăm mesajul
corespunzător erorii prin sintaxa urmă toare :

BAZE DE DATE PENTRU VANZARI AUTO

Page
38
echo 'Completeaza casutele. <br>
Apasat i <a href="autenti ficare.php">aici</a> pentru a va i ntoarce la pagina
precedenta.';
Ca acț iune a formularului am setat înregistrare.php?actiune=validare
Completa rea datelor ș i trimiterea lor că tre baza de date se fa ce cu ajutorul
metodei $_POST, și folosirea funcț iei .htmlentities. Aceasta este folosita pentru
evitarea SQL Inje ction, prin care utilizatorii ră u voit ori pot folosi acest procedeu
pentru a introduce vulnerabilitaț i in baza de date profitînd apoi și dezvoltâ nd un atac
informatic .
Mai depa rte, pentru a introduce informațiile î n baza de date, definim o variabilă
– $cerereSQL î n care introducem sintaxa corespunzatoare pentru adăugare informații
în baza de date.
$cerereSQL = "SELECT * FROM `utilizatori` WHERE
utilizator='".htmlentities($_POST['user'])."' AND parola='".md5($_POST['parola'])."'";
Parola, deasemenea este criptata și ea în md5.

4.4 Pagina profil.php

Dacă datele se află î n baza de date, a tunci utilizatorul este redirecționat către
pagina personala, ș i anume Profil.php , acesta avâ nd deja un cont.
Verificar ea se face prin urmă toarea funcț ie:
if(mysql_num_rows($rezultat) == 1)
Urmă toarele linii de cod reali zează redirecționarea userului către pagina
personală prin folosirea sintaxei html: META HTTP -EQUIV=Refresh
while($rand = mysql_fetch_array($rezultat))
{
$_SESSION['logat'] = 'Da';
echo '<META HTTP -EQUIV=Refresh CONTENT="0; URL=profil.php">'; }
După ce intrăm în pagina personală: profil.php, avem mai multe opț iuni, cum
ar fi schimbarea datelor personale, s chimbarea parolei personale, adăugare anunț nou
sau deconectare. De asemen ea, dacă userul nu este logat, nu are voie sa acceseze
această pagină.
Verificarea se face prin urmă toarele linii de cod php:
if(!isset($_GET['actiune'])) $_GET['actiune'] = '';

BAZE DE DATE PENTRU VANZARI AUTO

Page
39

if(!isset($_SESSION['logat'])) $_SESSION['logat'] = 'Nu';
if($_SESSION['logat'] != 'Da')
{
echo 'Pentru a accesa aceasta pagina, trebuie sa va autentificati. <br>
Pentru a va autentifica, apasati <a href="autentificare.php">aici</a><br>
Pentru a va inregistra, apasati <a href="inregistrare.php">aici</a>'; }
Dacă pe ramura de mai sus nu se intră, dacă userul este logat, atunci trecem altă
ramura , în care sunt afișate opțiunile disponibile pe profil , prezentate in Fig.4.4 a .

Fig.4.4 a

Pentru p rimele 3 opț iuni de pe profil: schimbarea parolei , schimbarea datelor
personale ș i logout, accesarea ac estora se face prin apelarea acț iunilor formularului
respectiv. P entru fiecare dintre ele avem câ te un case.
Pentru schimbarea datelor personale ilustrat ă in Fig.4.4 b , avem: case 'date_personale'
– în care se pot face modificări î n baza de date pri n apelarea sintaxelor
corespunză toare :
$cerereSQL = 'SELECT * FROM `utilizatori` WHERE
utilizator="'.$_SESSION['user'].'"';
Aici creăm variabila în care stocăm apelul că tre baza de date, de un de selectă m tabela
utilizatori, apoi selectă m userul logat și facem modificări în intră rile respective .

BAZE DE DATE PENTRU VANZARI AUTO

Page
40

Fig.4.4 b
$rezultat = mysql_query($cerereSQL);
while($rand = mysql_fetch_array($rezultat)) {
Aici scriem codul html pentru formularul de schimbare a datelor pers onale.
Acest formular are ca acțiune un alt case, și anume validare, în care facem verifică rile
ca datele introduse de utilizator să fie cele corecte.
O altă facilitate care este oferită utilizatorului este salvarea datelor cu care
acesta este logat, pentru schimbarea acestora mai uș or. Acestea sunt salvate cu
ajutorul variabilei de sesi une $_SESSION, care ne stochează datele temporar.
Următorul case care intervine î n continuare este cel pentru schimbarea parolei ,
prezentat î n Fig.4.4 c . Acest formular are ca acțiune același case ca și cel dinainte, în
care este verificat dacă parola întrodusă este a ceeași î n ambele locuri.

Fig.4.4 c

Pentru case -ul de log -out apelă m două funcț ii predefinite php:
case 'logout':
session_destroy();
session_unset();

BAZE DE DATE PENTRU VANZARI AUTO

Page
41
break;
Aici dis trugem sesiunea creată anterior și o dezinițializă m.
În case -ul de vali dare se fac diferite verifică ri prezentate mai jos .
Inițial verifică parola, dacă este setată o parolă anume rămasă , câmpul se setează ca
fiind gol . Dacă se fac modificări, se trimit că tre baza de date cu ajutorul m etodei
$_POST. La fel se procedează cu restul datelor personale.

if(!isset($_POST['parola1 '])) $_SESSION['parola1'] = '';
else $_SESSION['parola1'] = $_POST['parola1'];
if(!isset($_POST['parola2'])) $_SESSION['parola2'] = '';
else $_SESSION['parola2'] = $_POST['parola2'];
if(!isset($_POST['nume'])) $_SESSION['nume'] = '';
else $_SESSION['nume'] = $_POST['nume'];
if(!isset($_POST['prenume'])) $_SESSION['prenume'] = '';
else $_SESSION['prenume'] = $_POST['prenume'];
if(!isset($_POST['varsta'])) $_SESSION['varsta'] = '';
else $_SESSION['varsta'] = $_POST['varsta'];
if(!isset($_POST['localitate'])) $_SESSION['localitate'] = '';
else $_SESSION['localitate'] = $_POST['localitate'];

În continuare, se verifică dacă datele introduse sunt corecte, să nu fie lăsate
câmpuril e goale, iar in câmpul de vârstă să fie introduse doar numere întregi, nu ș i
litere . Codul php care face aceste lucruri este prezentat mai jos :
if(($_POST['Trimite'] == 'Modifica date') && ($_SESSION['nume'] == '' ||
$_SESSION['prenume'] == '' || $_SESSION['varsta'] == '' ||
!is_numeric($_SESSION['varsta']) || strlen($_SESSION['varsta'] < 2) ||
$_SESSION['localitate'] == ''))
Dacă nu sunt introduse corect, se va afiș a mesajul de eroare cu ajutorul metodei
„echo” :
echo 'Completeaza campurile.<br>
Apasa <a href="profil.php?actiune=date_personale">aici</a> pentru a te intoarce.';

BAZE DE DATE PENTRU VANZARI AUTO

Page
42
Dacă datele sunt introduse corect, atunci vor fi trimise către procesare prin metoda
$_POST că tre baza de date :
elseif(($_POST['Trimite'] == 'Modifica date') && ($_SESSION['nume'] != '' ||
$_SESSION['prenume'] != '' || $_SESSION['varsta'] != '' ||
is_numeric($_SESS ION['varsta']) || strlen($_SESSION['varsta'] >= 2) ||
$_SESSION['localitate'] != ''))
Pentru modificarea acestora î n baza de date folosim s intaxa UPDATE care ne
permite să aducem modifică ri asupra datelor deja existente î n tabele.
Creăm din nou o variab ilă care ne permite să accesă m metoda mysql_query mai
ușor. Adăugarea acestora î n baza de da te se face tot cu ajutorul funcț iei defi nită în
fișierul config.php, și apelată la fiecare adăugare î n tabelele din baza de date pentru
evitarea intr oducerii de que ry-uri nedorite în baza de date. Codul aferent este prezentat
mai jos:
$cerereSQL = "UPDATE `utilizatori` SET nume='".addentities($_SESSION['nume'])."',
prenume='".addentities($_SESSION['prenume'])."',
varsta='".addentities($_SESSION['varsta'])."',
localitate='".addentities($_SESSION['localitate'])."' WHERE
utilizator='".$_SESSION['user']."'";
mysql_query($cerereSQL);

La final reini țializăm câ mpurile modificate ca fiind goale , după cum se poate observa
în secvenț a de cod php:
$_SESSION['nume'] = '' ;
$_SESSION['prenume'] = '';
$_SESSION['varsta'] = '';
$_SESSION['localitate'] = '';

Pentru modificarea parolei procedă m la fel, facem verificări ca acestea să
corespundă, și la final , dacă toate condițiile au fost îndeplinite, efectuăm modificările
asupra intră rilor di n baza de date. De asemenea, ca și î n cazurile precedente câ nd a
fost introdusă î n baz a de date , parola a fost criptată prin metoda de criptare md5.
$cerereSQL = "UPDATE `utilizatori` SET parola='".md5($_SESSION['parola1'])."'
WHERE utilizator='".$_SESSION['user']."'";
mysql_query($cerereSQL);
La final reinițializăm câ mpurile de parolă ca fiind goale:
$_SESSION['parola1'] = '';

BAZE DE DATE PENTRU VANZARI AUTO

Page
43

$_SESSION['parola2'] = '';

4.5 Pagina de contact .php

O altă facilit ate pe care am pus -o la dispoziț ie utilizatorilor acestui site este pagina de
contact (Fig.4.5 ) . În această pagină doritorii pot lăsa un mesaj sau contacta
dețină torul site -ului. Toate aceste mesaje r ămân stocate î n baza de date.

Fig.4.5

Formularul este c reat folosind strict cod html , având ca acțiune un fișier aditiona l, și
anume trimite.php
<form action="trimite.php" method="post"><table><tr>
<td>E -Mail:<br> <input type="text" name="mail" value=""> <br></td></tr>
<tr><td>Nume:<br> <input type="text" name="nume" value=""> <br></td></tr>
<tr><td>Prenume:<br> <input type="text" name="prenume" value=""> <br></td></tr>
<tr><td>Subiect:<br> <input type="text" name="subiect" value=""> <br></td></tr>
<tr><td>Mesaj:<br> <textarea name="mesaj" cols="60" rows="3"></textarea>
</td></tr>

BAZE DE DATE PENTRU VANZARI AUTO

Page
44
Este organizat sub formă de tabel pent ru o mai bună aranjare în pagină a acestuia.
În fiș ierul trimite.php se face conectarea la baza de date prin includerea
fișierului config.php, în care se află detaliile de conectare la site, cu ajutorul:
require_once('config.php');
$_SESSION['nume'] = $_POST['nume'];
$_SESSION['prenume'] = $_POST['prenume'];
$_SESSION['mail'] = $_POST['mail'];
$_SESSION['subiect'] = $_POST['subiect'];
$_SESSION['mesaj'] = $_POST['mesaj'];
Mai departe în acest fișier creă m o sesiune pentru salvarea datelor introduse de
utilizator cu ajutorul meto delor $_SESSION si $_POST. Tot în acest fisier se face ș i
verificar ea ca datele să fie introduse complet ș i corect.
if(($_POST['mail'] == '') || ($_POST['nume'] == '') || (is_numeric($_POST['nume'])) ||
($_POST['prenume'] == '') || (is_numeric($_POST['prenume'])) || ($_POST['subiect'] ==
'') || ($_POST['mesaj'] == ''))
{
echo 'Completati campurile corect <br>
Apasati <a href="formularContact.html">aici</a> pentru a va intoarce la pagina
principala.';
}
Dacă în câmpul de num e și prenume a u fost introduse cifre, sau dacă nu a fost
introdus nimic, utilizatorul este anu nțat de acest lucru și este informat să mai
introducă încă o dată datele necesare.
Dacă datele au fost introduse c orect, acestea sunt prelucrate și trimise către
baza de date. Din nou, creăm o variabilă $cerereSQL în care scriem sintaxa necesară
pentru ad ăugarea intrărilor în baza de date, după care o transmitem ca parametru
funcț iei mysql_query.
else {
echo '<a href="/site/index.html">Message Sent. Click To Exit< /a>';
$cerereSQL = "INSERT INTO `contact` (`nume`, `prenume`, `mail`, `subiect`, `continut`)
VALUES ('".$_SESSION['nume']."', '".$_SESSION['prenume']."', '".$_SESSION['mail']."',
'".$_SESSION['subiect']."', '".$_SESSION['mesaj']."');";
mysql_query($cerereS QL); }

BAZE DE DATE PENTRU VANZARI AUTO

Page
45
După ce mesajul este trimi s cu succes, utilizatorul primește un mesaj cum că datele
au fost trimise.
Conectarea la baza de date prin fiș ierul config.php .Pentru a putea accesa, adă uga
sau modifica baza de date și informațiile aflate î n baza de date, trebuie ca în fiecare
pagină care se folosește de baza de date să folosim detaliile de logare la aceasta.
Pentru a păstra designul și codul câ t mai simplu, am creat un fisier config.php în care
se află toate detaliile de conectare la baza de date.
session_start();
set_time_limit(0);
error_reporting(E_ALL);
În acest fișier ne creăm o sesiune, o lă săm deschisă și activă m raportul de erori
pentu diferite mesaje de eroare .
Mai departe avem detaliile de conectare la baza de date, pe care le stocăm în
variabile ș i le trimitem ca parametrii funcț iei mysql_connect. Aceasta primește 3
parametri, ș i anume : adresa bazei de date, userul bazei de date ș i parola.
$AdresaBazaDate = "localhost";
$UtilizatorBazaDate = "root";
$ParolaBazaDate = "";
$NumeBazaDate = "si te";
$conexiune = mysql_connect($AdresaBazaDate,$UtilizatorBazaDate,$ParolaBazaDate)
or die("Nu ma pot conecta la MySQL!");
Mai departe selectăm baza de date asupra căreia efectuăm operaț iile.
mysql_select_db($NumeBazaDate,$conexiune) or die("Nu gasesc baza de date!");
Dacă baza de date nu este găsită, afișă m o eroare.
Tot în fiș ierul config.php avem impleme ntată și funcț ia addentities, prezentată mai
jos, care oferă protecție împotriva SQL injection, î mpotriva codurilor html introduse în
formular dar ș i a caracterelor speciale PHP.

function addentities($data){
if(trim($data) != ''){
$data = htmlentities($data, ENT_QUOTES);
return str_replace(' \\', '&#92;', $data);
} else return $data; }

BAZE DE DATE PENTRU VANZARI AUTO

Page
46
4.6 Pagina adăugare anunț .php

Fig.4.6
Această pagină este dedicată adăugării anunț urilor. Desig nul formularului este
realizat în html, având ca acțiune fiș ierul anunt1.php și este pre zentat in Fig.4.6.
În această pagină, utilizatorul înregistrat își poate adăuga anunțul, selectând
datele tehnice ale maș inii cu ajutorul diferitelor butoane și checkboxuri puse la
dispoziție, dar și completând spațiile corespunzătoare. Toate anunț urile care s unt

BAZE DE DATE PENTRU VANZARI AUTO

Page
47
adăugate î n această pagină se trimit către baza de date și sunt stocate î n baza de date
‚anunt‟
Codul corespunzător acestui formular este urmă torul:
echo '<br><br><br><form name="anunt" action="anunt1.php" method="post">
<li>Marca:
Se crează câ mpurile în care se scrie marca mașinii, anul fabricaț iei:
echo '<br><br ><br><form name="anunt" action="anunt1.php" method="post">
<li>Marca:
<input type="text" name="marca1" value="" size=40>
<input type="text" name="marca2" value="" size=20></li><br>
<li>An Fabricatie:
<input type="text" name="an_fab" value="" size=40>< /li><br>
<li>Culoare:
<input type="text" name="culoare" size 40>
<li>Pret:
<input type="text" name="pret" value="" size=10>
<select name="pret1">
<option value="EUR">EUR</option>
<option value="RON">RON</option>
<option value="USD">USD</option>
</select>
</li>

<li>Detalii Tehnice:<br>
Abs:
<input type="radio" name="abs" value="Da"> Da
<input type="radio" name="abs" value="Nu"> Nu<br>
Esp:
<input type="radio" name="esp" value="Da"> Da
<input type="radio" name="esp" value="Nu"> Nu<br>
Geamu ri Electrice:
<input type="radio" name="geamuri1" value="Da"> Da
<input type="radio" name="geamuri1" value="Nu"> Nu<br>
Oglinzi Incalzite:
<input type="radio" name="oglinzi" value="Da"> Da
<input type="radio" name="oglinzi" value="Nu"> Nu<br>
Trapa:
<input type="radio" name="trapa" value="Da"> Da
<input type="radio" name="trapa" value="Nu"> Nu<br>
Pilot Automat:
<input type="radio" name="pilot" value="Da"> Da
<input type="radio" name="pilot" value="Nu"> Nu<br>
Senzori Parcare:
<input type="radi o" name="senzori" value="Da"> Da
<input type="radio" name="senzori" value="Nu"> Nu<br>
Alarma:

BAZE DE DATE PENTRU VANZARI AUTO

Page
48
<input type="radio" name="alarma" value="Da"> Da
<input type="radio" name="alarma" value="Nu"> Nu<br>
Tapiserie Piele:
<input type="radio" name="tapiserie" value="Da"> Da
<input type="radio" name="tapiserie" value="Nu"> Nu<br>

<input type="radio" name="cutie" value ="Cutie Manuala">Cutie Manuala<br>
<input type="radio" name="cutie" value ="Cutie Automata">Cutie Automata<br><br>
<li> Stare:
<select name ="stare" value="">
<option value="Inmatriculata">inmatriculata</option>
<option value="Neinmatriculata">neinmatriculata</option>
</select></li>

<li>Viteze: <select name="viteze" value="">
<option value="5">5 viteze</option>
<option value="6">6 vitez e</option>
<option value="7">7 viteze</option>
</select>
</li>
<li>

Numar Usi: <select name="usi" value="">
<option value="2/3">2/3</option>
<option value="4/5">4/5</option>
</select>
</li>
<li> Datele Vanzatorului:<br></li>
Nume: <input type="text" name="nume" value="" size=20>
Prenume: <input type="text" name="prenume" value="" size=20> <br>
Oras: <input type="text" name="oras" value="" size=20> <br>
Numar Telefon 1: <input type="text" name="telefon1" va lue="" size=11><br>
Numar Telefon 2: <input type="text" name="telefon2" value="" size=11><br>
Adresa Email: <input type="mail" name="mail" value="" size="30"<br>

<input type="submit" name="trimitere" value="Trimite Anunt">

</form>';
}
4.7 Pagina anunț uri.php

În această pagină se face afisarea tuturor anunț urilor ce au fost adaugate in
baza noastră de date (Fig.4.7) .
Pentru afisare ne creăm o variabilă $cerereSQL î n care stocam sintaxa MySql necesară
pentru a selecta informaț iile dori te din baza de date. După ce o initializăm, o dă m mai
departe ca parametru unei alte variabi le in care stocam rezultatul obț inut si facem
afisarea tuturor anunț urilor aflate in baza de date .

BAZE DE DATE PENTRU VANZARI AUTO

Page
49
$cerereSQL = 'SELECT * FROM `anunt`';
$rezultat = mysql_query($cerereSQL);
while($rand = mysql_fetch_array($rezultat)){
echo '<b><font color="red">'.$rand['marca1'].' '.$rand['marca2'].', an fabricatie
'.$rand['an_fab'].'</b></font><br>
<b>Culoare:</b> '.$rand['culoare'].'<br>
pret '.$rand['pret'].' '.$rand['pret1'].'<br>
Abs – '.$rand['abs'].', Esp – '.$rand['esp'].', Geamuri Electrice –
'.$rand['geamuri1'].', Oglinzi Electrice – '.$rand['oglinzi'].', Trapa – '.$rand['trapa'].', Pilot
automat – '.$rand['pilot'].', senzori – '.$ran d['senzori'].', alarma – '.$rand['alarma'].',
tapiserie piele – '.$rand['tapiserie'].', '.$rand['cutie'].'<br>
'.$rand['stare'].', '.$rand['viteze'].' viteze, '.$rand['usi'].' usi<br>
<b>Detalii Contact:</b><br>
<b>Nume</b> – '.$rand['nume'].'<br>
<b>P renume</b> – '.$rand['prenume'].'<br>
<b>Oras </b> – '.$rand['oras'].'<br>
<b>Telefon 1</b> – '.$rand['telefon1'].'<br><b>Telefon2 </b> – '.$rand['telefon2'].'<br>
<b>E -mail </b> – '.$rand['mail'].'<br>

BAZE DE DATE PENTRU VANZARI AUTO

Page
50

______________________________________________________< br><br> ';

Fig.4.7
4.8 Pagin a resurse.php

Această pagină este destinată special pentru resurse din același domeniu cu
aplicația de față, mai exact aici sunt afiș ate primele 10 site -uri de profil din Romania
(Fig.4.8 ).

BAZE DE DATE PENTRU VANZARI AUTO

Page
51

Fig.4.8

4.9 Baza de date

Baza de date conț ine 4 tabele.
Tabela anunț conține campurile referitoare la caracteristic ile autovehiculului și datele
persoanei care lasă anuntul (Fig.4.9.1):

BAZE DE DATE PENTRU VANZARI AUTO

Page
52

Fig.4.9.1
Tabela co ntact conține campuri necesare pentru a adresa un mesaj împreună cu
datele celui care îl lasa, a dresat admin istratorului site -ului (Fig.4.9.2):

Fig.4.9.2
Tabela shoutbox destinată datelor introduse în shoutbox (Fig.4.9.3):

BAZE DE DATE PENTRU VANZARI AUTO

Page
53

Fig.4.9.3
Tabela utilizatori , aici se gasesc utilizatorii înregistrați pe site (Fig.4.9.4):

Fig.4.9.4

BAZE DE DATE PENTRU VANZARI AUTO

Page
54
Cap.5 Manual de utilizare

Aplicația de faț a dispun e de 8 pagini cu navigare simplă si rapidă .Navigarea se
face intuitiv deoarece avem butoane ș i text reprezentativ. Ca cerințe de sistem nu
trebuie decât ca pe calculatorul gazdă să existe si sa poată rula un browser web,
bineințeles este nevoie și de conez iune la internet.
Prima pagină din site este pagina index de unde se poa te face foarte usor
navigarea că tre celelalte pagini (Fig.5.1). Pe această pagin ă se poate căuta un anunț
după marca, sau se poate lă sa un mesaj in shoutbox , cu precizarea că shoutbox -ul
este disponibil pe fiecare pagină in partea dreaptă .

Fig.5.1

Dacă vizitatorul nu are un cont creat poate accesa pagina înregistrare, la fel ca si până
acum doar cu câ teva click -uri.Aici se completează formularul de î nregistrare după
care se face click pe trimite.(Fig.5.2).

BAZE DE DATE PENTRU VANZARI AUTO

Page
55

Fig.5.2

Dacă persoana care accesează site-ul are deja un cont creat aceasta poate merge spre
pagina de a utentificare unde cu ajutorul username -ului ș i parolei personale se poate
loga ș i poate avea acces la propriul profil (Fig.5.3).

BAZE DE DATE PENTRU VANZARI AUTO

Page
56

Fig.5.3

Pagina de profil este pagina pe care utilizatorul este redirecțio nat im ediat după
ce acesta face login (Fig.5.4). Aici foarte intuitiv cu câ teva click -uri se poate modifica
parola , datele personale sau se poate adăuga un anunț .

BAZE DE DATE PENTRU VANZARI AUTO

Page
57

Fig.5.4

Pagina de contact se poate accesa la la fel ca celelalte pagini de mai sus, la fel
de uș or, aici se poate lă sa un mesaj sau o sugestie administratorului (Fig.5.5).

BAZE DE DATE PENTRU VANZARI AUTO

Page
58

Fig.5.5

Pagina anunțuri poate fi accesată cu un singur click pe li nk-ul anunț uri, aici pot fi
vizualizate anunț urile (Fig.5.6)

BAZE DE DATE PENTRU VANZARI AUTO

Page
59

Fig.5.6
Pagina adăugare anunț se poate accesa din pagina de profil, aici putâ ndu-se completa
un formular cu câmpurile necesare anunț ului (Fig.5.7).

Fig.5.7

BAZE DE DATE PENTRU VANZARI AUTO

Page
60
Pagina resurse poate fi accesată de pe orice pa gina cu un singur click, aici
găsindu -se resurse din acelaș i dome niu cu aplicația noastră ș i anume primele 10 site –
uri de profil d in Romania (F ig.5.8).

Fig.5.8

BAZE DE DATE PENTRU VANZARI AUTO

Page
61
Cap.6 Concluzii

6.1 Avantaje

Folosind sistemul Baze de Date pentru Vanzari A uto pentru a face public un
anun ț beneficiem de o s erie de avantaje față de alte metode de vânzare sau reclamă
pentru vâ nzare.
Cel mai important aspect este aspectul economic deoarece prin acest sistem se reduc
costurile și timpul pierdut pe la cozi sau prin tâ rguri auto.
Alt avantaj este accesul potenț ialilor clienți din alte județe, orașe sau țari, la anunț ul
postat online.
Actualizarea rapidă a anunțurilor reprezintă un factor importa nt, deoarece se doresc
informaț ii cât mai exacte, adică in sensul că, dacă un vehicul nu mai este disponibil
spre vâ nzare, proprietarul poate să șteargă anunț ul rapid și modificarea î n sistem se
face ins tant spre deosebire de un anunț dintr-o revista care este valabil pâ na apare alt
numar.
Foarte important este și faptul că sistemul dispune de o portabilitate mare, acesta
putând fi folosit pe orice computer cu un browser instalat si sub orice sistem de
operare.

6.2 Dezavantaje

Printre dificultăț ile la imple mentare, ce pot fi considerate ș i limite ale noului sistem
se numara :
– promovarea sistemului este una dintre cele mai importante impedimente ;
-convingerea u tilizatorilor că sistemul online este o alegere mai bună față de metodele
clasice;

BAZE DE DATE PENTRU VANZARI AUTO

Page
62
Cap.7 Bibliografie

[1]- http://www.trafic.ro/
[2]- http://stud.usv.ro/~lfodor/files/26 -06-06%2010 -52-53%20CAPITOLUL%20I.doc
[3]- http://www.scribd.com/doc/5 0638526/Baze -de-Date
[4], [5] , [12], [13] – http://civile.utcb.ro/cmat/cursrt/bd2.pdf
[6], [7], [8] -Curs Bazele Informaticii si Limbaje de Programare, Romică TRANDAFIR
Mihai Ștefan NISTORESCU,Bucuresti 2006
[9], [10], [11] -Thomas Strachan:”BAZE de DATE” -„Proiectare,Implementare,
Gestionare”, Ed. Teora, 2001
[14]- http://ro.wikipedia.org/wiki/HyperText_Markup_Language
[15]- http://ro.wikipedia.org/wiki/MySQL
[16]- http://en.wikipedia.org/wiki/Apache_HTT P_Server
[17]- http://en.wikipedia.org/wiki/Cascading_Style_Sheets
[18]- http://en.wikipedia.org/wiki/JavaScript

Similar Posts