FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT IOAN SLAVICI [612784]

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI”
TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI

-2015 –

ADMINISTRAREA UTILIZATORILOR
DE REȚEA
DINTR -UN CĂMIN STUDENȚESC CU
AJUTORUL UNEI APLICAȚII WEB

Coordonator științific:
Prof. Univ. Dr. Ing. Titus Slavici
Absolvent: [anonimizat]

4
Cuprins
Capitolul 1. Introducere ………………………….. ………………………….. ………………………….. ………………….. 5
1.1. Mediul WEB ………………………….. ………………………….. ………………………….. …………………. 5
1.2. Enunțul temei ………………………….. ………………………….. ………………………….. ……………….. 6
Capitolul 2. Cerinte de baz ă ………………………….. ………………………….. ………………………….. ……………… 7
2.1. MAC -ul fiecărui utilizator ………………………….. ………………………….. ………………………….. .. 7
2.2. IP-ul fiecărui utilizator ………………………….. ………………………….. ………………………….. ….. 10
2.3. Tipurile rețelelor de calculatoare ………………………….. ………………………….. ………………. 12
Capitolul 3. Aprofundarea teoretică ………………………….. ………………………….. ………………………….. .. 15
3.1. Sistemele de administrare ale bazelor de date ………………………….. …………………………. 15
3.2. Proiectarea bazei de date ………………………….. ………………………….. ………………………….. 16
3.3. Limbajul MySQL ………………………….. ………………………….. ………………………….. ………….. 20
3.4. Limbajul PHP ………………………….. ………………………….. ………………………….. ……………….. 22
3.5. Limbajul JavaScript ………………………….. ………………………….. ………………………….. ………. 23
3.6. Serverul web Apache ………………………….. ………………………….. ………………………….. ……. 24
3.7. Noțiuni de baz ă despre HTML si CSS ………………………….. ………………………….. …………… 25
3.8. Dezvoltarea în mediul Dreamweaver ………………………….. ………………………….. …………. 27
Capitolul 4. Proiectarea de detaliu a aplica ției………………………….. ………………………….. ………………. 29
4.1. Arhitectura programului ………………………….. ………………………….. ………………………….. . 29
4.2. Descrierea componentelor ………………………….. ………………………….. ………………………… 30
4.3. Funcția JavaScript ………………………….. ………………………….. ………………………….. ………… 42
4.4. Strucurile bazelor de date și a tabelelor ………………………….. ………………………….. ……… 44
Capitolul 5. Uilizarea aplic ației. ………………………….. ………………………….. ………………………….. ………. 49
5.1. Interfa ța utilizatorului………………………………………………………………………. ……………. …44
Capitolul 6. Concluzii ………………………….. ………………………….. ………………………….. …………………….. 55
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. …………. 56

5

Capitolul 1
Introducere
1.1. Mediul WEB
Internetul reprezint ă o rețea format ă din calculatoare conecta te între ele prin protocolul IP –
Internet protocol. Avem c âteva tipuri de protocoale fundamentale care asigur ă operabilitatea între
calculatoare , ele sunt IP (Internet Protocol) , TCP (Transmission Control Protocol) , UDP (User Data
Protocol) .
În mediul WEB se folosesc numeroase aplica ții pentru afi șarea de informa ții statice de tip text ,
imagini sau audio (ex. pagina web) , pentru transmiterea de informa ție , pentru email , telefonie cu
imagine prin internet , chat , video , televiziune , pent ru orice tip de muzic ă , pentru controlul unor
dispozitive de la distan ță , pentru tranzac ții bancare , pentru r ăspândirea știrilor și în multe alte
domeni.
Cel mai de succes și cel mai important serviciu al internetului de p ână acum este World W ide
Web sau pe scurt WWW . Acest serviciu care de fapt este o aplica ție multimedia și interactiv ă , cu o
interfa ță de tip GUI (Graphic User Interface) și o grafic ă foarte u șor de folosit și foarte prietenoas ă.
Aceast ă aplica ție World Wide Web este un imens sistem de pagini care se g ăsesc pe mai multe
servere ce sunt conectate între ele prin link -uri , ele contin ând text, fi șiere video, postscript -uri ,
sunete flash -uri și alte formate.Accesarea sau folosirea acestor informa ții se face printr -un pro gram
care poart ă numele de browser, el permi țând utilizatorilor din toat ă lumea s ă foloseasc ă documente
care aproape tot timpul sufer ă modific ări de con ținut. În acest ă aplica ție se face o distiț ie clar ă între
partea de client a aplica ției și partea de se rver a acesteia. În general un server WWW gestioneaz ă
cerin țele clien ților în materie de documente , el trimit ând documentele cerute de c ătre client. Clientul
are posibilitatea s ă solicite documnete ce se afl ă pe un server Web, acest ă la randul lui le afise ază pe

6
monitorul calculatorului intr -un anumit format. Comunicarea dintre client și server , adic ă protocolul
care realizeaz ă acest ă comunica ție se nume ște HyperText Transfer Protocol. Toate ac țiunile care se
desfășoară în cadrul acestui protocol se fac di ntr-o cerere f ăcută de către client în formatul ASCII și
un r ăspuns dat de server , în care se aplic ă conven țile MIME (Mu ltipurpose Internet Mail
Extensions).

1.2. Enun țul temei
"Rețele de calculatoare și internet" este o tem ă care poate fi dezvoltat ă în orice organiza ție, at ât
într-o companie de succes c ât și într-o întreprindere nou ă pe pia ța economic ă. În cazul de fa ță sarcina
mea este s ă dezvolt o re țea de calculatoare și internet într-un cămin studen țesc ,pe viitor poate chiar
într-un campus întreg.
Acest ă aplica ție gestioneaz ă o bază de date creat ă de administratori și folosirea acesteia de
către mai mul ți utilizatori . Fiecare administrator are acces doar la baza de date a utilizatorilor s ăi, el
nu poate s ă stearg ă sau s ă introduc ă un nou utilizator în baza de date a altui administrator. Dupa ce
administratorul de re țea se autentific ă pentru baza lui de date , poate s ă modifici , s ă adauge sau s ă
ștrearg ă utilizatorii s ăi. Prin aceast ă aplica ție se urm ărește ca admi nistratori de c ămine studen țești să
aibe o baz ă de date a fiecarui student ce locuie ște in c ăminul lui , o mai bun ă organizare , eviden ță și
nu în ultimul r ând un control asupra fiec ărui student.

7

Capitol ul 2
Cerin țe de baz ă
Pentru comple tarea datelor despre utilizatori de c ătre administrator ,este necesar un studiu
referitor la anumite reguli de completare și adăugare a unui utilizator nou ân rețea.
2.1. MAC -ul fiec ărui utilizator [7 ,13]
MAC -ul(Media Access Con trol) este un num ăr întreg de 6 octe ți sub forma unei adrese, pe care
îl are orice calculator care se afl ă legat într-o rețea de tip Token -ring sau Ethernet , el folosind la
identificarea lui într-o rețea local ă. Pentru început s -a dorit ca aceste MAC -uri să fie unice , ele find
date diferi ților produc ători de re țele , apoi sa trecut la MAC -uri configurabile adic ă ele pot fi
modificate .
Adresele MAC sunt de dou ă feluri :
– adrese administrate universal
– adrese administrate local
Adresa a dministrat ă universal este dat ă în mod unic de produc ătorul pl ăcii de re țea și ea este
salvat ă în memoria acesteia , neput ând fi modificat ă sau ștears ă.
Adresa administrat ă local este dat ă de către administratorul re țelei pl ăcii de re țea , el
modificănd valoarea memorat ă initial. Cele dou ă tipuri de administrare a unei adrese sunt diferite
între ele prin valoarea bitului U/L (Universal?Local).
– " 0 " adresa administrata global
– " 1 " adresa administrata local

8

Figura 2.1.1. Structura unei adrese MAC

In momentul fabrica ției memoriei ROM(Read -Only memory aceasta find un tip de memo rie al
cărei con ținut nu poate fi schimbat ,el p ăstrnâdu-se chiar și atunci când adaptorul nu este alimentat cu
energie electrică) pe placa de re țea se inscrip ționeaz ă adresa MAC.
Datorit ă faptului c ă furnizori de Internet sunt nevoi ți să-și identifice clien ții unic , sunt
implementate protocoale de securitate care verific ă autenticitatea clien ților pe baza pl ăcilor de re țea
din ca lculatoarele cu care ace știa se conectea ză la Internet și ale c ăror MAC -uri sunt deja înregistrate
în baze le de date ale furnizorului din prima clip ă în care acesta s -a conectat. Exist ă și posibilitatea ca
pe parcursul folosirii calculatorului s ă fim nev oiți să schimb ăm calculatorul sau placa de re țea , iar
atunci automat se si stează conexiunea la Internet p ână în momentul interven ției unui specialist de la
furnizor.

9

În cazul în care folosiți, asemenea majorității covârșitoare a utilizatorilor de Int ernet, sistemul
de operare Windows, indiferent de versiune, va trebui să parcurgeți următorii pași pentru a vedea
adresa MAC a plăcii d -voastră de rețea:
a). folosirea butonului Start -> Run , iar în chenarul ce se va deschide introducem comanda
cmd sau command (versiuni mai vechi de windows) , ca în Fig ura 2.1.2 :

Figura 2.1.2. Fereastra pentru comenzi

b).tot prin folosirea butonului Start – > Run , în acela și chenar tast ăm comanda ipconfig –
all/more , care va genera un ra spuns asem ănător celui din Figura 2.1.3

10

Figura 2.1.3. Fereastra cu informa ți pentru adresa MAC

2.2. IP-ul fiec ărui utilizator . [3]
Dispozitivul care se conecteaz ă sau este introdus într-o rețea folose ște o adres ă IP (Internet
Protocol) , care este de fapt un protocol care asigur ă un serviciu de transmitere a datelor , f ără o
conexiune permanent ă. Indentific ând fiecare interfa ță logic ă a echipamentelor conectate printr -un
numar care poart ă denumire a de "adres ă IP" . Versiunea standard folosit ă în majoritatea cazurilor
este IPv4. Standardul în IPv4 pentru comunicarea în Internet este reprezentat ă pe 32 de biti (ex.
192.168.2.1) Aceste adrese au o lungime de 32 de biti (4 octeti) și fiecare adres ă identific ă o rețea și
o stație de lucru din cadrul acelei re țele.
Adresele sunt împărțite pe 5 clase :

Tabel 2.2.1. Clase de adrese
Clasa Primul octet în
binar Prima
adresă Ultima adresă Observ ații
A 0xxxxxxx 0.0.0.1 127.255.255.255 folosește 8 biți pentru rețea și 24
pentru stația de lucru
B 10xxxxxx 128.0.0.0 191.255.255.255 folosește 16 biți pentru rețea și 16
pentru stație
C 110xxxxx 192.0.0.0 223.255.255.255 folosește 24 biți pentru rețe a și 8
pentru stație

11

D 1110xxxx 224.0.0.0 239.255.255.255 folosită pentru adresarea de tip
multicast
E 11110xxx 240.0.0.0 255.25 5.255.255 utilizată în scopuri experimentale

Adresele re țelelor au toti bi ți de sta ție 0 , ele nu pot fi folosite pentru o singur ă stație. Pe l ângă
acest lucru mai exist ă și adrese de difuzare , care la r ândul lor au bi ți de sta ție 1. La identificarea
staților se folosesc doar adresele de la clasa A p ână la clasa C.
Fiecare bloc de re țea nu trebuie obligatoriu alocat doar unei singure re țele , acest lucru se face
deobicei de c ătre administrator , care va imp ărți un bloc în subre țele , mai exact mai multe routere
pentru uz personal folosesc subre țeua 192.168.0.0 – 192.168.0.255 (192.168.0.0/24) .
Ambele tipuri de re țea IPv4 c ât și IPv6 folosesc subnetarea , care e de fapt împar țirea adresei
IP în adresa de re țea și adresa de sta ție .Prin folosirea m ăști de rețea , calculatorul știe să determine
unde poate împar ții adresa IP . Solu ția de subnetare a ap ărut datorit ă faptului c ă sau epuizat adresele
IP.
Pentru a putea afla adresa IP din linia de comand ă , deschidem Linia de Comanda și apoi
scriem ipconfig , ac estă comand ă va afi șa o list ă a adaptoarelor de re țea din calculatorul vostru și
binen țeles detali despre acesta (Fig ura 2.1.4. ) .

Figura 2.1.4. Fereastra cu informat i pentru adresa IP

Pentru fiecare adaptor de re țea sunt afi șate , în câmpurile al ăturate , at ât adresa IPv4 c ât și
IPv6.

12

Figura 2.1.5. Informaț i adres ă IP
Mai multe informa ți despre parametrii accepta ți de comanda ipconfig puteți să tastați
ipconfig/ ?.
2.3. Tipurile rețelelor de calculatoare . [1]
Deobicei o re țea de calculatoare conecteaz ă între ele un num ăr de mai multe calculatoare cu
scopul de a se putea accesa datele sau programele de pe un claculator prin alt calculator, ele find
conectate la acea și rețea. Binente les c ă se impun și câteva protocoale d e securitate pentru a limita
accesul la anumite informa ți fără acceptul adminitratorului de re țea.
Sunt mai multe metode de a conecta calculatoarele între ele și binenteles înca se dezvolt ă noi
metode , încep ând cu cabluri meta lice , fibr ă optic ă , submarine și termin ând cu leg ături f ără fir prin
unde radio cum ar fi Wireless , WiMAX sau Bluetooth , se mai poate prin infrarosu exemplu IrDA
sau prin intermediul sateli ților de telecomunica ții. Pentru r ețelele de telefonie , telev iziune sau radio
transmiterea informa ților originale sunt mai int âi tranformate în date ca mai apoi s ă poată fi
transmise prin re țelele de Internet sau re țelele de calculatoare, find un mare avantaj fa ță de
transmiterea lor prin re țele analogice.
Modul pri n care elementele unei re țele se conecteaz ă între ele se nume ște topologie .Topologia
determin ă drumul pe care îl face informa ția din punctul X în punctul Y. Principalele tipuri de tipologi
pentru re țelele LAN sunt :
 topologia Bus (înseamnă magistrală) – are o fiabilitate sporită și o viteză mare de transmisie;
 topologia Ring (inel) – permite ca toate stațiile conectate să aibă drepturi și funcțiuni egale;
 topologia Star (stea) – oferă o viteză mare de comunicație, fiind destinată aplicațiilor în timp
real.

13

Topologia unor re țele mai mari este format ă din combinarea celor 3 tipuri de topologii. Tipuri
de topologi sunt prezentate mai jos in figura 2.3.1.

Figura 2.3.1. Tipuri de topologi ale re țelelor de calculatoare .

O alta clasificare a rețelelor de calculatoare se mai poate face și dup ă relațile de func ționare
dintre elementele acelei re țele , ca de exemplu : Active Networking Architecture , Client -Server
Architecture și Peer -to-peer (workgroup) A rchitecture .

14
Un alt tip de clasificare func ționala folose ște termenii : Storage Area Network (SAN) sau
Network Attached Storage (NAS) . SAN este o re țea special facut ă pentru interconect ări eficiente a
dispozitivelor de stocare a datelor , NAS sunt dispo zitive de stocare f ăcute pentru a fi ata șate direct
la rețea și automat sunt disponibile pentru toate calculatoarele din acea re țea.
Dupa tipul de extindere re țelele se mai împart și în rețele de tip : LAN , WAN , MAN și un tip
de re țea mai nou PAN . Re țelele care au în component ă câteva sute de calculatoare legate între ele
direct ,gen cl ădire de birouri sau campus universitar ,sunt considerate re țele relativ mici și poart ă
denumirea de Local Area Network (LAN).Se poate ca acest ă retea LAN s ă fie conecta tă nu prin fir ci
prin unde radio , atunci ea poarta denumirea de WLAN , adica Wireless Local Aria Network.Re țelele
care se întind pe o arie mai mare ,adică pe teritoriul unei t ării sau a unui continent poart ă denumirea
de Wide Aria Network (WAN).In trecut acest tip de re țea și-l permiteau doar companile foarte mari
deoarece era foarte scump de f ăcut și întreținut. In prezent majoritatea conexiunilor de tip WAN
folosesc Internetul , care nu poate fi controlat de utilizator dar este foarte convenabil din pun ct de
vedere financiar. Personal Area Network (PAN) este de fapt o re țea mic ă făcută doar pe c âțiva metri
ce con ecteaz ă dispozitivele dintr -o încăpere.
Mai exist ă un tip de re țea Campus Area Network (CAN) care este de format ă din mai multe
rețele LAN inte rconectate pe o suprafa ță mai mare , cum ar fi un campus universitar ,apr ope ca o
rețea de tip MAN. Normal acest tip de re țea a fost creat ă pentru a unii mai multe departamente dintr –
un campus ,pentru ca studen ți să aibe acces din camerele de c ămin la toa te informa țile necesare de
pe internet și departamentele respective.

15

Capitolul 3
Aprofundarea teoretic ă
3.1. Sistemele de administrare ale bazelor de date .[18]
Baza de date rep rezint ă posibilitatea de a stoca informa ți și date pe un suport extern și de a
avea acces la aceste informa ți foarte rapid. Aceste baze de date sunt salvate în fișiere și ele sunt
mutate cu ajutorul unor sisteme de gestiune a bazelor de date.
Termenul de b ază de date apare în 1967 și reprezintă o colecție de informații corelate despre
subiectul studiat, relațiile logice dintre aceste informații și tehnicile de prelucrare corespunzătoare
(sortare, regăsire, apreciere, ștergere, adăugare, inserare, modificare ). Sistemul de gestiune a bazelor
de date S.G.B.D. reprezintă sistemul de programe care permite construirea bazelor de date,
introducerea de înregistrări în bazele de date și dezvoltarea de aplicații privind bazele de date,
permițând astfel accesul utiliza torului la date printr -un limbaj de nivel înalt, apropiat modului
obișnuit de operare; el reprezintă o interfața între utilizator și sistemul de operare.
Un sistem de gestionare a bazelor de date con ține urm ătoarele :
– limbajul de descriere a datelor (LDD) , acest ă permite descriere a structurii acesteia , a
relatiilor dintre componentele respective , a componentei si a drepturilor de a
accesa baza de date de c ătre utilizator (BD) ;
– limbajul de cereri (LC) ,este locul unde se scriu programele pentru a se rea liza
prelucrarea datelor ;
– limbajul de prelucrare a datelor (LPD) ,acesta permite opera ți de înserare , ștergere,
căutare sau modificare a unui element , din BD și realizarea de statistici.

16
Gestionarul bazei de date are c âteva sarcini principale , e le sunt :
– identific ă informa ția și face o organizare corespunz ătoare a aplica țiilor pentru a
reduce redun danța acesteia ;
– din reducerea redun dantei rezult ă anumite inconsisten țe , care trebuie eliminate
– gestioneaz ă utilizarea simultant ă a bazei de date de c ătre mai mul ți utilizatori
– standardizeaz ă informa ția din baza de date
– asigur ă protocoalele de securitate a BD -ul prin urm ărirea și verificarea utilizatorilor în
momentul în care ace știa acceseaz ă componentele acestuia.
– în cazul în care BD -ul este acessat de m ai mul ți utilizatori simultant asigur ă
sincronizarea informa ției pentru a fi transmis ă pe mai multe sisteme.
Din punctul de vedere a tipului de exploatare a bazei de date , exist ă două feluri de utilizatori,
utilizatori care cer și folosesc informa ția fără a ști programare și utilizatori care sunt programatori
care fac aceste aplica ți, le compileaz ă și le memoreaz ă în fișiere program ,ca mai apoi ele s ă poată fii
lansate și folosite.
La fel sunt și administratorii unei baze de date . Sunt admi nistratori de baza de date , care
stabilesc anumite reguli din punct de vedere al securit ății , modului de memorare a datelor la nivel
fizic , drepturile pe care le au utilizatori , asigur ă intreținerea acesteia și sunt administratori de sistem
care stabilesc bazele de date de pe un sistem, aloc ă spați de memorare și asigur ă drepturi de acces.

3.2. Proiectarea bazei de date [2]
Pentru a avea o baza de date precis ă și actualizat ă, ea trebuie proiectat ă corespunz ător .At ât
timp c ât ea este proiectat ă corespunzato r din toate punctele de vedere , automat ea furnizeaza și date
corecte și esen țiale. Ca urmare a acestei proiect ării corecte baza de date va indeplinii toate cerin țele
noastre și poate fi mai usor de modificat.
Organizarea informa ților se face în tabele , ea poate s ă conțină și un singur tabel.Un tabel este
format dintr -un rând și se nume ște înregistrare și fiecare coloan ă se nume ște câmp. Înregistrarea este
modalitatea de a combina anumite informa ții, iar c âmpul este un element singular de informa ție car e
apare în orice înregistrare.

17
Exist ă anumite principi care ghideaz ă procesul de proiectare al unei baze de date. Unul este
acela ca informa țiile dublur ă au o influen ță negativ ă, ele consum ând spa țile și crește posibilitatea
producerii de erori și inconsis tente. Al doilea este importan ța corectitudinii și caracterul complet al
informa ției. Dac ă aceste principi nu se respect ă automat baza de date con ține informa ți greșite și în
acela și timp orice rapoarte extrase pe baza acelor informa ți devin automat și ele greșite.
Proiectarea acestui proces urmare ște anumi ți pași :
– determinarea scopului bazei de date .
– organizarea și descoperirea informa țiilor necesare .
– adunarea și înregistrarea tututror informa țiilor în baza de date .
– împar țirea informa țiilor în tabele .
– elementele de informa ție se împart în subiecte majore ,iar apoi ele devin tabele .
– transformarea elementelor de informații în coloane: se va decide ce informații se vor
stoca în fiecare tabel. Fiecare element devine un câmp care este afișat sub formă
de coloan ă în tabel .
– se va specifica cheia primar ă pentru fiecare tabel ,ea folose ște la identificarea r ândului
.
– se va face configurarea datelor , asocierea datelor dintru tabel cu alt tabel , ad ăugarea
de noi c âmpuri pentru tabelele existente sau noi create.
– rafinarea proiect ării const ă în analiza acesteia pentru eliminarea erorilor , mai exat se
introduc anumite informa ți pentru a vedea dac ă rezultatul dorit este corect.
– se vor aplica reguli de normalizare a datelor pentru a vedea dac ă tabelele sunt corect
structurate.
Baza de date proiectat ă corect , este a cea baz ă care împarte informa țiile în tabele pe baza
subiectelor , pentru a reduce datele redundante , furnizeaza informa țiile dorite pentru asocierea lor
dupa necesit ăți , asist ă si securizeaza corectitudin ea informa țiilor și sincronizeaza necesit ățile de
procesare a datelor și cele de raportare.
În majoritatea cazurilor baza de date este utilizat ă de mai multe persoane , deci este o baza de
date mai complex ă , deobicei aceaste situa ți se întâlnesc la marile corpora ți și campusuri universitare.
În aceste cazuri trebuie introduse mai multe paragrafe cu cine și de catre cine va putea fi utilizat ă
acest ă baza de date.Acest lucru se va face la început c ând se execut ă proiectul acestei baze. Acest
lucru usureaza concentrarea asupra obiectivelor atunci c ând se vor lua decizi.

18
Prin crearea și proiectarea mental ă a rapoartelor și a listelor postale ,aceste dou ă lucruri ne
ajută la identificarea elementelor de care avem nevoie în baza de date. Pentru început se constru iește
un prototip pentru fiecare raport sau listare de ie șire și se ia în considerare fiecare element necesar
pentru a produce raportul. Înforma țiile trebuie împar țite în cele mai mici p ărți utile. Deobicei pentru
sortarea, c ăutarea sau raportarea unei cel ule în func ție de elementul informational , acel element
trebuie pus într-un camp propriu.
Pentru împar țirea informa țiilor în tabele se vor alege cele mai importante entit ăți sau subiecte.
Tenta ția la prima examinare a listei preliminare de elemente este d e a pune toate elementele intr -un
singur tabel. La priectarea bazei de date se va încerca s ă se înregistreze fiecare informa ție o singur ă
dată. În cazul în care se vor repeta inform țiile în mai multe locuri , automat informa ția se va plasa
într-un tabel se parat.
Dacă am ales subiectul ce este reprezentat de un tabel , atunci coloanele din tabelul respectiv
trebuie s ă stocheze informa ți doar despre acel subiect. Stabilirea coloanelor dintr -un tabel se face
prin deciderea informa ției necesare pentru acel subi ect înregistrat în tabel .Dupa stabilirea setului de
coloane ini țial pentru fiecare tabel în parte putem s ă îmbun ătățim coloanele.Tot aici trebuie specificat
dacă informa țiile din baza de date au caracter intern sau și interna țional. Mai jos o sa prezent ăm
câteva sfaturi pentru o mai bun ă organizare și stabilire a coloanelor din baza de date :
– de cele mai multe ori nu se vor include resultatele unor calcule în tabele.
– stocăm cele mai mici pă rti logice din informa ție , ulterior find greu de g ăsit date
indivi duale dac ă se combin ă mai multe tipuri de informa ții într-un câmp.
Dacă sa facut îmbun ătățirea coloanelor de date din tabele , automat se poate alege cheia
primar ă a fiecarui tabel. Un tabel ar trebuii s ă includ ă cel pu țin o coloan ă care identific ă în mod unic
, fiecare r ând stocat în tabel. Pentru acest lucru se utilizeaz ă un numar unic pentru identificare , se
poate pune o serie sau un ID. Aceste informa ții sunt de fapt cheia primar ă a tabelului.
Existent a unui identificator unic pentru un tabel ne ofera posibilitatea s ă utiliz ăm acel
identificator ca și cheie primar ă , dar numai dac ă valorile din acea coloan ă sunt diferite pentru fiecare
înregistrare.Nu putem utiliza numele unor persoane pentru cheie primar ă,deoarece ele nu sunt unice.
Cheia primar ă tot timpul trebuie s ă aibe o valaore. Dac ă cumva acest ă valoare a coloanei
devine neatribuit ă sau necunoscut ă , ea nu se poate utiliza ca și component ă într-o cheie primar ă.
Cheia primar ă trebuie aleas ă în func ție de imposibilitatea de a schimba valoarea acest eia. Într-o baz ă
de date se poate utiliza cheia primar ă unui tabel și ca referint ă în alt tabel , dar dac ă acest ă cheie
primar ă se modific ă , atunci modificarea se aplic ă oriunde se face referire la ea. Daca acest lucru nu

19
se face atunci reduce sansele de a desincroniza cheia primar ă cu celalalte tabele care fac referin ță la
ea. Deobicei se folose ște ca și cheie un numar arbitrat.
Existen ța unei coloane sau a unui set de coloane care se pot utiliza ca și cheie primar ă , automat
luăm în considerare utilizar ea coloanei care are tipul de date AutoNumerotare .Utiliz ând acest tip de
date AutoNumerotare , programul atribuie o valoare automat. Identificatorul care nu are date și nu
conține informa ții care s ă descrie r ândul care îl reprezinta sunt ideali pentru rol ul de cheie primar ă,
deoarece ace știa nu se modifica.
În unele cazuri, este de preferat să se utilizeze două sau mai multe câmpuri care împreună
asigură cheia primară a unui tabel. Când o cheie primară utilizează mai mult de o coloană, aceasta se
mai numeș te și cheie compusă.
Impărțirea informa țiilor în tabel , este precedat ă de asocierea util ă a informa țiilor. În orice
baza de date rela ționala, informa țiile se împart în tabele separate , bazate pe subiecte.
În momentul în care am creat tabelele , c âmpurile și rela țiile necesare , trebuie s ă cream și să
umplem tabelele cu date e șantion și să încerc ăm să lucrăm cu informa țiile prin creare, ad ăugare de
înregistr ări , modificare. Încerc ând să lucrăm cu aceste informa ții , v -or ie și în eviden ța problemele
de gen ul înserări un ui tabel nou sau de separarea altor doua pentru evitarea duplific ării. Dupa toate
acetea se verifica daca se poate utiliza baza de date pentru a ob ține r ăspunsurile cerute. Vom c ăuta
dubluri inutile de date și în cazul în care g ăsim dubluri s chimb ăm proiectarea pentru a le sterge. În
timp ce înaint ăm cu testarea bazei de date ini țiale o s ă observ ăm ca se pot face îmbun ătățiri. Se mai
pot face reviziuri asupra structurii tabelului pentr u a găsii grupuri repetitive , iar dac ă acestea exista
vom reproiecta tabelul.
Un alt pas din cadrul proiect ării unei baze de date sunt regulile de normalizare a datelor , care
la rândul lor sunt utilizate pentru a verifica dac ă tabelele sunt structurate corect.Procesul prin care se
aplic ă aceste reguli poart ă denumirea de normalizarea bazei de date și este foarte util ă dacă deja a
fost creat un proiect preliminar și au fost determinate toate elementele informa ționale.
Regulile de normalizare se aplic ă succesiv și ele ne asigur ă că proiectul ajunge la forma
normal ă. Prin acest lucru întelegem c ă exist ă o singur ă valoare la fiecare intersec ție dintre o coloan ă
și un r ând și niciodat ă nu o s ă existe o list ă de valori. O a do ua form ă normal ă înseamna c ă fiecare
coloan ă care nu este cheie , să depind ă total de cheia pri mară , regula folosindu -se atunci c ând se
utilizeaz ă o singur ă cheie primar ă care con ține mai multe coloane.
A treia formă normală necesită ca fiecare coloană care nu este cheie să depindă de întreaga
cheie primară, dar și ca toate coloanele care nu sunt c hei să fie reciproc independente. Un alt mod de

20
a spune aste este că fiecare coloană care nu este cheie trebuie să depindă de întreaga cheie primară și
numai de cheia primară.

3.3.Limbajul MySQL .[10]

MySQL(Structured Query Language) sistem de g estiune a bazelor de date relaționale super
rapid și foarte bine pus la punct.Acesta permite s ă stochezi , s ă caute , s ă sorteze și să regăseasc ă
datele foarte repede și foarte eficient. MySQL este disponibil în mod public din 1996, dar istoria
dezvoltării sale începe încă din 1979 și a câștigat de mai multe ori premiul cititorilor – Linux Journal
Readers’ Choice Award.
Acest limbaj de programare este disponibil și gratis dar și sub licen ța comercial ă , poate fi
folosit at ât în sistemul de operare Windows, cât și pe Unix. Binen țeles c ă la codurile surs ă se pot
aduce modific ări și poate fi redistribuit mai apoi gratis.
SQL este unul din cele mai folosite limbaje de programare pentru bazele de date și normal
este ca majoritatea programatorilor s ă foloseasc ă acest limbaj pentru crearea acestor baze. SQL – ul
este limbajul standard folosit pentru mutarea și regăsirea datelor dintr -o baz ă de date rela țional ă. Cu
ajutorul acestui limbaj de programare , administratori sau programatori pot face diferite lucruri :
– schimbarea valorilor de configurare pentru siguranta sistemului.
– să interogheze baza de date referitor la anumite informa ți.
– modific ă structura unei baze de date .
– modific ă drepturile utilizatorilor .
– actualizeaz ă conținutul bazei .
Mai jos o s ă prezent ăm unele d in cele mai frecvente și cunoscute comenzi din MySQL :
– SHOW DATABASES – afișează lista cu numele bazelor de date existente
– USE "numele bazei" – alege baze de date cu care lucrăm în continuare
– CREATE DATABASE "numele bazei" – crează o bază de date
– CREATE TABLE "tabel unu" (camp a TEXT) – crează tabelul ‘tabel_unu’
cu un câmp numi t ‘camp a’ al cărui tip este TEXT
– DROP TABLE "tabel unu" – șterge tabelul numit
– DROP DATABASE "numele bazei" – șterge baza de date

21
– INSERT INTO tabel (camp1, camp2, ) VALUES (valoa rea1, valoarea2, ); –
introduce în tabelul cu numele ‘tabel’, în ‘campul1′ ‘valoarea1′, în
‘campul2′ ‘valoar ea2′.
– SELECT * FROM "tabel" – afișează tot (*) ce se gaseste în tabel
– SELEC T campul1 FROM tabel; – afișare conținut câmp ‘campul1′ din
tabelul ‘tabe l’.
– DELETE FROM tabel WHERE conditi ; – șterge în registrarea din tabel.

Ca și o lege nescris ă este de prefer at să nu folosim diacritice în numele tabelelor, c âmpurilor
sau a bazelor de date , chit c ă limbajul MySQL con ține diacritice.
Nu se pot folosi ca și nume la tabele sau la c âmpuri cuvinte rezervate , adic ă nume de func ți ,
tipuri de caractere din SQL cum ar fi DROP , COLUMN sau CREATE. Semnul stelu ță (*) in
limbajul MySQL înseamn ă tot/ toate. GROUP BY este o instruc țiune care ne poate ajuta la grupare a
rezultatelor astfel s ă nu vedem duplicate ci doar valori unice.Limitarea num ărului de rezultate se face
cu ajutorul instruc țiunii LIMIT ,urmat ă de două cifre ,prima însemn âd de la ce înregistrare s ă înceap ă
și cea de -a doua arat ă câte înregistr ări vrei s ă iți afiseze. Pentru a șterge o înregistrare se folose ște
comanda DELETE , iar pentru ștergerea unei baze sau a unui tabel se folose ște DROP. Pentru
modificare exist ă comanda UPDATE , iar pentru schimbarea structurii unui tabel sau s ă adăugăm
alte coloane folosim ALTER TABLE. Indexul este cel mai folosit tip de id ,comanda este INDECSI .
Acest id este un numar unic de identificare pentru un elemet al unui tabel. Putem crea un c âmp care
introduce automat un numar pentru fiecare r ând nou ad ăugat , pe care il putem folosii la afi șare.
MySQL stochează fizic datele unui tabel într -un fișier pe hard disc și cu cât tabelul e mai
mare, cu atât mărimea acestui fișier crește. Putem verifica mărimea maxima pentru un tabel cu
ajutorul comenzilor SHOW TABLE STATUS sau m yisamchk -dv table_name.

22

3.4. Limbajul PHP . [12]

Limbajul PHP este perfect pentru a crea o pagina web dinamic ă. Foarte u șor de învățat , este
gratis, ruleaz ă pe mai multe platforme și se poate conecta la mai multe tipuri de baze de date. L ucrul
cel mai important referitor la acest limbaj este ca poate fi îmbrăcat cu cod HTML , astfel se pot crea
pagini HTML statice și în unele cazuri se poate introduce dinamismul cu ajutorul limbajului PHP.
Limbajul PHP s -a "născut" în 1994 din nevoia lui R asmus Lerdorf de a afla câte persoane ii
vizitează CV -ul online. El a denumit setul de scripturi create PHP, acronimul pentru Personal Home
Page. Pe parcursul următorilor trei ani limbajul a evoluat dar adevăratul succes a început să îl
cunoască de când Ze ev Suraski și Andi Gutmans au rescris motorul PHP de la cap la coadă, motor
care poartă din versiunea 4 a PHP numele Zend, o combinație de litere din prenumele creatorilor săi:
Zeev și Andi.
Limbajul PHP are un foarte mare suport din partea comunit ății onl ine , el find folosit la
crearea majorit ății site -urilor .
Cel mai cunoscut limbaj scriptic pentru crearea site -urilor web interactive este interpretorul
PHP. Diferen ța dintre el și alte limbaje de scripting , gen JavaScript este faptul c ă este un interpre tor
server -side, adica opera țiile sunt executate pe server nu pe calculatorul utilizatorului.Pentru a testa o
pagin ă PHP este nevoie de un pachet PHP instalat și de un server web Apache. Acest limbaj permite
folosirea elementelor specifice limbajelor de pr ogramare , ieșirea standard a acestui script devine
intrarea standard pentru programul ce vizualizeaz ă pagina web.
Pe lângă manipularea conținutului paginilor de web, PHP poate trimite headere HTTP pen tru
autentificare, poate s ă seteze cookie -uri sau s ă redirectioneze utilizatorii.. Cu ajutorul bibliotecilo r
externe de funcții poate pastra fișiere XML, crea sau s ă manipuleze imagini, animați Shokwave
Flash, PDF -uri sau poate sa se conecteze la un server de mail, acestea find doar câteva din funcțiile
pe care le poate îndeplini.
Interceptorul parcurge documentul pe care la accesat până în clipa în care acesta întalne ște un
marcaj de deschidere care arat ă faptul c ă textul urmator se poate interpreta în cod PHP.Textul care
nu a putut fi interpretat ca cod PHP este trimis la ie șire exact cum a fost preluat la intrare. Exista mai
multe marcaje care indic ă începerea unei secven țe PHP , remarcate se fac doar doua care se folosesc
deobicei.
Prima posibilitate este atunci c ând dorim ca documentul s ă-și păstreze specifica țiile XML și
atunci singura varianta de a insera codul PHP este prin folosirea secven ței urm ătoare :

23
<?php
//cod PHP
?>
Posibilitatea a doua este prin utilizarea marcajului SCRIPT . Includerea este asem ănătoare ca
si la JavaScript :

<SCRIPT l anguage = "php">
//cod PHP
</SCRIPT>
Binenteles c ă sunt și alte posibilit ăți de utilizare a PHP -ului , acestea sunt situa ți particulare.
Se poate ie șii și intra în modul PHP ori de cate ori este necesar în pagin ă , normal aceasta variant ă
este folosit ă și util ă atunci c ând se lucreaz ă pe texte de dimensiuni mari. Instruc țiunile PHP s ă poata
fi interpretate corect , ele trebuie s ă fie separate de caracterul "," . În acest limbaj caracterele pot fi
inserate folosint sintaxe din limbajul C sau C++ și shell -urile Unix. Secven ța de caractere " // " sau
"#" indic ă faptul c ă restul de linie reprezint ă un comentariu. Inserarea a mai multor comentarii pe
mai multe linii trebuie delimitate de secventa " /* " la început și de secven ța " */" la sf ârșit.

3.5. Limbajul JavaScript

Limbajul Javascript este un limbaj de programre orientat pe obiect , bazat pe conceptul
prototipurilor. În general este folosit la introducerea unor functionalit ăți în paginile web , codul find
rulat de catre browser. Se știe că limbajul JavaScript este folosit la construirea site -urilor web și
pentru a accesa obiecte încastrate în alte aplica ți.
În ciuda faptului c ă multă lume crede c ă Java și JavaScript sunt c -am acela și tip de limbaj ,
ele chair nu se aseam ănă deloc. Amândou ă au la baza limbajul C < dar JavaScript se apropie mai
mult de limbajul Self. Cu ajutorul acestui limbaj , programatori pot îngloba în paginile lor script -uri
pentru diferite activit ăți , crearea de meniuri și efecte animate. În general browser -ele re țin în
mem oria lor reprezenta rea unei pagine web sub forma unui arbore de obiecte care sunt puse la
dispozi ția script -urilor JavaScript și pe care binen țeles acestea le pot citi și manipula. Acest tip de
arbore poart ă denumirea de Document Object Model sau prescurta t DOM.

24

3.6. Serverul WEB Apache

Serverul HTTP Apache este un server de tip open source.Acesta joac ă un rol important în
dezvoltarea mediului web , find folosit de aproximativ 50% din paginile web de pe glob. Serverul are
o semnificativ ă import anță în dezvoltarea Internetului, reprezent ânt o alternativ ă remarcabil ă la
Netscape Communications Corporation , și a evoluat rapid în func ționalitatea și performan țe
concur ând cu alte servere bazate pe Unix. Apache a dezvoltat o comunitate important ă de
programatori sub funda ția Apache Software Foundation. Aplica ția poa te fii folosit ă pe o gam ă largă
de platforme incluz ând Unix, FreeBSD, Linux, Solaris, Novell NetWare, Mac OS X, Microsoft
Windows și OS/2.
Apache se caracterizeaz ă ca fiind un software grat uit și open source ,iar începand cu aprilie
1996 este considerat cel mai popular server HTTP. El suport ând o mare varietate de module care îi
măresc func ționalitatea , ele variind de la tipuri sideprogramming p ână la scheme de autentificare.
Limbajele care sunt suportate de Apache sunt : mod perl , mod python , Tcl si PHP .alte tipuri de
module : SSL și TSL , un modul proxyun , modul de rescriere URL , custom log files și suport de
filtrare mod include și mod ext filter. O alta calitate a serverului este g ăzduirea virtual ă, care este de
fapt posibiliat ea de a g ăzduii mai multe site -uri pe acela și server.
Principalul adversar al acestui server este Microsoft Internet Information Service (IIS), dar
Apache este folosit pe unele din cele mai mari site -uri din lu me.
Exist ă așa numitul pache WAMP , ca server HTTP , numele provine de la Windows Apache –
MySQL -PHP , ca este de fapt o solu ție de server web Apache care vine cu un modul PHP instalat și
combinat cu o baza de date MySQL. Administrarea acestor baze de date se face cu un phpMyadmin
și SQLiteManage.

25

3.7. Noțiuni de baz ă despre HTML și CSS .[6]

HyperText Markup Language (HTML) e limbajul de marcare care este utilizat la crearea
paginilor web ce pot fi ar ătate într-un browser. Defapt scopul acestui limbaj este de a prezenta
informa ția , paragrafe ,fonturi , table și alte cele dec ât să descrie semantica documentului. HTML -ul
este orientat înspre prezentarea documentului text pe o singur ă pagin ă folosind un software
specializat care poart ă denumirea de agent utilizator HTML. Acest ă furnizeaz ă mijloace prin care
conținutul unui documet poate fii adnotat cu difeirte tipuri de metadate și indica ți de redare.
Indica țile pot fi de genul decora țiuni minore ale textului , adic ă sublinierea unui cuv ânt sau
micșorarea unei litere p ână la scripturi super sofisticate , h ărți de imagini și formulare.
Acest limbaj este un text proiectat pentr u a putea fi editat și citit de utilizatori cu ajutorul un ui
editor de text simplu. Oricum pentru a putea s ă modifici sau s ă scrii asemenea pagini este necesar s ă
ai ceva cuno știnșe în limbajul HTML. Mai exist ă editoare de grafic ă cum ar fi Macromedia
Dreamweaver , Adobe GoLive sau Microsoft FrontPage care permit ca paginile web s ă fie deschise
asem ănător documentelor Word , da r cu observa ția că aceste programe genereaz ă codul HTML de o
calitate mai slab ă.
Acest tip de limbaj se mai poate genera direct utiliz ând tehnologi de codare din partea
serverului cum ar fi PHP , JSP sau ASP.
Majoritatea aplica țiilor de email folosesc un editor HTML , introdus pentru compunerea mail –
urilor și un motor de prezentare a acestor tipuri de mail -uri. HTML – ul stă la baza paginilor web , ele
fiind formate din etichete sau tag -uri și au extensia .html . Aproape toate etichetele sunt pereche , una
deschide eticeta ,celalta inchide eticheta și automat browser -ul interpreteaz ă aceste etichete și
afiseaz ă rezultatul pe ecran. Principala pagin ă a unui domeniu este fi șierul indexhtml , ea fiind setat ă
să fie afisat ă automat la vizitarea unui anumit domen iu.
HTML -ul are componenta documentelor formata din :
 versiune documentului HTML
 etichetele din zona head
 etichetele din zona body
Versiunile HTML sunt și ele împar țite pe 3 categori : HTML 4.01 Strict , HTML 4.01
Transitional si HTML 4.01 Frameset. Pagini le HTML încep cu eticheta <html> și se termin ă cu
eticheta </html> , iar în interiorul acestor etichete g ăsim perechile <head>si <body>,</body> .

26
Etichetele tip meta ce con țin descrierea paginii , cuvinte cheie ,date despre autor sau informa ți
utile motoare lor de c ăutare și au format de tipul <META NAME="nume CONTENT="continut>.
Acesta g ăzduieste toate etichetele afi șate de browser pe ecran.
Sunt trei tipuri de elemente de marcare în HTML :
– exist ă marcarea structural ă care descrie scopul unui text .
– exist ă marcarea pentru prezentare care descrie cum apare textul , indiferent de
funcțiile sale .
– exist ă marc area pentru hyperlink care leagă părți ale unui document cu alte
documente.
Doar marcatori de prezentare determin ă cum va fii prezentat con ținutul din inter iorul
marcatorului. Ceilal ți marcatori vor spune browser -erului ce obiecte pot s ă redea sau ce func ții o s ă
execute.
Un fisier HTML are urm ătoare structur ă de baza :
<html>
<head>
<title>Titlul</title>
</head>
<body>

</body>
<head>
</html>

Între tag -urile body se scriu cel ălalte instruc țiuni , tag -ul body permit ând stabilirea fundalului
și a culorilor hyperlink -urilor.
Fișierul CSS (Cascading Style Sheet) permite separarea con ținutului HTML de stilul ce se
afișează în pagin ă .Utiliz ăm codul HTML pentru a ranjarea con ținutului în pagin ă, însă toată
prezentarea , fonturi , culori , borduri și alte caracteristici sunt realizate din fi șierul CSS. Fi șierele
CSS se pot folosi în dou ă moduri , metoda intern ă și metoda extern ă.
Pentru aplicarea metodei interne fie care fi șier HTML ca re conține codul CSS folosit la
stilizare , însemnand ca atunci c ând dorim s ă facem o modificare de stil va fi necesar s ă facem acele
modific ări în toate paginile care con țin acel stil. Metoda acesta este aplicabil ă dacă este vorba de t rei
sau patru pagini , pentru mai multe pagini nu este convenabil din punct de vedere al timpului.

27
Orice fi șier extern poate fi realizat cu orice editor simplu de text sau cu un editor avansat cum
ar fii Dreamweaver. Fi șierele CSS nu con țin coduri HTML ci doar coduri CSS, ele trebuind salvate
cu extensia .css . Înserarea fișierului extern în paginile HTML se face foarte ușor, prin plasarea unui
link (legatura) în secțiunea <head> </head> a fiecarei pagini pe care dorim să folosim stilul
respectiv.
Pentru a plicare metodei externe , toate paginile HTML vor folosii acela și fișier de stil ,
însemnand c ă atunci c ând vrem s ă facem o modificare care s ă aibe efect pe toate cel ălalte pagini ,
este destul s ă modific ăm un singur fisier , cel de stil și efectul se va implementa pe toate celalalte
pagini HTML ce folosesc acel fisier. Asadar cu aceast ă metoda putem s ă facem modific ări indiferent
de num ărul de pagini web.
Mai exista o modalitate și anume stilurile în linie , acestea se pot defini chair și în codul
HTML , în elem entul pe care doril s ă-l stiliz ăm. Acest ă metod ă nu ne permite schimb ări rapide și
ușoare pe mai multe fi șiere în acela și timp.
În general nu toate browser -erele interpreteaza la fel stilurile ,CSS -ul va fi interpretat diferit ,
ceea ce va duce la probleme și pierdere de timp , dar exist ă și alte metode de a rezolva aceste
interpret ări , despre care vom vorbi la timpul potrivit.

3.8. Dezvoltarea in mediul Dreamweaver .[15]

Macromedia Dreamweaver este un produs cu care se pot crea pagini web. Ultim a versiune a
fost creata de c ătre Macromedia în februarie 2015 în versiunea CC. Cu primele versiuni se putea doar
edita simple pagini HTML de tipul WYSIWYG , iar acum cu versiunile noi se pot implementa
funcții de editare avansate și suport pentru alte te hnologi cum sunt CSS -ul sau JavaScript. Acest
produs poate s ă ruleze pe diferite platforme software , cum ar fii Windows , Mac și cu ajutorul unor
emulatoare software poate s ă ruleze și pe platforma Unix.
Editorul Dreamweaver poate ascunde detalile de impl ementare a paginii HTML , f ăcând
posibila crearea unei pagini web și de c ătre unii utilizatori f ără experien ță. Acesta facilitate este
criticat ă de programatori cu experien ță deoarece , ace știa creaz ă pagini mult mai mari dec ât este
necesar și automat acce sarea lor este mult mai grea și mai dificil ă. Adesea a mai fost criticat și pentru
faptul c ă produce anumite coduri care nu sunt conform cu standardele W3C , lucrul acesta
schimb ându-se cu apari ția versiunilor mai recente. Ma cromedia a ridicat suportul pen tru tehnologia
CSS precum și alte modalit ăți de design f ără a fi necesar folosirea design -ului pe baza de tabel.

28
Dreamweaver permite folosirea majorit ății browser -elor instalate pe cal culatoarele
utilizatorilor , pentru previzualizarea site -ului creat. El conține și câteva utilitare pentru a administra
aceste site -uri , utilitara pentru a gasi și modifica paragrafe sau o linie de cod , pe baza oricaror
parametri specifica ți de c ătre utilizator.
Odată cu apariția versiunii MX, Macromedia a încorporat utilit are de generare dinamică a
conținutului. De asemenea este oferit suport pentru conectarea la baze de date (cum ar fi MySQL)
pentru a filtra și afișa conținutul folosind script -uri de genul PHP, ColdFusion, Active Server Pages
(ASP) și ASP.NET, fără a avea nevoie de o prealabilă experiență în programare.
Un aspect foarte lăudat al Dreamweaver -ului îl reprezintă arhitectura sa extensibilă.
Extensiile, așa cum sunt ele cunoscute, sunt mici programe, pe care orice dezvoltator le poate scrie
(de obicei în HTML ș i JavaScript) și pe care oricine le poate descarca și instala, acestea aducând un
spor de performanță și funcționalitate îmbunătățită programului. Există o comunitate de dezvoltatori
care produc aceste extensii și le publică pentru probleme de dezvoltare web, de la simple efecte
rollover până la soluții complete de vânzare online.

29

Capitolul 4
Proiectarea de detaliu a aplica ției

4.1. Arhitectura programului

Figura 4.1.1. Arhitectura programului
Pagina de start

Utilizator Administrator
-Acces avizier
-Acces trimitere
adresa Mac
-Acces regulament

Utilizatori
-adaugare date utilizator
-afisare date utilizatori
-modificar e date utilizatori
-stergere utilizatori
-cautare utilizator dupa nume
-cautare utilizator dupa etaj
Setari
generale
-setari
generale
aplicatie

Mesaje
-trimite

Regulament
-editare
-afisare
-stergere
Adrese PPPoE
-Adaugare
-Afisare
-Editare
-Validare
-Stergere

Adresa MAC
-Adaugare
-Afisare
-Editare
-Validare
-Stergere

30

4.2. Descrierea componentelor

Dintre aceste module prezentate, cel pentru manipularea utilizatorilor este accesibil doar
administratorulu i, acesta având acces doar la acest tip de operații. Administratorul de retea este cel
care are acces la modulele care manipulează datele utilizatorilor de re țea, inclusiv posibilitatea de
emitere de adresa MAC, adresa IP,drepturi,restric ții și de vizualiz are a unor informații, sub formă
tabelară, necesare pentru procesul de luare a deciziilor. Un utilizator obișnuit, neautentificat nu are
accesul la datele privitoare la utilizator. Legătura dintre aceste module este asigurată de conexiunea
la baza de date, astfel acestea partajând aceleași informații.
Securitatea este implementată la nivelul interfeței cu baza de date, realizate prin PHP. Astfel
orice operație se poate efectua doar în urma autentificării, realizată cu ajutorul sesiunilor.
În urma unei aute ntificări reușite, meniul devine activ, astfel că utilizatorul poate selecta
opțiunea pe care o dorește prin simpla apăsare a butonului corespunzător din meniu. Umătorul pas în
utilizarea aplicației îl reprezintă introducerea datelor de la tastatură, urmat ă de procesarea acestora fie
prin stocarea lor în baza de date, prin afișarea informațiilor pe ecran sau prin imprimarea acestora sub
formă de documente. De asemenea, la introducerea datelor este verificată corectitudinea lor, unele
dintre ele fiind comple tate automat astfel încât să se asigure validitatea și corectitudinea lor.
La rularea aplicației se va intra automat în formularul de autentificare verificându -se
validitatea utilizatorului și a parolei de logare, cu ajutorul sesiunilor. Numele utilizatoru lui și parola
sunt preluate cu ajutorul funcției POST din căsuțele de text ale formularului, și sunt comparate cu
datele existente în tabela corespunzătoare datelor despre utilizatorii de retea.

if (isset($_POST['username' ]) && isset($_POST['password' ]) && $_POST['username' ]
!= "") {
$username = $_POST['username' ];
$password = $_POST['password' ];

include ("connection.php" );

$query = "SELECT username ,password, drepturiUtilizator, idUtilizator FROM
utilizator WHERE username=' $username ' AND password=' $password '";
$result = mysql_query ($query);
while ($row = mysql_fetch_array ($result))
{
$today = date('Y-m-d');
$sqlUpdate = "UPDATE `atesta_camin`.`utilizator` SET `ultimaVizita` =
'".$today."' WHERE `utilizator`.` idUtilizator` = '" .$row['idUtilizator' ]."' LIMIT
1";
mysql_query ($sqlUpdate );

31
$_SESSION ['valid_user' ] = $username ;
$_SESSION ['id_user' ] = $row['idUtilizator' ];
$_SESSION ['drepturi_user' ] = $row['drepturiUtilizator' ];
}
}

Dacă numele și parola vor fi găsite în tabelă, se va prelua identificatorul corespunzător
administratorului, făcându -se posibilă și vizualizarea și utilizarea meniului. În caz contrar se va afișa
din nou formularul de autentificare cu mesajul aferent de eroare, și anume „Userul sau parola nu au
fost introduse corect!”.
După o autentificare reușită se va face afișarea opțiunilor din meniu și completarea automată
a identificatorului corespunzător administratorului, în cazul adăugarii datelor, iar în cazul prelucrării
datelor făcându -se selecția pentru a nu avea acces decât la datele utilizatorilor de retea
administratorului deja autentificat. Pentru opțiunea „Utilizatori” va fi posibilă adăugarea unui nou
utilizator în baza de date cu ajutorul formularului de adăugare. Datele din formularul de adăugare vor
fi preluate cu POST din căsuțele de text, ComboBox -uri, sau butoanele radio.

<?php
session_start ();
//conectare la baza de date
if (!isset($_SESSION ['valid_user' ])) {
header("locatio n:login.php" );
exit();
}
include ("connection.php" );

if (isset($_POST['numeUtilizator' ]))
{
if ($_POST['password' ] != $_POST['password2' ])
{
throw new Exception ("Error Processing Request: Parola introdus a nu
coincide" , 1);
}
$sql="UPDATE `atesta_camin`.`utilizator` SET `numeUtilizator` =
'".$_POST['numeUtilizator' ]."',
`adresaUtilizator` = '" .$_POST['adresaUtilizator' ]."' , `password` =
'".$_POST['password' ]."',
`email` = '" .$_POST['email']."' , `drepturiUtilizator` =
'".$_POST['drepturiUtilizator' ]."'
WHERE `utilizator`.`idUtilizator` =" .$_SESSION ['id_user' ]." LIMIT
1 ";
mysql_query ($sql);
}
?>
<!DOCTYPE html >
<html lang="en">

………..

32
<div class="navbar navbar -fixed-top">
<div class="navbar-inner">
<div class="container" > <a class="btn btn -navbar" data-toggle="collapse"
data-target=".nav-collapse" ><span
class="icon-bar"></span><span class="icon-bar"></span><spa n
class="icon-bar"></span> </a><a class="brand" href="index.php" >
<?php
if (!isset($_SESSION ['headerTitle' ]))
echo "Administrare camin" ;
else
echo $_SESSION['headerTitle' ];
?>
</a>
<div class="nav-collapse" >
<ul class="nav pull -right">
<li class="dropdown" ><a href="#" class="dropdown -toggle" data-
toggle="dropdown" ><i
class="icon-user"></i> <?php echo
$_SESSION ['valid_user' ];?> <b class="caret"></b></a>
<ul class="dropdown -menu">
<li><a href="profil_user.php" >Profil</a></li>
<li><a href="login.php?action=logout" >Logout</a></li>
</ul>
</li>
</ul>
</div>
<!–/.nav-collapse –>

</div> <!– /container –>

</div> <!– /navbar-inner –>

</div> <!– /navbar –>
<div class="subnavbar" >
<div class="subnavbar -inner">
<div class="container" >
<ul class="mainnav" >
<li><a href="index.php" ><i class="icon-home"></i><span> Home</span> </a>
</li>
<li><a href="avizier.php" ><i class="icon-list-
alt"></i><span> Avizier</span> </a> </li>
<li><a href="adresemac.php" ><i class="icon-th-large"></i><span> Adrese
MAC</span> </a></li>
<li><a href="adresepppoe.php" ><i class="icon-signal"></i><span> Adrese
PPPoE</span> </a> </li>
<li><a href="studenti.php" ><i class="icon-user"></i><span> Studenti</span>
</a> </li>
<?php
if (isset($_SESSION ['drepturi_user' ]) && ($_SESSION ['drepturi_user' ] ==
"administrator" || $_SESSION ['drepturi_user' ] == "root") )
{
?>
<li><a href="regulament.php" ><i class="icon-list-
ol"></i><span> Regulament </span> </a> </li>
<li><a href="mesaje.php" ><i class="icon-envelope –
alt"></i><span> Mesaje</span> </a> </li>
<li><a href="setari_generale.php" ><i class="icon-cogs"></i><span> Setari
Generale </span> </a> </li>
<?php
}
?>

33
</ul>
</div>
<!– /container –>
</div>
<!– /subnavbar -inner –>
</div>
<!– /subnavbar –>

<div class="main">

<div class="main-inner">

<div class="container" >

<div class="row">

<div class="span12" >

<div class="widget " >

<div class="widget-header">
<i class="icon-user"></i>
<h3>Detalii profil utilizator </h3>
</div> <!– /widget-header –>

<div class="widget-content" >

<div class="tab-pane" id="formcontrols" >
<form id="edit-profile" class="form-horizontal"
action="profil_user.php" method="POST">
<fieldset>
<?php
$query = "SELECT * from utilizator
WHERE idUtilizator = " . $_SESSION ['id_user' ];
$res = mysql_query ($query);
while ($row =
mysql_fetch_array ($res))
{

?>
<div class="control -group">
<label class="control -label"
for="username" >Username </label>
<div class="controls" >
<?php
echo '<input type="text"
class="span6 disabled" id="username" value="' .$row['username' ].'" disabled>' ;
?>
<p class="help-block">Username -ul
este folosit pentru logare si nu poate fi schimbat. </p>
</div> <!– /controls –>
</div> <!– /control -group –>

<div class="control -group">
<label class="control -label"
for="firstname" >Nume utilizator </label>
<div class="controls" >
<?php

34
echo '<input type="text"
class="span6" id="numeUtilizator" name="numeUtilizator"
value="' .$row['numeUtilizator' ].'">';
?>
</div> <!– /controls –>
</div> <!– /control -group –>

<div class="control -group">
<label class="control -label"
for="firstname" >Adresa utilizator </label>
<div class="controls" >
<?php
echo '<input type="text "
class="span6" id="adresaUtilizator" name="adresaUtilizator"
value="' .$row['adresaUtilizator' ].'">';
?>
</div> <!– /controls –>
</div> <!– /control -group –>

<div class="control -group">
<label class="control -label"
for="firstname" >Drepturi utiliza tor</label>
<div class="controls" >
<?php
$selected_root = "";
$selected_administrator = "";
$selected_administrator_retea
= "";
switch
($_SESSION ['drepturi_user' ]) {
case 'root':
$selected_root =
"selected" ;
break;

case 'administrator' :

$selected_administrator = "selected" ;
break;

case
'administrator_retea' :

$selected_administrator_retea = "selected" ;
break;
default:
# code…
break;
}
echo '<select
name="drepturiUtilizator" id="drepturiUtilizator">
<option value="root"
'.$selected_root .'>Root</option>
<option
value="administrator" ' .$selected_administrator .'>Administrator</option>
<option
value="administrator_retea" ' .$selected_administrator_retea .'>Administrator
retea</option>
</select>' ;
?>
</div> <!– /controls –>

35
</div> <!– /control -group –>

<div class="control -group">
<label class="control -label"
for="email">Adresa de mail </label>
<div class="controls" >
<?php
echo '<input type="text"
class="span4" id="email" name="email" value="' .$row['email'].'">';
?>
</div> <!– /controls –>
</div> <!– /control -group –>

<br /><br />

<div class="control -group">
<label class="control -label"
for="password1" >Parola user </label>
<div class="controls" >
<?php
echo '<input type="password"
class="span4" id="password1" name="password" value="' .$row['password' ].'">';
?>
</div> <!– /controls –>
</div> <!– /control -group –>

<div class="control -group">
<label class="control -label"
for="password2" >Confirmare </label>
<div class="controls" >
<?php
echo '<input type="password"
class="span4" id="password2" name="password2" value="' .$row['password' ].'">';
?>
</div> <!– /controls –>
</div> <!– /control -group –>

<div class="control -group">
<label class="control-label">Data
inregistrare </label>
<div class="controls" >
<?php echo $row['dataInregistrare' ];
?>
</div> <!– /controls –>
</div> <!– /control -group –>

<div class="control -group">
<label class="control -label">Ultima
vizita</label>
<div class="controls" >
<?php echo $row['ultimaVizita' ]; ?>
</div> <!– /controls –>
</div> <!– /control -group –>

<?php
}
?>
<div class="form-actions" >

36
<button type="submit" class="btn btn –
large btn -primary" >Salveaza </button>
<button class="btn btn –
large">Anulare</button>
</div> <!– /form-actions –>
</fieldset>
</form>
</div>

Deoarece pentru a alege numele și etajul, din care provine utilizatorul, au fost folosite
butoanele, acestea au fost introduse în două tabele diferite, asocierea făcându -se prin intermediul
unui identificator al numelor respective al etajelor.
La fel s -a procedat și în cazul alegerii tipului utilizatorului.

<div class="tabbable" >
<ul class="nav nav-tabs">
<?php
$sql = mysql_query ("SELECT * FROM etaje" );
while($row = mysql_fetch_array ($sql))
{
$class_active = "";
if ($row['idEtaj'] == 1)
{
$class_active = 'class="active"' ;
}
$denumireEtaj = "etaj".$row['idEtaj' ];
echo '
<li '.$class_active .'>
<a href="#' .$denumireEtaj .'" data-
toggle="tab">' .$row['denumireEtaj' ].'</a>
</li>';
}
?>
</ul>
<br>

<div class="tab-content" >
<?php
$sql = mysql_query ("SELECT * FROM etaje" );
while($row = mysql_fetch_array ($sql))
{
$class_active = "";
if ($row['idEtaj' ] == 1)
{
$class_active = 'active' ;
}
$denumireEtaj = "etaj".$row['idEtaj' ];
echo '<div class="tab -pane '.$class_acti ve.'"
id="'.$denumireEtaj .'">';

$sqlCamere = mysql_query ("SELECT DISTINCT cameraStudent
FROM student where idEtaj = " . $row['idEtaj' ]);

37
while($rowC = mysql_fetch_array ($sqlCamere ))
{
echo '
<form method="POST">
<button class="btn btn -info"
formaction="camere.php?id_camera=' .$rowC['cameraStudent' ].'">'.$rowC['cameraStude
nt'].'</button>
</form>' ;
}
echo '</div>' ;
}
?>
</div>

</div>

<?php
}
else if (isset($_GET['id_camera']))
{
$id_camera = $_GET['id_camera' ];
echo "<h2>Camera " .$id_camera ."</h2>";
$sql = "SELECT * FROM student where cameraStudent =
".$id_camera ;
$res = mysql_query ($sql);

echo "<table width= \"100%\" style= \"margin:30px; \"><tr>";
while ($row = mysql_fetch_array ($res)) {
echo "<td>";

$calculator = translate_truth ($row['calculator' ]);
$router = translate_truth ($row['router' ]);
print "<h3>". $row['numeStudent' ] . " "
.$row['prenumeStudent' ] . "</h3>";
print "Act identitate: <strong>" . $row['serieBuletin' ] .
$row['numarBuletin' ] . "</strong><br>" ;
print "Studii: <strong>" . $row['facultateStudent' ] . ", Anul
" .$row['anStudiu' ] . "</strong><br>" ;
print "Calculator: <strong>" . $calculator . "</strong><br>" ;
print "Router: <strong>" . $router . "</strong>" ;

echo "</td>";
}
echo "</tr></table>" ;
}
?>
</div>

Datele privind adresa utilizatorului sunt preluate separat, în consecință a fo st folosită
concatenarea câmpurilor de adresă, fiind posibilă astfel introducerea adresei complete în câmpul din
tabelă.
Inserarea propriu -zisă se va face prin comanda insert a limbajului MySQL.
Pentru modului Utilizator mai există opțiunea de căutare a u tilizatorilor de retea dupa nume
respectiv după adresa MAC.

38
<div class="widget-content" >
<h2 style="padding -left:50px; padding -top:25px;" ></h2><br>
<?php
echo '
<form id="edit -profile" class= "form-horizontal" method="POST"
action="search_mac.php">
<div class="control -group">
<label class="control -label" for="radiobtns">Cauta
MAC</label>
<div class="controls">
<div class="input -append">
<input class="span2 m -wrap" id="appendedInputButton"
name="cauta" type="text">
<button class="btn" type="submit">Cauta!</button>
</div>
</div> <! – /controls –>
</div> <! – /control -group –>
</form>
';

if (!isset($_POST['cauta']))
{
?>
<table class="table table -striped table -bordered" >
<thead>
<tr>
<th> Nume student </th>
<th> Adresa MAC </th>
<th> Adresa IP </th>
<th> Stare adresa </th>
<th> Data trimitere </th>
<th> Email</th>
<th> Camera</th>
</tr>
</thead>
<tbody>
<?php

$res = mysql_query ("SELECT * from student" );
while ($row = mysql_fetch_array ($res))
{
$etajQ = mysql_query ("SELECT * from adresemac WHERE idStudent
= ". $row['idStudent' ]);
$rowE = mysql_fetch_array ($etajQ);
echo '
<tr>
<td> '.$row['numeStudent' ].' '.$row['prenumeStudent' ].'
</td>
<td> '.$rowE['adresaMac' ].' </td>
<td> '.$rowE['adresaIP' ].' </td>
<td> '.$rowE['stareAdresa' ].' </td>
<td> '.$rowE['dataTrimitere' ].' </td>
<td> '.$row['emailStudent' ].' </td>
<td> Camera ' .$row['cameraSt udent'].' </td>
</tr>';
}

?>
</tbody>
</table>

39
<?php
}
else if (isset($_POST['cauta']))
{
?>

<table class="table table -striped table -bordered" >
<thead>
<tr>
<th> Nume student </th>
<th> Adresa MAC </th>
<th> Adresa IP </th>
<th> Stare adresa </th>
<th> Data trimitere </th>
<th> Email</th>
<th> Camera</th>
</tr>
</thead>
<tbody>
<?php
$cauta = $_POST['cauta'];
$res = mysql_query ("SELECT * from student, adresemac WHERE
student.idStudent = adresemac.idStudent AND
numeStudent LIKE '%" .$cauta."%' OR prenumeStudent LIKE
'%".$cauta."%'
OR adresaMac LIKE '%" .$cauta."%' OR adresaIP LIKE
'%".$cauta."%'");
if (mysql_num_rows ($res) > 0)
{
while ($row = mysql_fetch_array ($res))
{
echo '
<tr>
<td> '.$row['numeStudent' ].' '.$row['prenumeStudent' ].'
</td>
<td> '.$row['adresaMac' ].' </td>
<td> '.$row['adresaIP' ].' </td>
<td> '.$row['stareAdresa' ].' </td>
<td> '.$row['dataTrimitere' ].' </td>
<td> '.$row['emailStudent' ].' </td>
<td> Camera ' .$row['cameraStudent' ].' </td>' ;

echo ' </tr>' ;
}
}

?>
</tbody>
</table>

<?php
}
?>
</div>
<!– /widget-content –>

40
Similar se procedează și în cazul căutării după nume și prenume.
La apelarea opțiunii de modificare datelor unui anumit utilizator se va face din nou o căutare
a utilizatorului, după care se va face modificarea datelor dorite prin comanda update a limbajului
MySQL.
Pentru ștergerea unui utilizator din baza de date se va căuta utilizatorul după care se va face
ștergerea prin interogare.
Pentru un utilizator deja existent în baza de date vor fi posibile emiteri de adrese MAC,adresa
IP,drepturi si re strictii, precum și vizualizări, căutări, modificari sau ștergeri ale acestora, folosindu –
se preluări de date, și comenzi ale limbajului MySQL similare cu cele prezentate mai sus, cu
modificările aferente.
Pentru reprezentatii de pe fiecare etaj exista res trictia ca respectivul student sa fie cazat e acel etaj:
<?php
// aici schimbam responsabil etaj
if (isset($_POST['id_reprezentant_nou' ]) &&
isset($_POST['id_etaj' ]))
{
$sqlUpdate = "UPDATE `atesta_ camin`.`etaje` SET
`idReprezentant` =
'".$_POST['id_reprezentant_nou' ]."'
WHERE
`etaje`.`idEtaj` = " .$_POST['id_etaj' ]."
LIMIT 1
";
mysql_query ($sqlUpdate );
echo '<div class="alert alert -success">
<button type="button" class="close" data –
dismiss="alert">&times;</button>
<h2>Responsabilul de etaj a fost schimbat cu succes in baza
de date.</h2>
</div>';
}
?>
<div class="widget-content" >
<?php
if (!isset($_GET['id_etaj' ]))
{
?>
<h2>Responsabili etaj </h2>
<div class="tabbable" >
<ul class="nav nav -tabs">
<?php
$sql = mysql_query ("SELECT * FROM etaje" );
while($row = mysql_fetch_arra y($sql))
{
$class_active = "";
if ($row['idEtaj' ] == 1)
{
$class_active = 'class="active"' ;
}
$denumir eEtaj = "etaj".$row['idEtaj' ];
echo '
<li '.$class_active .'>

41
<a href="#' .$denumireEtaj .'" data-
toggle="tab">' .$row['denumireEtaj' ].'</a>
</li>';
}
?>
</ul>
<br>

<div class="tab-content" >
<?php
$sql = mysql_query ("SELECT * FROM etaje" );
while($row = mysql_fetch_array ($sql))
{
$class_active = "";
if ($row['idEtaj' ] == 1)
{
$class_active = 'active' ;
}
$denumireEtaj = "etaj".$row['idEtaj' ];
echo '<div class="tab -pane '.$class_active .'"
id="'.$denumireEtaj .'">';

echo '<div style="padding -left:50px;">' ;

$sqlR = "SELECT * FROM student, etaje WHERE
etaje.idReprezentant = student.idStudent
AND student.idEtaj = " . $row['idEtaj' ];
$sqlCamere = mysql_query ($sqlR);
if (mysql_num_rows ($sqlCamere ) == 0)
{
$reprezentant = "-";
$detalii_buletin = "-";
$camera_responsabil = "-";
$mail_responsabil = "-";
$telefon_responsabil = "-";
}
else
{
$rowC = mysql_fetch_array ($sqlCamere );
$reprezentant = $rowC['numeStudent' ] . " " .
$rowC['prenumeStudent' ];
$detalii_buletin = $rowC['serieBuletin' ] . " " .
$rowC['numarBuletin' ];
$camera_responsabil = $rowC['cameraStudent' ];
$mail_responsabil = $rowC['emailStudent' ];
$telefon_responsabil = $rowC['telefonStudent' ];
}

echo '<h3>Responsabil etaj: ' .$reprezentant .'</h3>';
echo '<h3>Detalii buletin: ' .$detalii_buleti n.'</h3>';
echo '<h3>Camera: ' .$camera_responsabil .'</h3>';
echo '<h3>Adresa mail: ' .$mail_responsabil .'</h3>';
echo '<h3>Telefon: ' .$telefon_responsabil .'</h3><br>' ;

echo '<form method="POST"
action="responsabili.php?id_etaj=' .$row['idEtaj' ].'" >
<button type="submit" class="btn btn -warning btn –
large"><span class="icon -edit "></span> Schimba reprezentant</button>
</form>' ;
echo "</div>" ;
echo '</div>' ;

42
}
?>
</div>

</div>

<?php
}
else
{
$sql = mysql_query ("SELECT * FROM etaje WHERE idEtaj = " .
$_GET['id_etaj' ]);
$row = mysql_fetch_array ($sql);
echo '<h3 style="padding -left:20px;">Alegeti un student ca
reprezentat pentru ' .$row['denumireEtaj' ].'</h3>';

echo ' <form method="POST" action="responsabili.php">
<select style="margin -left:50px; margin -top:20px;"
name="id_reprezentant_nou">' ;
$sql = mysql_query ("SELECT * FROM student WHERE idEtaj = " .
$_GET['id_etaj' ]);
while ($row = mysql_fetch_array ($sql)) {
echo ' <option
value="' .$row['idStudent' ].'">'.$row['numeStudent' ]. ' '
.$row['prenumeStudent' ].'</option>' ;
}
echo '</select><br>
<input type="hidden" name="id_etaj"
value="' .$_GET['id_etaj' ].'">
<button style="margin -left:50px;" type="submit" class="btn
btn-success btn -large">
<span class="icon -ok "></span> Al ege reprezentant
</button>
</form>' ;
}
?>
</div>
<!– /widget-content –>

4.3. Funcții JavaScript

Adăugarea datelor în diagrame se realizeaza cu ajutorul apel urilor de JavaScript c ătre
funcțiile din chart.min.js și excanvas.min.js, func ții care folosesc ca parametri rezultatele
interogarilor SQL ob ținute cu PHP. Pentru a afisa informa ții corecte din baza de date se utilizează
funcții JavaScript.
<script src="js/jquery-1.7.2.min.js" ></script>
<script src="js/excanvas.min.js" ></script>
<script src="js/chart.min.js" type="text/javascript" ></script>
<script src="js/bootstrap.js" ></script>
<script src="js/base.js" ></script>

43
<?php
$sql = "SELECT * FROM etaje" ;
$res = mysql_query ($sql);
$etaje = "";
$data1 = "";
$data2 = "";

while ($row = mysql_fetch_array ($res))
{
$etaje .= "\"".$row['denumireEta j']."\", ";

$sqlD = mysql_query ("SELECT count(*) FROM student WHERE idEtaj =
". $row['idEtaj' ]);
$rowS = mysql_fetch_array ($sqlD);
$data1 .= $rowS['count(*)' ] . ", ";

$sqlC = mysql_query ("SELECT count(*) FROM student WHERE idEtaj =
". $row['idEtaj' ]." AND calculator = 1" );
$rowC = mysql_fetch_array ($sqlC);
$data2 .= $rowC['count(*)' ] . ", ";
}

?>
<script>

<?php
echo '
var barChartData = {
labels: [' .$etaje.'],
datasets: [
{
fillColor: "rgba(220,220,220,0.5)",
strokeColor: "rgba(220,2 20,220,1)",
data: [' .$data1.' 0]
},
{
fillColor: "rgba(151,187,205,0.5)",
strokeColor: "rgba(151,187,205,1)",
data: [' .$data2.' 0]
}
]
}
';
?>

var myLine = new Chart(document.getElementById ("bar-
chart").getContext ("2d")).Bar(barChartData );

</script>

44

4.4 Structurile bazelor de date și a tabelelor.

Pentru realizarea aplicației a fost utilizată o bază de date care conține tabele relationate prin
identificatori care au activată proprietatea de autoincrementare și nu acceptă valoarea N ULL.
Baza de date se numește „camin” și conține următoarele tabele :
– administrator de retea cu câmpurile : id, nume, user, parola, unitate_admi nistratorala, cui,
sediu, judet , vezi figura 4.4.1.

Figura 4.4.1 . Tabe l administrator de re țea.
Câmpul id este cheie primară pentru tabela administrator de retea.
– tabela utilizator cu câmpurile: idMAC, nume, prenume, adresaMac, adresaIP, dataTrimitere,
stareAdresa, stareVirusare, observarii,idStudent. Câmpul idMAC este ident ificatorul
utilizatorului și este cheie primară pentru acest tabel. Tabelul mai conține si campul idStudent
pentru a face relaționarea cu tabela administrator de retea

45

Figura 4.4.2. Tabel re țea PPPOE
– tabela adres a cu câmpurile: idAdresa, idStudent,u sernamePPOE, stareAdresa, observatii , vezi
figura 4.4.2.
Câmpul idAdresa este cheie primara iar relaționarea se face ca și în cazul anterior prin
idStudent.

Figura 4.4.3. Tabel anun ț
– tabela anunt cu c âmpurile: idAnunt, idUtilizator,titluAnunt, textAnunt, dataAnunt , vezi
figura de mai sus 4.4.3.
Câmpul idAnunt este cheie primara iar relaționarea se face ca și în cazul tabelei adresa
prin idUtilizator.

Figura 4.4.4. Tabel reparti ție etaj
– tabela etaj cu câmpurile: idEtaj, idReprezentant,denumireEtaj , vezi figura 4.4.4.
Câmpul idEtaj este cheie primara iar relaționarea se face ca și în cazul anterior prin
idReprezentant.In acest care avem o relationare intre sefii de paliere si administrator.

46

Figura 4.4.5. Tabel op țiuni
– in aceasta tabel ă exist ă o relationare între c âmpurile setare și opțiune, vezi figura 4.4.5.

Figura 4.4.6. T abel regulament
– această tabele este compusă din câmpurile tip și text , vezi figura 4.4.6.
Ambele tabele cea de regulament cât și cea de opțiuni sunt tabele informaționale și au caracter
doar informativ.Acestea aducând în față utilizatorului termenii și co ndițiile inpuse de admistratorul
de rețea celor care folosesc sau doresc accesul în rețea controlată de el.

Figura 4.4.7. Tabel student
– tabela cu câmpurile: idStudent și numeStudent. Câmpul idStudent es te cheie primară iar
relaționarea se face prin idEtaj cu câmpul idMAC din tabelele prezentate anterior , vezi
fugura 4.4.7.

47

Figura 4.4.8. Tabel utilizator

– tabela cu câmpurile : idUtilizator, nume și adresa. Câmp ul idUtilizator este cheie primară iar
relaționarea se face prin idAnunt din tabela anunturi pentru a face corespondența dintre
numele aparținătoare unui anumit anunt selectat în formularul de introducere al datelor.

Figura 4.4.9. Tabel vizitator

48
În figură 4.4.9. este ilustartă o schemă a relaționării tabelelor bazei de date:

Figura 4.4.9. Rela ționarea tabelelor din baza de date

49

Capitolul 5
Utilizarea apli cației.

5.1. Interfa ța utilizatorului
La rularea aplicației se va deschide automat formularul de autentificare (figura 5.1.1. ), unui
utilizator neautentificat ne având permisiunea de a accesa datele gestionate în baza de date.

Figura 5.1.1 Formular de autentificare

La accesarea butonului de logare se va deschide meniul principal (figura 5.1.2.) în cazul în
care atât numele utilizatorului cât și parola sunt corecte și există în tabela c u datele privitoare la
administrator de retea.

50

Figura 5.1.2. Pagina principală

În caz contrar va apărea din nou formularul (figura 5.1.3.) de autentifica re împreuna cu un
mesaj aferent de eroare a introducerii parolei și/sau a utilizatorului.

Figura 5.1.3. Formular de autentificare cu mesaj eroare

51

În cazul accesării butonului Studenti din meniu se vo r desfășura un submeniu cu mai multe
opțiuni, ca și în figura 5.1.4.

Figura 5.1.4. Meniu principal

La apăsarea oricărei opțiuni din submeniu se va afișa în pagină câte un formular aferent
fiecărei opțiuni ,vezi figura de mai jos 5.1.5.

Figura 5.1.5. Formular de adăugare al utilizatorilor de re țea

52

La opțiunea de C ăutare utilizatori se va desfășura un alt submeniu oferind posibilitatea de a
alege dacă se dorește căutarea după nume și prenume, dupa cum se vede in figura 5.1.6.

Figura 5.1.6. Meniu c ăutare
După selectarea celor două, prin acționarea butonului de Căutare din formular se vor afișa
studentii aparțin ând camerei selectate.
Butonul responsabili din meniu va afișa un s ubmeniu cu opțiunile de selectare a etajului (figura
5.1.7.si 5.1.8.), care permite alegerea tipului de adres ă dorită pentru prelucrare.

Figura 5.1.7. Detali etaje

53

Figura 5.1.8 Meniul principal

Ca și în cazul opțiunilor referitoare la responsabili pe etaje, și la activarea butoanelor din acest
submeniu se vor afișa formularele specifice fiecarei opțiuni , vezi figura 5.1.9.

Figura 5.1.9 Formular de adăugare a responsabililor pe etaj

54

Figura 5.1.10 . Meniul principal Oglinda MAC

La adăugarea unui student si o adresa MAC (figura 5.1.10.) se va încărca pagina ce conține
formularul cu datele necesare de completat pentru pentru a putea fi asignat.

Figura 5.1.11. Formular de ad ăugare a unui student și o adres ă MAC

55

Capitolul 6
Concluzii

Aplicația realizată poate fi utilizată cu ușurință de către administratorii de retea pentru
gestionarea bazei de date a utilizatorilor de retea unui camin studentesc.
Datorită cererii de au tentificare, un administrator nu are accesul la toata baza de date, ci doar
la informațiile privitoare la utilizatori săi, celelalte date fiind inaccesibile.
Proiectul permite adăugarea de noi utilizator, vizualizarea datelor despre aceștia, modificarea
datelor. Baza de date a fost creeată astfel încât informațiile pot fi introduse conform cu realitatea.
Administratorul serverului aplicației are dreptul de a gestiona, prin autentificare, tabela
corespuzătoare administratorului de retea, de a adăuga admin istratori de retea noi în sistem prin
crearea de cont după atribuirea unui user și a unei parole, de a modifica datele existente în legatură
cu un anumit administrator, sau de a șterge un administrator din baza de date.
Proiectarea interfețelor utilizator este un subiect care preocupă tot mai mult dezvoltatorii de
software. Deoarece aplicația realizată este adresată unui grup țintă, și anume administrator de retea,
cu o anumită pregătire profesională și culturală nevoia de interfață potrivită și centrată p e utilizator
(sau client) este stringentă. O interfață potrivită face ca aplicația să fie ușor de utilizat și învățarea
funcțiilor sale trebuie să se apropie de “natural” și să poată fi realizată în timp scurt, fără să fie nevoie
ca utilizatorul să comute pe alt gen de abordare decât cel pe care îl posedă prin cultură si pregătire
profesională.
Așadar, limbajul utilizat în realizarea interfeței conține termeni specifici administratorali, dar
care pot fi percepuți într -un mod facil de către cei cărora le es te destinată aplicația.

56

Bibliografie

1. Aurel Serb – Arhitectura și structura calculatoarelor – 2011
2. Alan F orbes – Bucuria de PHP: Un Ghi l începător pentru programarea Interactiv ă a aplica ției
web cu PHP si MySQL – 2012.
3. Buraga Sabin – Programa rea în Web 2.0, editura Polirom – 2007.
4. Ciprian Bogdan Chirila – Structuri de date și algoritm.Sist eme de Operare – Ed. Fundatiei I oan
Slavici" – 2007
5. Dr.Richard Stibbard – Aflați mai multe despre HTML5, CSS, PHP, MySQL, jQuery și AJAX:.
Proiect dinamic de dezvoltare a site -ul: Aflați întregul proces de … – 2014.
6. Eric Meyer – CSS Smashing: Tehnici profesionale pentru Aspect modern – 2010.
7. Filip Ioan – Sisteme de gestiune a bazelor de date , Editura orizonturi universitare, – 2007
8. Florin Molnar – Utilizare a și programarea calculatoarelor ,Funda ția "Ioan Slavici" – 2010
9. Horia Cioc ârlie – Tehnici de compilare – Editura Orizonturi – Timisoara 2010
10. James M. Coulter – PHP MySQL Ghid de programare – Ia site -urile dvs. și îl duce la nivelul
următor cu dinamic, ba ze de date, baza de cod de condus – 2013.
11. Justin Pot și Angela Alcorn – Invăța s ă construie ști cu PHP: un curs intensiv de Matthew
Hughes, – 2014.
12. Kevin Yank – Construie ște-ți propria bază de date Driven site -ul Web folosind PHP și MySQL –
2009.
13. Laura T homson – Dezvoltarea aplicațiilor Web cu PHP și MySQL, Editura Teora, – 2003 .
14. Paul DuBois – MySQL (5th Edition) (Biblioteca Developer) – 2013.
15. Riaz Ahmed – Dezvoltare Web în PHP, MySQL, JavaScript, HTML și CSS: Pas -cu-pas proiectare
web – 2014.
16. Titus Slav ici – Elemente fundamentale ale proiect ării și fabric ării asistate de calculator,Eurobit –
1999
17. Simon Stobart și David Parsons – Dezvoltare Dinamic ă a Application Web folosind PHP și
MySQL – 2008.
18. Vikram Vaswani – MySQL. Utilizarea si administrarea bazelor de date MySQL – 2010.
19. Vladimir Ioan Cretu – Dezvoltarea aplicațiilor timp -real. Concepte avansate – 2011.

Similar Posts