61116902-Lucrare-de-licenta

55
 Cuprins  Pagina GENERALITĂŢI..................................................................................................................................................2 CAPITOLUL 1.......................................................................................................................................................4 INTRODUCERE....................................................................................................................................................4 1.1.TEMA PROIECTULUI .............................................................................................................................................4 CAPITOLUL 2.......................................................................................................................................................6 TEHNOLOGII UTILIZATE................................................................................................................................ 6 2.1.PAGINI WEB ŞI SERVERE WEB.............................................................................................................................8 2.2.PAGINI WEB STATICE ŞI DINAMICE.......................................................................................................................9 HTML 9 JavaScript..............................................................................................................................................................9 Tehnologii pe parte de Client..............................................................................................................................10 URL-uri 10 2.3.LIMBAJUL PHP................................................................................................................................................11  NOŢIUNI FUNDAMENTALE........................................................................................................................................11 Ieşirea din modul HTML....................................................................................................................................13 Separarea instrucţiunilor.....................................................................................................................................14 Comentariile........................................................................................................................................................14 VARIABILE 15 Variabile predefinite ..........................................................................................................................................15 PHP Superglobals...............................................................................................................................................15 Folosirea variabilelor statice..............................................................................................................................15 2.4.BAZE DE DATE ..............................................................................................................................................17  Noţiuni generale............................................................................ ......................................................................17 2.5.LIMBAJUL SQL...............................................................................................................................................18 Caracteristici generale:.......................................................................................................................................18 Prezentarea limbajului SQL................................................................................................................................18 2.6.MYSQL........................................................................................................................................................20 PREZENTARE GENERALĂ...........................................................................................................................................20 CARACTERISTICILE  DE BAZĂ ALE MYSQL ................................................................................................................21 TIPURI DE DATE UTILIZATE DE MYSQL.....................................................................................................................21 ADMINISTRAREA BAZELOR  DE DATE MYSQL DIN LINIA DE COMANDĂ............................................................................21 CAPITOLUL 3.....................................................................................................................................................22 SPECIFICAŢIILE APLICAŢIEI......................................................................................................................22 3.1.PREZENTARE GENERALĂ.....................................................................................................................................22 3.2.PAGINA DE ACCES.............................................................................................................................................23 3.3.STOCAREA INFORMAŢIILOR .................................................................................................................................25 CAPITOLUL 4.....................................................................................................................................................28

Transcript of 61116902-Lucrare-de-licenta

Page 1: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 1/55

Cuprins

Pagina

GENERALITĂŢI..................................................................................................................................................2

CAPITOLUL 1.......................................................................................................................................................4

INTRODUCERE....................................................................................................................................................4

1.1.TEMA PROIECTULUI.............................................................................................................................................4

CAPITOLUL 2.......................................................................................................................................................6

TEHNOLOGII UTILIZATE................................................................................................................................6

2.1.PAGINI WEB ŞI SERVERE WEB.............................................................................................................................82.2.PAGINI WEB STATICE ŞI DINAMICE.......................................................................................................................9HTML 9JavaScript..............................................................................................................................................................9Tehnologii pe parte de Client..............................................................................................................................10URL-uri 102.3.LIMBAJUL PHP................................................................................................................................................11

 NOŢIUNI FUNDAMENTALE........................................................................................................................................11Ieşirea din modul HTML....................................................................................................................................13Separarea instrucţiunilor.....................................................................................................................................14Comentariile........................................................................................................................................................14VARIABILE15Variabile predefinite ..........................................................................................................................................15PHP Superglobals...............................................................................................................................................15Folosirea variabilelor statice..............................................................................................................................152.4.BAZE DE DATE ..............................................................................................................................................17 Noţiuni generale..................................................................................................................................................172.5.LIMBAJUL SQL...............................................................................................................................................18Caracteristici generale:.......................................................................................................................................18Prezentarea limbajului SQL................................................................................................................................18

2.6.MYSQL........................................................................................................................................................20PREZENTARE GENERALĂ...........................................................................................................................................20CARACTERISTICILE DE BAZĂ ALE MYSQL ................................................................................................................21TIPURI DE DATE UTILIZATE DE MYSQL.....................................................................................................................21ADMINISTRAREA BAZELOR  DE DATE MYSQL DIN LINIA DE COMANDĂ............................................................................21

CAPITOLUL 3.....................................................................................................................................................22

SPECIFICAŢIILE APLICAŢIEI..................................................................................................................... .22

3.1.PREZENTARE GENERALĂ.....................................................................................................................................223.2.PAGINA DE ACCES.............................................................................................................................................233.3.STOCAREA INFORMAŢIILOR .................................................................................................................................25

CAPITOLUL 4.....................................................................................................................................................28

Page 2: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 2/55

Universitatea de Nord Baia Mare

IMPLEMENTAREA ŞI UTILIZAREA APLICAŢIEI.......................................................................... .........28

4.1.CREAREA BAZEI DE DATE A APLICAŢIEI.................................................................................................................284.1.1.Crearea unei baze de date folosind XAMPP ............................................................................................28Baza de date a fost realizată cu aplicaţia XAMPP folosind phpMyAdmin........................................................284.2.I NTERFAŢA CU UTILIZATORUL..............................................................................................................................324.2.1.Înregistrare elevi........................................................................................................................................344.2.2.Recuperare parolă......................................................................................................................................374.3.TIPURI DE UTILIZATORI......................................................................................................................................394.3.1.Meniul pentru tipul administrator..............................................................................................................414.3.2.Meniul pentru tipul profesor......................................................................................................................454.3.3.Meniul pentru tipul elev.............................................................................................................................50

CAPITOLUL 5.....................................................................................................................................................53

5.1.CONCLUZII.......................................................................................................................................................535.2.POSIBILITĂŢI DE DEZVOLTARE.............................................................................................................................53

BIBLIOGRAFIE:................................................................................................................................................55

GENERALITĂŢI

Din cele mai vechi timpuri omul a simţit nevoia să cunoască spaţiul înconjurător, şimaterializarea gândirii sale într-un limbaj matematic de bază. Odată cu evoluţia omului auevoluat şi problemele acestuia, soluţia la aceasta a fost inventarea unei maşini de calcul ce îiva schimba radical modul de viaţă.

Dezvoltarea rapidă din ultima perioadă a resurselor software şi hardware din domeniultehnologiei informaţiei are un meritul de a oferi o mai bună comunicare şi un acces mult mairapid la toate categoriile de informaţii.

Prezenta lucrare cuprinde destul de detaliat aspecte teoretice şi practice alemodalităţilor de concepere şi implementare a aplicaţiei.Lucrarea este structurată în 5 capitole, fiecare capitol, la rândul lui având mai multe

subcapitole.

Capitolul 1 – Introducere reprezintă partea introductivă a lucrării, prezentareadomeniului din care face parte proiectul, a temei propriu-zise şi structurarea aplicaţiei.

Capitolul 2 – Tehologiile utilizate reprezintă o scurtă introducere a principalelor noţiuni legate de Internet. Sunt explicate noţiuni ca Internet, protocolale, aplicaţii pentruinternet, DNS, intrenet şi extranet, servere web şi aplicaţii web, pagini web statice şi

dinamice, limbaje de markup şi scripting, HTML, JavaScript. Limbajul PHP,este prezentat prin descrierea principalelor noţiuni legate de acest limbaj. Descrierea modului de includere a

2

Page 3: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 3/55

Universitatea de Nord Baia Mare

codului PHP în cadrul codului HTML, sunt prezentate tipurile de date pe care acest limbaj lesuportă şi tipurile de variabile care pot fi utilizate. Noţiunile de bază ale bazelor de daterelaţionale. Este prezentat modul de utilizare a MySQL, conectarea şi deconectarea de laserver, crearea şi selectarea bazelor de date, crearea tabelelor şi introducerea interogărilor.

Capitolul 3 – Specificaţiile aplicaţiei prezintă lucrarea. Prezentarea generală aaplicaţiei, interfaţa cu utilizatorul, şi modalitatea de stocare a informaţiilor şi a datelor.

Capitolul 4 – Implementarea şi utilizarea aplicaţiei cu interfaţa grafică reprezintădescrierea aplicaţiei. Implementarea acestui site a fost realizată folosind limbajul de server side scripting PHP datorită felxibilităţii acestuia şi a faptului că poate fi folosit gratuit, fărărestricţii. De asemenea, a fost ales sistemul de gestiune a bazelor de date relaţioale MySQLdatorită faptului că şi acesta poate fi folosit gratuită, Open Source este cel mai potrivit

 produs pentru accesarea şi administrarea bazelor de date prin Internet.De asemenea, este prezentat modul de creare a bazei de date a aplicaţiei Sistem de

management al Şcolarităţii Elevilor, crearea unor tabele (ex : admin si elevi).Interfaţa grafică a aplicaţiei este construită pe baza unui template, pe care toate

 paginile site-ului îl folosesc pentru a păstra acelaşi layout pe întregul site. De asemenea, pentru setarea modalităţilor de afişare a diferitelor elemente HTML, pentru alegerea stiluluisite-ului s-a folosit un fişier .css, acesta putând fi modificat sau înlocuit şi întregul site îşischimbă automat înfăţişarea.

Prin combinarea acestor două produse, PHP şi MySQL, aplicaţia realizată este foarteflexibilă, putându-se adăuga noi funcţionalităţi aplicaţiei.

Capitolul 5 – Concluzii  prezintă opinia mea personală despre aplicaţia realizată şi posibilităţile de dezvoltare a aplicaţiei.

3

Page 4: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 4/55

Universitatea de Nord Baia Mare

CAPITOLUL 1.

INTRODUCERE

Se poate spune, pe drept cuvânt că trăim într-o societate informatizată. În zilelenoastre, întâlnim calculatoare peste tot, de la micul magazin din colţ, care-şi ţine evidenţelesale cu ajutorul unui calculator şi până la ghişeul la care plătim abonamentele de telefonie,cablu TV, Internet, la examenele pentru permisul de conducere sau alte examene pentrudiferite domenii oricare ar fii acestea şi multe alte. Peste tot sunt calculatoare, legate eventualîntre ele şi formând astfel reţele de calculatoare. Toate acestea se datorează faptului că nedăm seama din ce în ce mai mult că sistemele de calcul, calculatoarele ne uşurează munca şiviaţa prin apariţia lor.

Să ne gândim puţin cât de mult s-a schimbat lumea de când au apărut calculatoarele.Înaintea apariţiei calculatoarelor orice tip de evidenţă era înregistrată pe hârtie, scrise cumâna sau în cel mai bun caz scrise cu dactilograful. Marele dezavantaj al acestei metode eracă acele hârtii se deteriorau cu timpul, sau pur şi simplu se pierdeau. Apariţia calculatoruluireprezenta o mare avansare în acest domeniu, dar totodată şi în alte domenii.

Oamenii nu mai erau nevoiţi să-şi ţină evidenţele pe hârtii, deoarece pur şi simpluintroduceau datele în calculator şi le salvau pe discul magnetic al acestuia. Şi aşa datele erauîntr-un loc sigur, securizat, unde nu se deteriorau, nici nu se pierdeau şi accesul la ele îlaveau doar persoanele care erau desemnate pentru utilizare si stricta securitate a disculuimagnetic.

1.1. Tema proiectului

4

Page 5: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 5/55

Universitatea de Nord Baia Mare

Omenirea prin evoluţia informatici care cu fiecare zi ce trece inbunătaţeşte viataomului şi cei tinerii devin batrâni, aşa este şi cu calculatoarele care au aparut era un număr minic dar acum oriunde te-ai duce mereu ai să vezi că oamenii lucrează pe calulatoare chiar dacă sunt dintre primele modele de fabricaţie mai sunt folosite dar vor ramâne in istorie. Nuexistă instituţii care să nu fie înzestrate cu calculatore şi diferitele programe pe care aceste

instituţii lucrează.Să ne gândim numai la bănci, casierii, hoteluri, magazine, toate folosesc calculatoare

 pentru aşi ţine evidenţele, trasfer de date şi multe altele.Profesorii folosesc calculatoare pe care sunt instalate diferite programe care uşurează

munca lor şi a altor cadre didactice, comunicarea dintre profesor şi elev la calculator dupăfinalizarea orelor de studiu face ca elevul sa acumuleze cat mai multă informaţie. Acest sitelucrează cu baze de date în care sunt înregistrate toate activităţile legate de notele unui elev :crearea conturilor de autentificare, adăugarea materiilor, adăugarea notelor de către profesori,afişarea notelor de către elevi, introducerea şi modificarea datelor personale etc.

Aplicaţia Sistem de management al Şcolarităţii Elevilor este o soluţie ideală pentru auşura munca profesorilor şi a elevilor. Această versiune a aplicaţiei Sistem de management alŞcolarităţii Elevilor, este destinată special a unei clase dintr-o unitate de invăţământ. Site-uleste structurat în 3 părţi diferite, pentru 3 tipuri de utilizatori diferiţi:

 Administrator : se ocupă de adăugarea numerelor matricole, adăugareamateriei, crearea şi administrarea conturilor 

 Profesor : are acces la adăugarea notelor, introducerea şi modificarea datelor  personale, afişarea colectivului de elevi, schimbarea parolei deautentificare

 Elev : are acces la vizualizarea notelor, adăugarea şi modificarea datelor   personale, afişarea colectivului de profesori, schimbarea parolei de

autentificareCele trei tipuri de utilizatori au privilegii diferite, aşa cum v-am presentat mai sus,

datele personale a fiecărui utilizator se pot modifica numai de către el insuşi. Notele fiecăruielev sunt confidenţiale, fiecare elev având acces numai la notele lui, in acest fel şi la

  profesori, situaţia elevului se poate vizualiza numai la materia predată de profesorulrespectiv. Acest lucru este util pentru, ca profesorul să nu fie influenţat de situaţia elevului lao altă materie, atunci când acesta adaugă o notă. Aceste probleme sunt exemplificate maiamănunţit in următoarele capitole.

Aplicaţia este utilă, atât pentru elevi cât şi pentru profesori. Prin intermediul acesteiaplicaţii este foarte uşor să ţinem evidenţa notelor şi să avem toate informaţiile despre elevi.

5

Page 6: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 6/55

Universitatea de Nord Baia Mare

CAPITOLUL 2.

TEHNOLOGII UTILIZATE

Calculatorul este folosit de dimineaţă la o cafea, la diferitele domenii de activitate şiseara cu finalizarea unui film, tot mai mulţi sunt aceia care, stând neclintiţi în faţacalculatoarelor, navighează prin reţeaua de calculatoare ce acoperă întreaga lume, călătorescşi activează in spaţiul cibernetic.

Pentru cercetătorul care descoperea libertatea de comunicare şi oferta internaţionalădin Internet, multitudinea de biblioteci, reviste şi grupuri de dezbatere, accesul la Internetseamănă cu un vis care nu se mai termină, vacanţa pe care urmează să o faci în Europa sauAmerica la distanţe foarte marii prin site-rile unde sunt prezentate locuri frumoase şi

utilizatorul stand in faţa calculatorului işi aduce lumea cea mare in afara calculatorului şimică la calculator.

Prin Internet înţelegem de obicei ansamblul reţelelor de calculatoare interconectatedin intreaga lume. De fapt, specialiştii susţin că Internetul nu este o reţea ci un ansamblu dereguli – protocoale de comunicaţie - care permit transferul de date între diferite reţele de peglob, accesul la informaţiile stocate în calculatoarele acestora.

Accesul la Internet este atât modul de conectare in reţea, cât, mai ales, accesul lainformaţia ce se vehiculează prin calculatoarele legate in reţea, posibilitatea de comunicaţiecu specialiştii din toată lumea întreagă.

Internetul este o gigantică reţea de calculatoare, mai precis, o reţea de reţele decalculatoare.Unele dintre aceste calculatoare oferă o diversitate de servicii pentru oameni.

Dezvoltarea internetului a fost foarte rapidă, în anul 1985, aproximativ 2000 decalculatoare erau legate la Internet. In momentul de faţă există zeci chiar sute de milioane de

6

Page 7: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 7/55

Universitatea de Nord Baia Mare

calculatoare conectate în întreaga lume, care permit accesul in reţea a unui număr foarte marede oameni. In fiecare an, comunitatea primeşte milioane de noi utilizatori care doresc sautilizeze internetul pentru a cunoaşte informaţii noi din domenii diferite.

Internetul în România a pătruns relativ încet, multă vreme fiind considerat un luxinutil. Chiar şi acum, pentru uz personal, mai ales datorită costurilor foarte mari ale

serviciilor telefonice, este destul de puţin utilizat. Din punct de vedere al infrastructuriilucrurile au avansat destul de mult, din punct de vedere al resurselor informatice disponibileevoluţia este destul de greoaie.

Majoritatea companiilor şi chiar unele structuri administrative au inţeles prezenţa înInternet că este foarte importantă, încă nu există resurse şi depozite informaţionale româneştisemnificative. Din acest motiv traficul observat in reţeaua românească este mai mult deaducere de informaţii din exterior decât de export de informaţii în cadrul ţării.In contextul internaţional actual de afaceri, academic şi tehnologic, fenomene ca globalizareaşi liberalizarea accesului la informaţie dinamică şi nivelul de performanţă al dezvoltărilor îndomeniul comunicaţiilor şi al calculatoarelor, sunt deja lucruri commune şi legate unele dealtele.

Dincolo de graniţe, in restul omenirii, Internetul a devenit deja cea mai comodă sursăde informaţie, in timp ce ceea ce este disponibil şi in România pe Internet este fie vechi, fieincorect, fie lipseşte prin costurile ridicate.

Pentru a ne da seama ce ne rezervă viitorul in privinţa reţelei Internet, trebuie săînţelegem tipurile de tehnologii elaborate de experţii implicaţi in dirijarea reţelei şi pentruutilizarea internetului cât mai uşor cu putinţă.

Colaborare

In dezvoltarea internetului s-au făcut mari progrese în domeniul conferinţelor video la distanţe marii.

De exemplu, există tehnologii care permit colaborarea la anumite documente prinintermediul reţelei. De asemenea putem lua parte la conferinţe audio şi chiar să folosim o„planşetă” electronică pentru a ne expune schemele şi proiectele, astfel încât acestea să poatăfi vizualizate de către toţi participanţii.

Obiecte

Creatorii paginilor Web nu mai sunt limitaţi la texte şi grafică, aşa incât putem fisiguri că vom găsi o mulţime de elemente interesante pe Web şi cu o viteză foarte mare deaccesare.

Câteva inovaţii recente permit chiar şi distribuirea de programe prin Web.

 Mesaje e-mail complexe Nu mai suntem limitaţi la mesaje simple de text.Limbajul HTML permite formatarea acestora, cu caractere aldine şi cursive, şi cu

diferite formate de paragraf. Mai mult decât atât, putem ataşa mesaje de e-mail, imagini şialte elemente multimedia.

 Securitate

Specialiştii din spatele reţelei Internet lucrează pentru a securiza comerţulon-line, oferind metode de protejare a tranzacţiilor din multitudinea de domenii deactivitate.

Ei crează un mediu mai sigur pentru copiii care se joacă pe Web, furnizând criterii deevaluare a paginilor, şi asigură securitatea rulării aplicaţiilor distribuite, prin autentificăride cod şi o securitate foarte bine pusă la punct.

7

Page 8: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 8/55

Universitatea de Nord Baia Mare

2.1. Pagini Web şi Servere Web

Construcţia World Wide Web este pe baza unui protocol numit  Hypertext Transfer  Protocol ( HTTP ). HTTP este un protocol mic şi rapid care se potriveşte foarte bine sistemelor informatice multimedia şi distribuite în salturile între site-uri.

Web-ul constă în pagini cu informaţii de pe gazde care rulează software de tip  server Web. Gazda este de multe ori identificată cu serverul Web, lucru care nu este corect.Serverul Web este un software, nu calculatorul în sine.

Un Web server  este un program care furnizează pagini Web la cerere. Când unutilizator de la o adresă IP specifică solicită un anumit fişier, serverul Web încearcă să obţinăacel fişier şi să-l trimită înapoi utilizatorului.

Fişierul solicitat poate fi codul sursă HTML al unei pagini Web, o imagine GIF, unfişier Flash, un document XML, sau un fişier AVI. Browserul Web este cel care determină

ceea ce trebuie cerut, nu serverul Web.Conexiunile la serverul Web stabilesc pe măsură ce sunt accesate, se solicită o cere aunei pagini de la un server Web, o conexiune IP este stabilită prin Internet între gazdasolicitantă şi gazda pe care rulează serverul Web. Pagina Web cerută este transmisă prin aceaconexiune, iar aceasta este întreruptă de îndată ce pagina este primită (de exemplu, imaginiGIF sau JPG).

Pe un acelaşi host pot rula mai multe aplicaţii de Internet, de exemplu un server Web,un server FTP, un server DNS şi un server de mail SMTP POP3 pot rula în acelaşi timp.

Fiecărui server îi este atribuit un  port pentru a asigura că fiecare server va răspundenumai cererilor din partea clienţilor corespunzători.

Majoritatea serverelor folosesc un set de porturi predefinite. Serverele Web folosesc

de obicei portul 80, dar acesta poate fi schimbat. Pot fi instalate pe porturi nestandard pentrua fi ascunse, şi de asemenea, pot fi instalate mai multe servere Web pe un singur calculator asociindu-le porturi diferite.

Internetul reprezintă o mulţime globala de calculatoare interconectate, similar uneireţele locale, dar la o scară mult mai largă. Elementul primar al Internet-ului este WorldWide Web (cunoscut sub denumirea de Web sau WWW ). WWW este un suport pentru text,grafică, animaţie şi sunet. Documentele destinate Web-ului sunt cunoscute sub numele de

 pagini Web.Pentru a înţelege mai bine World Wide Web se porneşte de la modul în care este

organizată informaţia în mediile tipărite. Aceste medii reprezintă un model adecvat pentruweb şi modul său de organizare.

Paginile Web oferă posibilitati multiple şi interesante: paginile de informaţii se potregăsi pe calculatoare răspândite în lumea întreagă. Paginile în sine pot fi documente foartecomplexe, interesante şi atractive.

Paginile Web sunt memorate pe HDD unui server specializat şi gestionate printr-unsoftware special şi sunt regasite şi afişate prin intermediul navigatoarelor Web (browser-e).

Navigatorul Web afişează paginile de Web prin interpretarea unor marcatori -definiţi cu ajutorul unui limbaj special denumit HTML (HyperText Markup Language) – utilizaţi pentru a codifica pagina de Web cu informaţia de afişat. Marcatorii au diferitesemnificaţii. De exemplu aceştia semnifică modul în care vor fi aşezate diversele părţi ale

 paginii sau stabilesc legături între documente/fişiere.Tipic, o pagină de Web este legată de o diversitate de fişiere cum ar fi fişiere text,

grafice sau multimedia. Mecanismul prin care sunt create căile de acces între documente estedenumit hipertext, prezentat anterior. Atunci când utilizatorul acţionează prin clic de mouse

8

Page 9: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 9/55

Universitatea de Nord Baia Mare

asupra unei legături, cum ar fi o porţiune de text, un element grafic, etc, navigatorul încarcăfişierul la care punctează aceasta legătura şi îl afişează. Legăturile din cadrul textului suntuşor de identificat deoarece majoritatea navigatoarelor, implicit, colorează diferit de restultextului aceste legături şi le subliniază.

Un site Web este definit ca o colecţie coerenta de informaţii prezentată sub forma

unor pagini Web, fişiere multimedia, documente şi de alte tipuri, între care există legături.

Intr-un site bine proiectat toate celelalte pagini punctează către pagina principală,chiar dacă navigatoarele moderne au butoane pentru acest lucru.

Atunci când se realizează un site Web aceste fişiere sunt păstrate, în mod uzual, într-un director sau o colecţie de directoare în HDD local şi este ferit cu numele de  site local .Serverul Web este dedicat memorării, transmiterii şi regăsirii paginilor de Web şi a fişierelor legate de acestea.

Prin publicarea unui site local (upload), directorul, împreună cu conţinutul său, estetransferat la server-ul Web care conţine Software-ul prin care site-ul este transmisnavigatoarelor Web ale calculatoarelor conectate la Internet. Odata publicat, site-ul setransformă din site local în site Web, iar interacţiunea utilizatorului cu el are loc similar modului descris in figura 1.

 Deşi cea mai mare parte a informaţiilor din World Wide Web este stocată în pagini

Web scrise folosind limbajul HTML, există un număr destul de mare de documente provenite

din alte tipuri de servicii de publicare a informaţiilor din Internet.

2.2. Pagini Web Statice şi Dinamice

HTML

Paginile Web sunt fişiere cu simplu text construite folosind limbajul Hypertext Markup Languag e ( HTML). Acesta este implementat ca o mulţime de tag-uri uşor de învăţat.

Autorii paginilor Web folosesc aceste tag-uri pentru a marca paginile de text, iar  browserele le folosesc pentru a ronda şi afişa informaţiile pentru a putea fi vizualizate.Paginile Web pot să conţină legături hypertext la alte pagini.

JavaScript

9

Page 10: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 10/55

Universitatea de Nord Baia Mare

HTML este un limbaj de markup. El permite crearea layout-ului paginilor şi aformularelor, dar nimic mai mult. Pentru a se construi interfeţe intuitive şi sofisticate estenecesar şi un limbaj de scripting  la nivel de client. Scripting -ul permite scrierea de cod (mici

 programe) care rulează în cadrul browserului.Cel mai cunoscut limbaj de scripting pe parte de client este  JavaScript , care este

suportat (mau mult sau mai puţin) de aproape orice browser existent. Folosind JavaScript se poate realiza: validarea formularelor, animarea textului şi a imaginilor, crearea de meniuridrop-down şi a controalelor de navigare, se pot efectua procesări de bază numerice sauasupra textelor şi multe altele.

Scripting-ul permite programatorilor să detecteze şi să proceseze evenimentele. Deexemplu, o pagină care se încarcă, un formular trimis, mişcarea pointer-ului mouse-uluiasupra unei imagini sunt toate evenimente, iar script-urile pot fi executate automat de browser atunci când aceste evenimente au loc.

Script-urile pot fi incluse în codul HTML sau pot fi stocate în fişiere externe şi legateîn interiorul codului HTML.

Tehnologii pe parte de Client

Majoritatea browserelor noi permit folosirea şi a altor tehnologii, dintre care cele maiimportante sunt:

- CSS (Cascading Style Sheets) – oferă o modalitate de a separa prezentarea de conţinutastfel încât ambele să poată fi refolosite şi modificate cu uşurinţă.

-  DHTML ( Dynamic HTML) – o combinaţie de HTML, script-uri şi CSS care folositeîmpreună, pot realiza interfeţe pentru utilizator foarte atractive şi interactive.

-  Appleturi Java – mici programe care rulează în browser.- Macromedia Flash – o tehnologie inclusă în 98% din browserele existente, care oferă

un mecanism pentru crearea unor interfeţe atractive şi portabile.

URL-uri

Formatul unei locaţii din Internet este numit URL ( Uniform Resource Locator – Descriptor Uniform de Resurse). Structura completă a unui URL este urmatoarea:

protocol://nume-calculator-gazda:port/cale-director/resursaProtocolul sau serviciul este reprezentat de regulile care guvernează transferul datelor 

în reţea. În practică se utilizează urmatoarele protocoale:o  file – specifică un URL local;

o http – indică adresa Internet a unei pagini Web sau altă resursă ;o  ftp – utilizat pentru adresarea în Internet a fişierelor prin intermediul protocolului de

transfer de fişiere FTP;o  gopher –  indică adresa URL a unui director Gopher; reprezintă un sistem utilizat

  pentru localizarea şi transferul informaţiilor de indexare a numelor fişierelor înInterent;

o telnet –  permite conectarea în timp real la un alt calculator în Internet şi utilizareaacestuia ca şi cum ar fi un calculator local.In sistemele Windows, în anumite situaţii protocolul poate lipsi pentru anumite

adrese, tipul acestuia fiind determinat din numele gazdei. Numele calculatorului gazdă identifică în mod unic un calculator în cadrul reţelei.

 Numele poate fi reprezentat atât printr-o adresa IP, cât şi prin denumirea unui calculator localsau a unui calculator din Internet folosind specificaţiile DNS.

10

Page 11: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 11/55

Universitatea de Nord Baia Mare

Portul este reprezentat printr-un număr şi este specific fiecărei aplicaţii. Majoritateaaplicaţiilor de reţea utilizează porturi pentru comunicare. Pe un calculator pot exista maimulte aplicaţii de reţea, fiecare aplicaţie utilizând un port distinct.

Numele resursei este reprezentat de numele fişierului referit. Acesta poate fi o paginaWeb, un fişier multimedia, un document, un fişier executabil.

O limitare o constituie faptul că un URL nu poate conţine spaţii şi alte caracterespeciale, astfel că orice spaţiu sau caracter special se va converti printr-un cod asociatacestora precedat de simbolul „%”.

Alte URL-uri folosite alături de cele prezentate sunt cele de:o e-mail, prin intermediul cărora se pot doar transmite mesaje de poştă electronică;o ştiri Usenet – în care trebuie să se identifice un server de ştiri care să ofere acces.

2.3. Limbajul PHP

 PHP , acronim care provine din " PHP:  H  ypertext  P re processor ", este un limbaj descripting utilizat pe scară largă, realizat şi distribuit în sistem Open Source, care este specialrealizat pentru a dezvolta aplicaţii web, prin integrarea codului PHP în documente HTML.Sintaxa sa provine din C, Java şi Perl şi este uşor de învăţat. Scopul principal al limbajuluieste acela de a scrie rapid pagini web dinamice, dar cu PHP se pot realiza mult mai multe.

PHP este una dintre cele mai interesante tehnologii existente în prezent. Deoareceîmbină caracteristici dintre cele mai complexe cu simplitatea în utilizare, PHP a devenit rapidun instrument de frunte pentru dezvoltarea aplicaţiilor în Web. Totuşi, spre deosebire de alteinstrumente populare pentru dezvoltarea aplicaţiilor Web, cum este Perl, PHP este un limbajde programare comod pentru începători, chiar şi pentru cei care nu au mai desfăşuratactivităţi de programare în trecut.

Ca şi alte limbaje de scripting pentru Web, PHP vă permite să furnizaţi un conţinutWeb dinamic, adică un conţinut Web care se modifică automat de la o zi la alta sau chiar dela un minut la altul. Conţinutul Web este un element important în susţinerea traficului unui sitWeb; de regulă, vizitatorii nu vor mai reveni la o pagină Web care conţine aceleaşi informaţiica şi cele prezentate la ultima vizită. Pe de altă parte, siturile Web frecvent actualizate potatrage cantităţi enorme de trafic.

Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP rulează pe serverul Web, nu în browserul Web. În consecinţă, PHP poate obţine accesul la fişiere, baze de date şi alte resurse inaccesibile programului JavaScript. Acestea constituie bogatesurse de conţinut dinamic, care atrag vizitatorii.

Noţiuni FundamentaleSpre deosebire de un script scris în alte limbaje cum ar fi Perl sau C – în loc de a

scrie un program cu o mulţime de comenzi pentru a produce un HTML, folosind PHP se poate scrie un script HTML, ca cel de mai jos, ce include cod pentru a realiza ceva.

Codul PHP este delimitat de coduri de start şi de sfârşit ce permit intrarea şi ieşireadin "modul PHP".<html>

<head><title>Exemplu</title>

</head>

<body><?php

11

Page 12: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 12/55

Universitatea de Nord Baia Mare

echo "Salut, sunt un script PHP!";?>

</body></html>

Diferenţa dintre PHP şi altceva cum ar fi JavaScript, este acela că PHP este executat pe server pe când JavaScript este executat pe calculatorul clientului (de browserul Web).Pentru un script similar celui de mai jos sus pe un server, clientul ar primi doar rezultatelescriptului ce este rulat, fără a vedea în nici un fel codul din spatele acestuia. Se poate chiar configura serverul de web ca acesta să proceseze toate fişierele HTML cu PHP şi astfel nuexită nici o metodă ca un utilizator să ştie de fapt ce există în fişiere.

Cu PHP se poate face orice. PHP este în principal axat pe partea de scripting cerulează pe server, deci poate face orice face şi un program CGI, cum ar fi colectarea de datede la formulare, generarea de conţinut dinamic sau trimitere şi primire de cookie-uri. Dar PHP poate face mult mai multe.

Există trei domenii principale unde sunt folosite scripturile PHP.

- Scripturi ce rulează pe server. Acesta este cel mai tradiţional şi cel mai important pentru PHP. Este nevoie de trei lucrui pentru a face să meargă: interpretorul PHP(CGI sau modul de server), un server web şi un browser web. E nevoie ca serverul deweb să fie pornit, cu o conexiune PHP instalată. Se poate accesa rezultatul

 programelor PHP cu un browser prin intermediul serverului de web.- Scripting în linie de comandă. Se poate face ca PHP să ruleze fără a fi nevoie de

server şi de browser, ci doar de interpretorul PHP. Această metodă este ideală pentruscript-urile ce se vor a fi executate de regulă folosind cron (task scheduler înWindows), sau sarcini simple de procesare a textelor.

- Scrierea de aplicaţii ce rulează de partea clientului în mod grafic (GUI). Probabil că

PHP nu este limbajul cel mai bun de a scrie aplicaţii cu ferestre pentru Windows saualte sisteme de operare, dar dacă este bine cunocut şi se doreşte folosirea unor facilităţi avansate ale PHP-ului în aplicaţiile ce rulează de partea clientului, se poatetotuşi folosi PHP-GTK pentru a scrie astfel de programe. De asemenea, există

  posibilitatea de a scrie aplicaţii ce rulează pe platforme diferite folosind aceastămetodă. PHP-GTK este o extensie a PHP-ului, nedisponibilă în distribuţia principalăde PHP.

PHP poate fi folosit pe aproape toate marile sisteme de operare, incluzând Linux,multe variante de Unix (incluzând HP-UX, Solaris şi OpenBSD), Microsoft Windows, MacOS X, RISC OS, probabil şi altele. PHP are de asemenea suport pentru majoritatea serverelor 

de web din prezent. Acestea includ serverele Apache, Microsoft Internet Information Server,Personal Web Server, Netscape şi iPlanet, serverul Oreillz Website Pro, Caudium, Xitami,OmniHTTPd, şi multe atele. Pentru majoritatea serverelor PHP are un modul, iar pentrucelelalte suportă standardul CGI, PHP putând să lucreze ca un procesor CGI.

Deci, cu PHP, există libertatea de a alege un sistem de operare şi un server de web.Chiar mai mult, există posibilitatea de a alege programarea procedurală sau programareaorientată obiect, sau chiar să se combine acestea. Cu toate acestea, nu orice facilitate astandardului POO este prezentă în versiunea curentă a PHP-ului, multe librării de cod şiaplicaţii mari (incluzând şi librăria PEAR) sunt scrise folosind doar cod POO.

Cu PHP programatorul nu este limitat să scoată rezultat HTML. Posibilităţile PHP-ului includ afişarea de imagine, fişiere PDF şi chiar filmuleţe Flash (folosind librăriile libswf şi Ming) toate generate instant. Se poate de asemeanea ca rezultatul să fie orice fişier text,cum ar fi XHTML sau orice alte fişiere XML. PHP poate genera automat aceste fişiere şi să

12

Page 13: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 13/55

Universitatea de Nord Baia Mare

le salveze în sistemul de fişiere în loc să le afişeze, formând un cache de partea serverului pentru conţinutul dinamic.

Una dintre cele mai puternice şi importante facilităţi în PHP este suportul său pentru ogamă largă de baze de date. Scrierea une pagini de web ce interacţionează cu o bază de dateeste incredibil de simplă. PHP suportă şi ODBC , standardul Open Database Connection, deci

se poate conecta la orice altă bază de date ce suporta acest standard mondial.PHP are de asemenea suport pentru a conversa cu alte servicii folosind protocoale

cum ar fi LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (pe Windows) şi multe altele.Se pot, de asemenea, deschide socket-uri de reţea şi se poate interacţiona între aproape toatelimbajele de programare Web. PHP are suport pentru instanţierea obiectelor Java şi utilizarealor într-un mod transparent ca obiecte PHP. Se pot de asemenea folosi extensii CORBA

 pentru a accesa obiecte aflate la distanţă.PHP are capabilităţi extrem de folositoare pentru procesarea textului, de la POSIX

Extins sau expresii regulare Perl, până la parsarea documentelor XML. Pentru parsarea şiaccesarea documentelor XML, suportă standardele SAX şi DOM.

Folosind PHP în domeniul comerţului electronic, sunt foarte folositoare pentru programul tău de plaţi online funcţii de plată Cybercash, CyberMUT, VeriSign Payflow Proşi CCVS.

În cele din urmă, dar nu în ultimul rând, PHP are şi alte extensii interesante, cum ar fifuncţii ale motorului de căutare mnoGoSearch, funcţii pentru accesarea IRC-ului, multeutilitare de compresie (gzip, bz2), conversie de calendar, traducere, etc.

Ieşirea din modul HTML

Când PHP interpretează un fişier trece prin textul acestuia până când întâlneşte unuldin tag-urile speciale care îi spun să pornească interpretarea textului ca fiind cod PHP. Maideparte, parser-ul execută tot codul întâlnit, până la întâlnirea unui tag PHP de închidere, careanunţă trecerea normală prin text, din nou.

Acest mecanism permite înglobarea codului PHP în interiorul codului HTML: totceea ce este în afara tag-urilor PHP este lăsat nemodificat, în timp ce tot ceea ce este îninterior este interpretat ca fiind cod.

Există patru categorii de tag-uri care pot fi folosite pentru a marca bolcurile de codPHP. Dintre acestea, doar două (<?php. . .?> şi <script language="php">. . .</script>)sunt întotdeauna disponibile. Cu toate ca tag-urile în format scurt şi cele de tip ASP par a ficonvenabile, ele nu sunt la fel de portabile ca cele în format lung. De asemenea, dacă sedoreşte includerea codului PHP în XML sau XHTML, este necesar să se folosească tag-urile

în forma <?php. . .?> pentru a corespunde standardului XMLCele patru tipuri de tag-uri sunt:1. <?php echo("daca vrei sa vezi documente XHTML sau XML, apasa aici\n"); ?>2. <? echo ("Acasta este o instructiune de procesare SGML \n"); ?>

<?= expression ?> Aceasta este un shortcut pentru "<? echo expresie ?>"3. <script language="php">

echo ("unele editoare (ca FrontPage) nu suporta instructiuni de procesare");  </script>4. <% echo ("Folositi tag ASP-style"); %>  <%= $variable; # Aceasta este un shortcut pentru "<% echo . . ." %>

Prima varianta, <?php. . .?>, este metoda preferată deoarece permite folosirea PHP-ului în cod corform standardului XML, cum ar fi XHTML.

13

Page 14: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 14/55

Universitatea de Nord Baia Mare

Cea de-a doua variantă nu este întotdeauna posibilă. Tag-urile prescurtate pot fifolosite doar dacă au fost activate. Acest lucru poate fi făcut prin intermediul funcţieishort_tags() (numai în PHP3), prin activarea opţiunii short_open_tag în fişierul deconfigurare, sau prin compilarea scripturilor folosind opţiunea enable-short-tags. Chiar dacăeste implicit activată în fişierul php.ini, folosirea tag-urilor prescurtate nu este recomandată.

Cea de-a patra variantă poate fi folosită numai dacă tag-urile de tip ASP au fostactivate folosind setarea asp_tags din fişierul de configurare.

PHP permite folosirea unor structuri ca cea de mai jos:<?phpif ($expresie) {

?><strong>Este adevarat.</strong><?php

} else {?>

<strong>Este fals.</strong><?php}?>

Aceasta funcţionează exact cum este de aşteptat, deoarece când PHP întâlneşte tag-ulde închidere ?> începe afişarea a ceea ce întâlneşte până la apariţia unui alt tag de start.

În cazul blocurilor mari de text, ieşirea din modul PHP este în general mai eficientădecât trimiterea textului folosind echo() sau print().

Separarea instrucţiunilor

Instrucţiunile sunt separate la fel ca în C sau Perl – fiecare instrucţiune este terminatăcu un semn punct şi virgulă.

Tag-ul de închidere implică şi sfârşitul instrucţiunii, deci următoarele două exemplesunt echivalente:<?php

echo "Test";?><?php echo "Test" ?>

Comentariile

PHP suportă comentarii de tip 'C', 'C++' şi Unix shell. De exemplu:<?php

echo "Test1"; // Comment pe o linie de tip C++echo "Test2";echo " Test3"; # Comment pe o linie de tip Unix shell

?>Comentariul pe o sigură linie, de fapt realizează comentarea codului până la sfârşitul

liniei curente sau până la terminarea blocului curent PHP, oricare din aceste două cazuriapare primul.

Tipuri de date

PHP suportă opt tipuri primitive de date.

14

Page 15: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 15/55

Universitatea de Nord Baia Mare

Patru tipuri scalare: boolean, integer , float (numere în virgulă mobilă, sau ‘double’) şistring.

Două tipuri compuse: array, obiect.Două tipuri speciale: resource, NULL.Tipul unei variabile, de obicei nu este stabilit de programator, ci este decis la rulare de

PHP, în funcţie de contextul în care acea variabilă este folosită.

VariabileÎn PHP variabilele sunt reprezentate folosind un semn dollar urmat de numele

variabilei. Numele variabilelor sunt case-sensitive.

Variabile predefinite

PHP furnizează un număr larg de variabile predefinite. Multe din aceste variabile, nu  pot fi documetate complet deoarece sunt dependente de serverul pe care rulează, de

versiunea şi setarea acestuia precum şi de alţi factori.Unele din aceste variabile nu vor fi folosite când PHP rulează în linie de comandă.

PHP Superglobals

$GLOBALS -  Conţine o referinţă la fiecare variabilă care este în mod curent valabilă în

scopul global al script-ului. Cheile acestui şir sunt numele variabilelor globale.$_SERVER - Reprezintă variabilele setate de serverul de web sau legate direct de mediul deexecuţie al scriptului curent.$_GET - Reprezintă variabilele oferite scritpt-ului direct prin HTTP GET. Analog vechiuluişir $HTTP_GET_VARS (care încă este valabil, dar depreciat).$_POST - Reprezintă variabilele oferite scritpului direct prin HTTP POST. Analog vechiuluişir $HTTP_POST_VARS (care încă este valabil, dar depreciat).$_COOKIE - Reprezintă variabilele oferite scritpului direct prin HTTP. Analog vechiului şir $HTTP_COOKIE_VARS (care încă este valabil, dar depreciat).$_FILES - Reprezintă variabilele oferite scritpului prin upload-ul de fişiere folosind modulPOST din HTTP. Analog vechiului şir $HTTP_POST_FILES (care încă este valabil, dar 

depreciat).$_ENV - Reprezintă variabilele oferite scritpt-ului prin mediu. Analog vechiului şir $HTTP_ENV_VARS (care încă este valabil, dar depreciat).$_REQUEST - Reprezintă variabilele oferite scritpt-ului prin mecanismele de input GET,POST, şi COOKIE, deci care nu pot fi de încredere.$_SESSION - Reprezintă variabilele registrate unei sesiuni a script-ului. Analog vechiului şir $HTTP_SESSION_VARS (care încă este valabil, dar depreciat).

Folosirea variabilelor statice

15

Page 16: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 16/55

Universitatea de Nord Baia Mare

O importantă caracteristică a scope-ului variabilei o reprezintă variabila statică. Ovariabilă statică există în scope-ul funcţiei locale, dar nu îşi pierde valoarea când execuţia

 programului părăseşte acest scope. Să considerăm următorul exemplu:

<?php

function Test () {$a = 0;echo $a;$a++;

} ?>

Această funcţie este destul de nefolositoare deoarece de fiecare dată este apelată săseteze valorea 0 variabilelei $a şi să printeze "0".

Instrucţiunea $a++ care incrementează variabila nu serveşte nici unui scop deoarce,de îndată ce funcţia iese, variabila dispare. Pentru folosirea unei funcţii de numărare care nu

va mai pierde număratoarea curentă, variabiala $a este declarată statică.

<?phpfunction Test(){

static $a = 0;echo $a;$a++;

}?>

Astfel, de fiecare dată când funcţia Test() este apelată, aceasta va afişa valoareavariabilei $a şi o va incrementa.

Variabilele statice oferă, de asemenea, un mod de a lucra cu funcţiile recursive. Ofuncţie recursivă este o funcţie care se autoapelează. Trebuie avută grijă la scrierea uneifuncţii recursive, deoarece este posibilă realizarea unei recursii infinite. Trebuie asigurat unmod de a termina recursia. Următoarea funcţie recursivă simplă numără până la 10, folosindvariabila statică $count pentru a ştii când să se oprească:

<?phpfunction Test(){

static $count = 0;

$count++;echo $count;if ($count < 10) {

Test ();}$count--;

}?>

Formulare HTML (GET şi POST)

16

Page 17: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 17/55

Universitatea de Nord Baia Mare

Când un formular este trimis unui scrip PHP, informaţiile din acel formular suntautomat transmise scriptului PHP. Sunt mai multe modalităţi de a accesa informaţia, deexemplu:<form action="foo.php" method="POST">

Name: <input type="text" name="username"><br>

Email: <input type="text" name="email"><br><input type="submit" name="submit" value="Submit me!">

</form>În funcţie de setările şi preferinţele particulare, sunt multe modalităţi de a accesa

datele din formulare HTML. Câteva exemple:

<?php// Available since PHP 4.1.0

print $_POST['username'];print $_REQUEST['username'];import_request_variables('p', 'p_');print $p_username;

// Available since PHP 3. As of PHP 5.0.0, these long predefined// variables can be disabled with the register_long_arrays directive.

print $HTTP_POST_VARS['username'];// Available if the PHP directive register_globals = on. As of // PHP 4.2.0 the default value of register_globals = off.// Using/relying on this method is not preferred.

print $username;?>

Folosirea unui formular de tip GET este similară, cu deosebirea că se va folosi variabila  predefinită GET în schimb. GET se poate folosi şi pentru extragerea informţiilor dinQUERY_STRING (informaţiile de după semnul ? din URL). De exemplu, URL-ulhttp://www.example.com/test.php?id=3 conţine date GET care sunt accesibile prin $_GET['id'].

2.4. Baze De DateNoţiuni generale

Bazele de date au devenit o componentă esenţială a vieţii de fiecare zi în societatea

modernă. În cursul oricărei zile, fiecare dintre noi desfăşurăm activităţi care implicăinteracţiunea cu o bază de date, ca de exemplu, depunerea sau extragerea unor sume de banidin bancă, rezervarea biletelor la tren sau avion, rezervarea locurilor la hotel, căutarea uneireferinţe bibiografice într-o bibliotecă computerizată (digital library), etc.

În sensul cel mai larg, o bază de date (database) este o colecţie de date corelate din punct de vedere logic, care reflectă un anumit aspect al lumii reale şi este destinată unuianumit grup de utilizatori. O bază de date poate fi creată şi menţinută manual (de exemplu,fişele de evidenţă a cărţilor dintr-o bibliotecă, aşa cum erau folosite cu ani în urmă) saucomputerizat, ceea ce reprezintă obiectul cursului de faţă.

O bază de date trebuie să asigure:• abstractizarea datelor (baza de date fiind un model al realităţii),

17

Page 18: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 18/55

Universitatea de Nord Baia Mare

• integrarea datelor (baza de date este un ansamblu de colecţii de date intercorelate, curedundanţă controlată),

• integritatea datelor  (se referă  la corectitudinea datelor încarcate  şi manipulate astfelîncât să se respecte restricţiile de integritate),

•  securitatea datelor (limitarea accesului la baza de date), •   partajarea datelor (datele pot fi accesate de mai mulţi utilizatori, eventual în acelaşi

timp),• independenţa datelor  (organizarea datelor să  fie transparentă   pentru utilizatori,

modificările în baza de date să nu afecteze programele de aplicaţii).

2.5. Limbajul SQL

SQL (Structured Query Language - Limbaj Structurat de Interogare) , apărut în 1970este un limbaj de programare specific lucrului cu bazele de date, devenit un standard îndomeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru creearea,

modificarea, regăsirea şi manipularea datelor de către SGBD-urile (Sistemele de Gestiune aBazelor de Date) relaţionale.

Caracteristici generale:• SQL conţine atât componenţa de descriere a datelor (LDD), cât şi componenţa de

manipulare a datelor (LMD);• Manipularea (interogarea) este partea extinsă;•   Limbaj neprocedural : secvenţa de comenzi (instrucţiuni), fiecare comandă este

transmisă SGBD-ului, este interpretată şi returnează un rezultat.

Prezentarea limbajului SQL

Standardul SQL3 (SQL ’98) defineşte modelul obiect-relaţional de baze de date.Structura sintactica: limbajul este compus din instrucţiuni (comenzi). O comandă

SQL este o secvenţă de elemente componente (token). Elementele componente pot fi: cuvintecheie, identificatori, caractere speciale şi constante (literali).

Cuvintele cheie şi identificatoriiAceştia au o structură lexicală identică. Lexical, un cuvânt cheie sau un identificator 

inseamnă o secvenţă de litere şi caracterul ‘_’.Din punct de vedere semantic, cuvintele cheie sunt elemente cu semnificaţie fixa în

limbaj:

- nume de comenzi (clauze): SELECT, INSERT, etc;exemplu de SELECT:SELECT * FROM elevi WHERE adminID='{$_SESSION['logat_elev_id']}'

//scoate datele elevului autentificat din baza de date- tipuri de date: integer, numeric, char, varchar, etc.

Limbajul SQL nu diferenţiază caracterele mari de cele mici: este case insensitive.Identificatorii au aceeaşi structură lexicală; din punct de vedere semantic reprezintă

nume într-o comandă şi pot fi: nume de tabele, de coloane, etc. SQL foloseşte termenii detabel, coloană şi linie pentru relaţie, atribut şi tuplu (cei subliniaţi sunt cei folosiţi în definireamatematică a modelului relaţional).

Identificatorii sunt:- obişnuiţi (simpli): Secţie, ANGAJAT, etc;

18

Page 19: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 19/55

Universitatea de Nord Baia Mare

- delimitaţi: reprezintă un nume pus între ghilimele, care poate să conţină orice fel decaractere. Un identificator delimitat este folosit, în general, pentru un nume mai mare detabel.

Constantele

Constantele pot fi:- de tip număr întreg: ex 1234 (reprezentate pe 4 octeţi);- de tip număr real: ex 12.5, 12e5 (reprezentate de 8 octeţi, în formatul double);- de tip şir de caractere: ex “Acesta este un şir”;- de tip NULL: constanta specială, reprezintă lipsa de informaţie.

Caracterele speciale

- operatori (+,-,…);- “;” termină o comanda;

- punctul zecimal (constante reale, codificări ale coloanelor);- separatorii: blank, TAB, CR ; sunt ceruţi uneori între elemente.

Operatori, expresii şi funcţii SQL

Operatorii SQL: pot fi reprezentaţi prin unul sau mai multe caractere speciale (+, <,…) sau prin cuvinte cheie (AND, OR, NOT, UNION).Operatorii pot fi clasificaţi:

- operatori binari: au nevoie de doi operanzi;- operatori unari: se aplică unui singur operand şi pot fi postfixe sau prefixe.

- aritmetici: +, -, <, <=, <> (!=);- logici: AND, OR, NOT.Operatorii logici se aplica asupra unor valori ternare (o valoare ce reprezintă un

operand ce poate avea valoare TRUE (1), FALSE (0) şi NULL (lipsă de informaţie)). Nu există tipul de date boolean asupra caruia să se aplice operatorii logici dar 

operatorii de comparaţie returnează o valoare booleana.Operatorii de comparaţie evaluează orice expresie la o valoare logica (bool): TRUE,

FALSE. Tipul boolean există însa incepând din SQL3. Operatorii de comparaţie pot fi:• aritmetici: <, >, <=, >=, =, != (<>);• relaţionali

o A BETWEEN val_min val_max;o A LIKE model_şir -> A şir;o A IS NULL sau A IS NOT NULL;o A IN lista_valori.

  O expresie SQL este o expresie formată din operanzi, operatori şi paranteze.Operatorii, în general, sunt nume de coloane (se va folosi valoare atributului definit de acea

coloană) sau o constantă.Orice expresie se evaluează la o valoare care poate fi apoi folosită în alte operaţii.

Funcţiile SQL:

-  funcţii totalizatoare (de grupare): calculează anumite valori pentru coloane dintabele: SUM, AVE, MIN, MAX, …;

-  funcţii matematice: calcule trigonometrice, puteri, logaritmi, rotunjiri;

19

Page 20: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 20/55

Universitatea de Nord Baia Mare

-  funcţii pentru şiruri;-  funcţii pentru date calendaristice;-  funcţii pentru conversii. 

Ex: calcularea medieiSELECT (SUM(nota)/count(*)) as avg FROM note WHERE

adminID='{$_SESSION['logat_elev_id']}'

Comenzi SQL

Există două tipuri de comenzi:A. Comenzi de creeare a tabelelor, de ştergere a tabelelor şi de modificare a

tabelelor formează comenzile de definire a datelor (Limbaj de definire adatelor);

B. Comenzile de manevrare a datelor (LMD): SELECT (interogările de baza),INSERT, UPDATE, DELETE.

Ex:  SELECT n.*, e.* FROM note n LEFT JOIN elevi e ON n.elevID=e.elevIDWHERE e.adminID='{$_SESSION['logat_elev_id']}' ORDER by notaID ASC

SQL asigură toate operaţiile care se consideră necesare într-o bază de date.

2.6. MYSQL

Prezentare generală

MySQL este un sistem de gestiune a bazelor de date relaţional, produs de companiasuedeză MySQL AB şi distribuit sub Licenţă Publică Generală GNU. Este cel mai popular SGBD open-source la ora actuală, fiind o componentă cheie a stivei LAMP(Linux, Apache,

MySQL, PHP).Deşi este folosit foarte des împreună cu limbajelel de programare JAVA,PHP, cu

MySQL se pot construi aplicaţii în orice limbaj major. Există multe scheme API disponibile pentru MySQL ce permit scrierea aplicaţiilor în numeroase limbaje de programare pentruaccesarea bazelor de date MySQL, cum are fi: C, C++, C#, Borland Delphi, Java, Perl, PHP,Python, FreeBasic, etc., fiecare dintre acestea folosind un tip spefic API. O interfaţă de tipODBC denumită MyODBC permite altor limbaje de programare ce folosesc această interfaţă,să interacţioneze cu bazele de date MySQL cum ar fi ASP sau Visual Basic.

În multe cărţi de specialitate este precizat faptul că MySQL este mult mai uşor deinvăţat şi folosit decât multe din aplicaţiile de gestiune a bazelor de date, ca exemplu

comanda de ieşire fiind una simplă şi evidentă: „exit” sau „quit”.Pentru a administra bazele de date MySQL se poate folosi modul linie de comandăsau, prin descărcare de pe internet, o interfaţă grafică: MySQL Administrator şi MySQLQuery Browser. Un alt instrument de management al acestor baze de date este aplicaţia SQLManager.

MySQL poate fi rulat pe multe dintre platformele software existente: AIX, FreeBSD,GNU/Linux, Mac OS X, NetBSD, Solaris, SunOS, Windows 9x/NT/2000/XP/Vista.

Serverul de baze de date MySQL este foarte rapid, fiabil şi uşor de utilizat. Iniţial afost dezvoltat pentru a manipula baze de date de dimensiuni mari mult mai rapid decâtsoluţiile existente.

MySQL Database Software este un sistem client/server ce constă într-un server 

MySQL multithreaded care suportă diferite programe client şi biblioteci, unelte

20

Page 21: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 21/55

Universitatea de Nord Baia Mare

administrative şi o gamă largă de interfeţe pentru programarea aplicaţiilor (ApplicationProgramming Interfaces – APIs)

Caracteristicile de bază ale MySQL

Câteva dintre caracteristicile de bază ale MySQL sunt:- Funcţionează pe diferite platforme- Dispune de API pentru C, C++, Eiffel, Java, Perl, PHP, Pyton, Ruby şi Tcl- Complet multi-threaded folosind thread-uri de kernel. Acest lucru înseamnă că poate

lucra cu uşuinţă pe mai multe procesoare dacă sunt disponibile- Un sistem de alocare a memoriei foarte rapid şi bazat pe thread-uri- Foloseşte tabele temporare stocate în memorie- Funcţiile SQL sunt implementate folosind o bibliotecă de clase optimizată şi sunt foarte

rapide. De obicei, nu are loc alocare a memoriei după iniţializarea interogărilor.-

Serverul este disponibil ca program separat ce poate fi folosit într-un mediu de reţea detip client/server. De asemenea, este disponibil şi ca bibliotecă ce poate fi inclusă înaplicaţii de sine stătătoare

- Oferă motoare tranzacţionale şi non-tranzacţionale de stocare a datelor 

Tipuri de date utilizate de MySQL

Tipurile de date care apar în coloanele MySQL sunt diferite în funcţie de tipul lor.MySQL alocă spaţiu pe disc în funcţie de tipul de date specificat de utilizator. Iată şi tipurilede date, spaţiul pe care îl ocupă precum şi valorile minime şi maxime pe care le pot avea:

Tipul de câmp TIMESTAMP oferă posibilitatea de a data automat operaţiile de tipINSERT şi UPDATE. El este compus implicit din 14 caractere pentru formatul'YYYYMMDDhhmmss' dar putem să specificăm la crearea unui tabel că dorim să conţinămai puţine caractere.Tipurile de string-uri în MySQL sunt BLOB, TEXT, CHAR, VARCHAR, ENUM şi SET. Întabelul următor puteţi vedea marimea maximă admisă pentru cele mai folosite dintre ele

 precum şi spaţiul alocat pe disc pentru fiecare:Câmpul de tip BLOB poate conţine o cantitate variabilă de informaţie, similar cu

TEXT însa diferit printr-un singur aspect: căutarea într-un câmp BLOB este case sensitive (seface diferenţă între majuscule şi minuscule), iar într-un câmp TEXT nu este. TipulVARCHAR este similar tipului TEXT cu deosebirea ca într-o coloană de tip VARCHAR 

 putem specifica numărul maxim de caractere admise.

Administrarea bazelor de date MySQL din linia de comandă

În cazul unui sistem de operare Windows, conectarea pentru a lucra în mod interactivcu cu serverul MySQL instalat pe acelaşi calculator realizează lansând în execuţie monitorulMySQL numit mysql.exe din directorul mysql/bin:

C:\mysql\bin>mysql.exeWelcome to MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 3 to server version: 4.0.15-nt Type ’help;’ or ’\h’ for help.Type ’\c’ to clear the buffer.

21

Page 22: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 22/55

Universitatea de Nord Baia Mare

mysql>_ Comenzile SQL se pot scrie cu litere mari sau mici, având acelaşi efect. Comenzile SQL setermină, uzual, cu caracterul “ ; “. Dând comanda help; (sau \h sau ?) pe ecran apar o serie decomenzi MySQL importante.Câteva comenzi din linia de comandă:

-create database - crează o bază de date-use - se selectează o bază de date-create table - se crează tabele-alter - modificarea definiţiei unei tabele se realizează folosind comanda alter -insert - adăugare de înregistrări într-un tabel-update - permite modificarea valorilor unor câmpuri dintr-un tabel-drop - permite suprimarea unui tabel din baza de date- show - se foloseşte pentru listarea tabelelor care alcătuiesc baza de date- select  - este cea mai complexă comandă din limbajul SQL şi este destinată regăsirii

unor anumite date-quit - determină întreruperea conexiunii cu serverul MySQL

CAPITOLUL 3.SPECIFICAŢIILE APLICAŢIEI

3.1. Prezentare generală

Odată ce omul a devenit o fiinţă economică (homo oeconomicus) putem presupune caa apărut şi nevoia de măsurare şi înregistrare a activităţii sale economice desfăşurate la nivelindividual sau comunitar.

Conţinutul informaţional din întreaga lume în zilele noastre este convertit la o formădigitală, făcând astfel informaţiile disponibile oricui, oriunde şi oricând. Prin intermediulsistemelor informatice, multe dintre activităţile pe care omul le întreprinde pot fi uşurate şichiar îmbunătăţite.

Apariţia calculatoarelor şi folosirea lor în toate domeniile a reprezentat o dezvoltaremajoră în viata omenirii. Din acea zi în care omul a început să folosească calculatorul fie

 pentru nevoile personale, fie pentru nevoile comunităţii, a realizat că îşi uşurează viaţa şi că

 poate să realizeze lucruri pe care până atunci nu putea, sau le făcea cu muncă grea.

22

Page 23: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 23/55

Universitatea de Nord Baia Mare

Să ne gândim puţin cum lucrau institutele de invăţământ înaintea apariţieicalculatoarelor. Notele erau introduse în catalog de hârtie. Gândiţi-vă ce cantitate de hârtii s-a adunat, şi pentru stocarea acestora era necesar un spaţiu de depozitare mare. Era doar undezavantaj al inexisteţei calculatoarelor. Alt dezavantaj ar fi faptul că înregistrările, datele,nu erau în siguranţă, nu erau protejate. Calculatoru prin apariţia lui a rezolvat toate

dezavantajele şi defectele trecutului. Şcolile din zilele noastre folosesc calculatoare şi programe diferite pentru îndeplinirea serviciilor, simplificând sarcinile omului.

Aplicaţia Sistem de management al Şcolarităţii Elevilor a fost proiectată să fieutilizată de către profesorii şi elevii unei clase. Este concepută în aşa fel încât să fie uşor deînţeles şi de folosit. Persoanele care vor folosi acest program nu necesită cunoştinţesuperioare în domeniul informaticii. Proiectul conţine doar ferestre, butoane, câmpuri deintroducere a datelor, şi tabele, iar utilizarea acestora este foarte simplă. Adăugarea, ştergereaelevilor si a profesorilor, crearea, modificarea conturilor sunt doar câteva dintre operaţiilecare se pot face în interiorul aplicaţiei. Aplicaţia dispune şi de o parte care trimite în cazul încare un elev şi-a uitat parola de autentificare.

3.2. Pagina de acces

Fişierul predefinit pentru directorul web catalog este index.php, deci înseamnă căatunci când accesăm serverul prin comanda http://localhost/catalog/ serverul va trimitefişierul de bază, adică prima pagină a site-ului (index.php) ce va fi afişat în browser (Fig 3.1).

 Fig 3.1 Pagina principala

23

Page 24: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 24/55

Universitatea de Nord Baia Mare

Asa cum puteţi vedea, prima magina reprezintă pagina de autentificare. Paginile suntconcepute astfel ca să fie uşor de folosit de elevi si profesori. Prin intermediul acestei pagini

  pot accesa utilizatorii datele personale si informatiile asupra notelor obtinute la fiecarematerie.

Design-ul paginii a fost realizat in Adobe Dreamweaver, desi unii creatori de pagini

web critică aceste tipuri de editoare deoarece produc pagini de dimensiuni mult mai maridecât ar fi necesar, ceea ce conduce la o funcţionare neperformantă a browserelor web.

Afirmaţia in sine este în mare parte adevarată deoarece paginile web produse folosescdesign-ul pe bază de tabel. În plus, produsul a mai fost criticat în trecut şi pentru producereade coduri care adesea nu erau conform standardelor W3C, dar acest aspect a fost multîmbunătăţit în versiunile recente. Cu toate acestea, Macromedia a crescut suportul pentrutehnologia CSS precum şi alte modalităţi de design fără a fi necesară folosirea design-ului pe

 bază de tabel.Dreamweaver permite folosirea majorităţii browserelor instalate pe calculatorul

utilizatorului, pentru a previzualiza website-ul creat. De asemenea conţine şi câteva utilitare pentru administrarea site-urilor, cum ar fi cele pentru a găsi şi modifica un paragraf sau olinie de cod, în întregul web site, pe baza oricăror parametri specificaţi de către utilizator. Cuajutorul panourilor de stare se poate crea cod JavaScript fără a avea cunoştinţe de

 programare.

 Fig 3.2 Dreamweaver CS3

Odată cu apariţia versiunii MX, Macromedia a încorporat utilitare de generaredinamică a conţinutului. De asemenea este oferit suport pentru conectarea la baze de date(cum ar fi MySQL şi Microsoft Access) pentru a filtra şi afişa conţinutul folosind script-uride 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 poatescrie (de obicei în HTML şi JavaScript) şi pe care oricine le poate descarca şi instala, acestea

24

Page 25: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 25/55

Universitatea de Nord Baia Mare

aducând un spor de performanţă şi funcţionalitate îmbunătăţită programului. Există ocomunitate de dezvoltatori care produc aceste extensii şi le publică (atât comercial cât şigratuit) pentru probleme de dezvoltare web, de la simple efecte rollover până la soluţiicomplete de vânzare online.

Header-ul conţine două poze: prima conţine titlul lucrării. Am prelucrat această poză

folosind Adobe Photoshop, adăugând două pictograme. După cum aţi observat, de pe prima pagină elevii au posibilitatea de înregistrare şi recuperare parolă. Funcţiile celor două link-urivă voi prezentate mai în amănunte în următorul capitol.

 Fig 3.3 Photoshop CS3

3.3. Stocarea informaţiilor

O aplicaţie pentru web prelucrează date de diferite naturi: siruri de caractere, valorilenumerice, date calendaristice etc. Exemple : denumiri de materii, nume de utilizatori, parole,adrese de e-mail, note, data primirii notelor etc. Informaţiile păstrate într-o bază de date

relaţională sunt dispuse într-un ansamblu de fisiere. Din considerente legate de crestereavitezei de accesare a informaţiilor, fisierele sunt formate din articole având aceeasi structură.Articolele au o structura a unui fisier de date este definită la crearea sa, prin precizareacâmpurilor pe care le va conţine fiecare articol.

Un câmp dintr-un articol conţine o informaţie elementară. Fiecare câmp are un nume,conţine un tip de informaţie (sir de caractere, număr, dată calendaristică, fisier etc.), are olungime de reprezentare a informaţiei si, În cazul pentru câmpurilor numerice, are precizatnumărul de zecimale. Datorită faptului că formatul articolului este fix, frecvent se foloseste

 pentru fisier o reprezentare tabelară si chiar se foloseste pentru fisierele de date denumirea de"tabele".

O aplicaţie de tip server este un program care asteaptă comenzi din partea unor 

aplicaţii client. În cazul serverelor de baze de date relaţionale (Oracle, MySQL, IBM DB2,

25

Page 26: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 26/55

Universitatea de Nord Baia Mare

Microsoft Access, OpenOffice Base etc.) se foloseste limbajul SQL (Structured QueryLanguage).

In stocarea informatiilor introduse in baza de date am folosit XAMPP-ul, care este un pachet de aplicaţii care constituie infrastructura software necesară găzduirii saiturilor web:server de web (Apache), server de baze de date (MySQL), interpretoare pentru scripturi scrise

în limbajele PHP si PERL. Pentru a putea fi folosit pe servere care găzduiesc saituri, dupăinstalarea pachetului de aplicaţii trebuie operate unele configurări, mai ales pentruameliorarea securităţii acestor pachete.

XAMPP a fost creat însă pentru a pune la dispoziţia dezvoltatorilor un instrumenteficient de testare a diferitelor aplicatii in dezvltare. Odată instalat pe calculatorul propriu,

 pachetul de aplicaţii va face ca acesta să aibă comportamentul unui server, permiţând testareaaplicaţiilor scrise fără a intra în conflict cu firma care va găzdui în final produsul softwarerealizat.

XAMPP (http://www.apachefriends.org/en/xampp-windows.html) are si o variantă «lite », XAMPP Lite, care poate fi utilizată imediat după descărcare si dezarhivare, fără a finecesară instalarea. După instalare, prezenţa pe calculator a pachetului de aplicaţii semanifestă prinaplicaţia XAMPP Control Panel Application.

 Fig 3.4 XAMPP Control Panel Application

După lansarea în execuţie a acestei aplicaţii se vor apăsa butoanele Start din dreptulcelor două aplicaţii esenţiale testării saiturilor : Apache si MySQL.

 Notă : Dacă se utilizează varianta XAMPP Lite, se dezarhivează arhiva descărcată din Internetîn rădăcina discului care va fi folosit pentru testarea site-urilor si aplicatiilor in dezvoltare.În urma desarhivării, pe discul selectat va fi adăugat directorul xampplite. În această

variantă pornirea aplicatiilor Apache si MySQL necesare testării saiturilor se realizeazăselectând xampp_start din directorul xampplite.

26

Page 27: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 27/55

Universitatea de Nord Baia Mare

 Fig 3.5 Directorul xampplitePentru oprirea aplicaţiilor se va selecta xampp_stop.Verificarea funcţionării aplicaţiilor necesare pentru testarea saiturilor se poate realiza

tastând în browser adresa aplicaţiei web integrate în XAMPP şi destinate administrăriiserverului de baze de date MySQL: http://localhost/phpmyadmin/.

Ca aplicaţie de tip server am folosit Apache. O aplicaţie de acest tip este un programreactiv. El rulează în continuu pe calculatorul destinat păstrării unuia sau mai multor saituriweb şi aşteaptă cereri din partea unei aplicaţii client (Internet Explorer, Mozilla Firefox,Opera etc.).

Ca aplicaţie, serverul pentru web accesează un ansamblu de fişiere dispuse pe HDD a

calculatorului pe care acesta este instalat. Dacă o aplicaţie client solicită un fişier existent,serverul pentru web îl va furniza respectând regulile unui protocol precizat în cerereaclientului (http).

Paginile web sunt de regulă documente multimedia conţinând text, imagini, sunet,animaţii. Ele sunt stocate pe HDD în mai multe fişiere, fiecare fişier conţinând informaţii deun anumit tip. Corespunzător, serverul pentru web va primi din partea aplicaţiei client o suităde cereri de transfer de fişiere începând cu fişierul principal.

Asamblarea documentului din fragmentele primite cade în sarcina aplicaţiei client. Peserverele pentru Internet funcţionând sub UNIX sau Linux, Apache este configurat astfelîncât rădăcina structurii arborescente de directoare care găzduiesc saituri diferă de cea creatăîn urma instalării XAMPP.

27

Page 28: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 28/55

Universitatea de Nord Baia Mare

CAPITOLUL 4.

IMPLEMENTAREA ŞI UTILIZAREA APLICAŢIEI

4.1. Crearea bazei de date a aplicaţiei

4.1.1. Crearea unei baze de date folosind XAMPP Baza de date a fost realizată cu aplicaţia XAMPP folosind phpMyAdmin.

Pentru deschiderea aplicaţiei  phpMyAdmin se porneşte XAMPP şi se tastează în caseta detext pentru adrese a aplicaţiei Internet Explorer adresa http://localhost/phpmyadmin/ 

 Fig 4.1

În fereastra afişată se va tasta numele noii baze de date (catalog ) şi se va apăsa butonulCreate:

28

Page 29: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 29/55

Universitatea de Nord Baia Mare

 Fig 4.2

 phpMyAdmin va crea comanda SQL de creare a unei baze de date şi o va trimite

serverului MySQL.  phpMyAdmin va afişa de fiecare dată comenzile pe care le-a trimisserverului de baze de date MySQL.

 Fig 4.3

Odată creată, baza de date catalog va fi bază de date curentă . Comenzile ulteriore, deexemplu cele prin care se vor crea tabelele (fişierele) acesteia, se vor adresa acesteia.

La următoarele porniri ale aplicaţiei  phpMyAdmin intrarea în baza de date catalog seva realiza prin selectarea acesteia în arborele afişat în panoul din stânga al aplicaţiei.

 Fig 4.4

4.1.2. Crearea unui tabel al bazei de date• Crearea tabelei admin

29

Page 30: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 30/55

Universitatea de Nord Baia Mare

Tabelul admin va conţine datele de identificare a utilizatorilor autorizaţi să opereze în baza dedate. Acest tabel este prezent în toate bazele de date accesibile prin Internet.Crearea unui tabel se realizează concomitent cu definirea structurii sale.

 Fig 4.5

Tabelul admin are 6 câmpuri (engl. fields).În vederea creării comenzii create table, phpMyAdmin va cere introducerea numelui şi tipului

fiecăruia dintre câmpurile tabelului.

 Fig 4.6 

Câmpurile tabelului admin sunt adminID ( INT - valoare întreagă), username(VARCHAR lungime maximă 20 caractere), password (VARCHAR - lungime maximă tot 20caractere), email (VARCHAR), matID(INT- valoare întreagă), tipID(INT- valoare întreagă).Tipul VARCHAR se foloseşte pentru siruri de caractere de lungime variabilă. Pentru câmpuladminID s-a mai precizat că este PRIMARY şi s-a selectat caseta AUTO_INCREMENT .

Prima caracteristică,  PRIMARY  indică faptul că adminID este cheie primară. Cheia primară a unui tabel din baza de date are valori distinct pentru toate articolele din tabel şi arerolul de identificator unic al acestora. Dacă ulterior se va dori suprimarea unui articol se va

 putea selecta articolul indicându-i cheia primară.Proprietatea  AUTO_INCREMENT  indică modul de formare a valorilor câmpului

adminID. Valoarea acestuia pentru un nou articol care urmează să fie adăugat se calculeazăautomat, prin incrementarea valorii corespunzătoare ultimului articol present în tabel.

Câmpul username s-a definit ca fiind INDEX. Impunerea ca index a unui câmpfacilitează căutările în tabel efectuate după valori ale respectivului câmp. În cazul dat,serverul MySQL va ataşa tabelului admin un fişier ale cărui înregistrări vor conţine perechide valori username - adresă articol pe HDD.

30

Page 31: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 31/55

Universitatea de Nord Baia Mare

În noul fişier înregistrările vor fi păstrate ordonate crescător după valorile câmpuluiusername. La căutarea după username a unui articol din tabelul admin se va căuta mai întâi înfişierul asociat tabelului adresa articolului căutat după care se va extrage direct articolul dorit.

Notă: Spre deosebire de  PRIMARY ,  INDEX  nu înseamnă valori distincte. Câmpulusername permite introducerea aceluiaşi nume de mai multe ori.

În acest caz, în fişierul asociat tabelului admin vor fi înregistrate grupat mai multe perechi username – adresă  conţinând acelaşi nume. La căutarea unui nume care aparerepetat, serverul MySQL va furniza tot grupul de articole corespunzând criteriului de căutareimpus.

Crearea tabelului se realizează prin apăsarea butonului . phpMyAdmin va afişa şi comanda CREATE TABLE trimisă serverului MySQL.

 Fig 4.7 

• Crearea tabelei elevBaza de date catalog  va conţine printre altele un tabel cu datele elevilor şi a

  profesorilor. Pentru afişarea acestora se va declara în prealabil tabelul elevi respectiv profesori. Rolul acestuia va fi acela de a permite ulterior afişarea şi modificarea datelor  personale.

Tabelul elevi are 8 câmpuri, elevID fiind declarat cheie primară.

 Fig 4.8

31

Page 32: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 32/55

Universitatea de Nord Baia Mare

 Fig 4.9

 Fig 4.10

Notă: Câmpul tipID reprzinta tipul de utilizator (administrator, elev, professor).Cele 3 tipuri de utilizatori sunt prezentate mai explicit în Capitolul 5.

4.2. Interfaţa cu utilizatorul

Aplicaţia prin lansarea ei produce apariţia ferestrei principale a paginii Web, care seocupă de autentificarea utilizatorilor care doresc să folosească acestă aplicaţie.

32

Page 33: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 33/55

Universitatea de Nord Baia Mare

 Fig.4.11 Pagina principală Există trei tipuri de utilizatori care pot folosi această aplicaţie, fiecare având privilegii

unice.Cele trei tipuri de utilizatori sunt următoarele:

- administrator : este nevoie de un nume utilizator şi o parolă de administrator - profesor : este nevoie de un cont de profesor 

- elev : este nevoie de un cont de elev al clasei respectiveDacă nu s-a introdus numele de utilizator şi parola, iar utilizatorul astfel încearcă săacceseze pagina, se va trezi cu mesaje de eroare: „ Introduceti numele de utilizator!”

 Fig.4.12 Eroare nume utilizator 

respectiv: „ Introduceti parola!”Fiecare utilizator îşi introduce numele de utilizator (cont) şi parola, după care apasă

  butonul sau tasta ENTER de pe tastatură. În timp ce utilizatorul face un singur click pe butonul AUTENTIFICARE , în interiorul codului sursă se întâmplă mai multelucruri de care utilizatorul nu ştie, cum ar fi:

- primul lucru, care se întâmplă când utilizatorul introduce informaţiile necesare deautentificare (nume utilizator, parolă) şi apasă butonul AUTENTIFICARE, este verificareacorectitudinii datelor introduse. Se face o interogare la baza de date, în care se verifică dacăexistă utilizator cu nume de cont şi parolă identică cu cele introduse.Codul interogarii este:

33

Page 34: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 34/55

Universitatea de Nord Baia Mare

if($_POST['action']=="login") {$username=$_POST["username"];$password=$_POST["password"];$sql_txt = "SELECT * FROM admin WHERE username='$username'

AND password='$password' AND tipID='1'";$sql_query = mysql_query ($sql_txt) or die(mysql_error());$sc = mysql_fetch_assoc($sql_query);

if(mysql_num_rows($sql_query)>0) {$_SESSION['logat_admin'] = "Y";} else {$msg = "Nume utilizator sau Parola Gresita!";$_SESSION['logat_admin']="N";

}}

Dacă nu s-a găsit o corespondenţă se afişează un mesaj de eroare: „Nume utilizator sau parola gresita !”

În caz afirmativ, se acceptă numele de cont şi parola, dispare fereastra de autentificareşi apare fereastra cu meniul.Din fereastra principală în afară de autentificare, elevii mai au posibilitatea:

- Înregistrare

- Recuperare parolăFucţiile pentru sistem a celor două pagini sunt incluse in fişierul catalog_fns.php prezentatmai jos.

<?phprequire_once('db_fns.php');require_once('user_auth_fns.php');require_once('output_fns.php');

?>Acest fişier este doar un container pentru alte trei fişiere incluse care le vom utiliza în

cele două pagini: Înregistrare elevi şi Recuperare parolă. Este structurat în acest mod pentruca funcţiile se încadrează în grupuri logice. Unele dinre aceste grupuri pot fi utile pentru alte

 proiecte, aşa că am plasat fiecare grup de fincţii într-un fişier diferit pentru a şti unde le potgăsi atunci cand voi avea din nou nevoie de ele. Fişierul catalog_fns.php l-am construitdeoarece în scripturile acestor două pagini voi folosi o mare parte din cele trei fişiere cu

funcţii. Este mai uşor să includem doar acest fişier în script în loc să am trei instrucţiunirequire.În caz particular utilizez funcţii din fişierul catalog_fns.php. Acestea sunt funcţii

destul de simple, iar majoritatea ieşirii este cod HTML simplu. În continuare vă voi prezentacele două pagini : Înregistrare elevi şi Recuperare parolă.

4.2.1. Înregistrare elevi

Înregistrarea se poate efectua numai în cazul în care contul elevului, care doreşte săînregistreze, nu a fost deja creat de către administrator. Există o posibilitate pentru a accesa

 pagina de înregistrare: Selectând  Înregistrare elevi din meniul :

34

Page 35: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 35/55

Universitatea de Nord Baia Mare

 Fig.4.13 Înregistrare 1

Selectând cu mouse-ul una dintre cele două butoane, prezentate mai sus, va apărea pagina Înregistrare elevi.

 Fig.4.15 Înregistrare elevi

Pentru a se înregistra, elevul trebuie să aibă un număr matricol unic. Numai pe bazaacestui număr matricol se poate realiza înregistrarea pe site. Dacă elevul nu ştie numărul

matricol, are două posibilitaţi de a rezolva accesul pe site-ul Sistem de management al Şcolarităţii Elevilor . Prima ar fi de a solicita numărul matricol de la administrator. Cea de-aldoilea ar fi, ca elevul să ceară de la administrator un cont, precizând datele de conectare, cumar fi numele de utilizator, parola şi adresa de e-mail. Parola se poate modifica ulterior dupăautentificare.

În cazul în care elevul are numărul matricol, el poate să completeze formularul pentrua crea contul de autentificare. Toate campurile a acestui formular sunt obligatorii. Dacă nu s-acompletat un camp din cele existente în formular, apare mesajul de alertă, care va atenţionaelevul despre care câmp nu este completat.

Adresa de e-mail trebuie să fie de forma: ex: [email protected]. Dacă nu este de aceastăformă, apare mesajul următor: „Introduceti corect adresa de e-amil !”

35

Page 36: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 36/55

Universitatea de Nord Baia Mare

 Fig.4.15 Eroare adresa e-mail incorect 

Dacă câmpurile au fost completate, dar numărul matricol nu corespunde cu nici unulexistent în baza de date (numerele matricole se introduc de către administrator), înregistrareanu se poate efectua. Va apărea mesajul : „Inregistrarea nu s-a efectuat cu succes. Numarulmatrivcol incorest !”

Înregistrarea cu un număr matricol se poate efectua numai o singură dată. În cazul încare un elev vrea să folosească numărul matricol înca o dată pentru înregistrare, se va trezi cuun mesaj de alertă.

Dacă elevul a introdus un nume de utilizator, care există deja în baza de date,înregistrarea nu se poate realiza. Codul de verificare a numelui de utilizator este :

$sql_txt = "select * from admin where username='$username'";$sql_query = mysql_query($sql_txt);if (mysql_num_rows($sql_query)>0){

echo '<script language="javascript">location.href="register_form.php"alert("Nume de utilizator OCUPAT");</script>';throw new Exception ();

}Dacă numele de utilizator nu există în baza de date, se trece la verificare existenţei

numărului matricol.

else{$sql_txt_mat = "SELECT * FROM nrmatr WHERE

nr_matr='{$_POST['nr_matr']}'";$sql_query_mat = mysql_query($sql_txt_mat) or die(mysql_error());

$sc_mat = mysql_fetch_assoc($sql_query_mat);if(!empty($sc_mat['matrID'])){

36

Page 37: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 37/55

Universitatea de Nord Baia Mare

Dacă numărul matricol introdus în formular există în baza de date, se efectueazăînregistrarea.

$sql_txt_elv = "INSERT INTO admin SET username ='{$_POST['username']}', password='{$_POST['password']}', email='{$_POST['email']}',tipID='2'";

$sql_query_elv = mysql_query($sql_txt_elv) or die(mysql_error());if(mysql_affected_rows()>0){

$id = mysql_insert_id();$sql_txt_elv = "UPDATE nrmatr SET adminID = '{$id}' WHERE

matrID='{$sc_mat['matrID']}'";$sql_query_elv = mysql_query($sql_txt_elv) or die(mysql_error());

do_html_header('Inregistrare efectuata cu succes');echo '<script language="javascript">location.href="index.php"

alert("Inregistrarea s-a efectuat cu succes.");</script>';do_html_footer();

}else{do_html_header('Inregistrare esuata');

echo '<script language="javascript">location.href="index.php"alert("Inregistrarea NU s-a efectuat cu succes.");

</script>';do_html_footer();

}}else{

Dacă numărul matricol introdus în formular nu există în baza de date, înregistrarea nuse efectuează.

do_html_header('Inregistrare esuata'); //apeleaza functia do_html_header echo '<script language="javascript">location.href="index.php"alert("Inregistrarea NU s-a efectuat cu succes. Numar matricol

incorect");</script>';

do_html_footer();

}}

4.2.2. Recuperare parolă

Recuperarea parolei se face pe baza numelui de utilizator.

37

Page 38: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 38/55

Universitatea de Nord Baia Mare

 Fig.4.16 Schimbare parolă 

În cazul în care nu s-a introdus numele de utilizator apare următorul mesaj:„Introduceti numele de utilizator”

Pentru un nume de utilizator introdus, care nu există in baza de date, apare mesajul:“ Nume de utilizator incorect!! Nu se gaseste adresa de email !! ”.

Dacă numele de utilizator este corect, apasând butonul Schimb parola se crează o parolă nouă, care va fi trimisă prin e-mail pe adresa de e-mail a utilizatorului respectiv.

Parola nouă se i-a dintr-un fişier text. Funcţia care crează parola este:function get_random_word($min_length, $max_length){

$word = '';$dictionary = "words.txt"; // fişierul text cu cuvintele dintr-un dicţionar $fp = @fopen($dictionary, 'r') or die ("Can't open file");if(!$fp)

return false;$size = filesize($dictionary);// selectarea aleatoare a unui cuvânt din fişier srand ((double) microtime() * 1000000);$rand_location = rand(0, $size);fseek($fp, $rand_location);// căuterea unui cuvânt cu lungime corectăwhile (strlen($word)< $min_length || strlen($word)>$max_length || strstr($word,

"'")){

if (feof($fp))fseek($fp, 0); // daca e la sfarsit, se trece la inceput$word = fgets($fp, 80); // sare peste primul cuvant pentru ca poate fi

 partial

$word = fgets($fp, 80); // parola poteniala};$word=trim($word); // curate adulmecatorul \n de la fgets

38

Page 39: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 39/55

Universitatea de Nord Baia Mare

return $word;}

4.3. Tipuri de utilizatori

După autentificarea reuşită apare pagina cu meniul aplicaţiei. În prima pagină vaapărea un mesaj cu numele de utilizator a persoanei care foloseşte programul.

 Fig.4.17 Pagina start Meniul paginii este diferit, în funcţie de tipul de utilizator, adică administrator , elev,

 profesor . Meniurile pentru cele trei tipuri de utilizatori sunt următoarele:- Administrator 

 Fig.4.18 Meniu administartor 

- Profesor 

39

Page 40: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 40/55

Universitatea de Nord Baia Mare

 Fig.4.19 Meniu profesor 

- Elev

 Fig.4.20 Meniu elev

40

Page 41: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 41/55

Universitatea de Nord Baia Mare

4.3.1. Meniul pentru tipul administrator 

Acest meniu este diferit faţă de meniul celor 2 tipuri de utilizatori (elev,  profesor ).Meniul pentru tipul administrator are 6 butoane, aşa cum am ilustrat in Fig.4.18.

Butonele sunt: Cont profesori Cont elevi  Numar matricol Materie Lista elevi Lista profesori Schimb parola

Primul buton numit Cont profesori se ocupă cu crearea şi administrarea

conturilor pentru profesori. Prin apăsarea butonului se accesează pagina  Administrare cont  profesori, în care administratorul are posibilitatea de a crea şi şterge contul profesorilor.

 Fig.4.21 Cont profesori

Pentru a crea un cont trebuie sa completam datele de autentificare, materie seselecteză din baza de date, dintre cele adăugate de către administrator. În cazul în care nu seintroduc datele, apare un mesaj în care se specifică exact care câmp nu a fost completat.

În cazul în care adresa de e-mail nu este corectă apare mesajul: „Introduceti corectadresa de e-mail !”.

La crearea contului se execută codul:$sql_txt_ad = "select * from admin where username='$username'";$sql_query_ad = mysql_query($sql_txt_ad);

if (mysql_num_rows($sql_query_ad)>0){//verifica daca numele de utilizator esteunic

41

Page 42: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 42/55

Universitatea de Nord Baia Mare

$msg = "Nume de utilizator Ocupat!";}else{//daca este unic atunci se introduc datele in baza de date

if(!empty($_POST['action']) AND $_POST['action']=="addProf") {$sql_txt = "INSERT INTO admin SET

username='".mysql_real_escape_string($_POST['username'])."', password='".mysql_real_escape_string($_POST['password'])."',email='".mysql_real_escape_string($_POST['email'])."',matID ='".mysql_real_escape_string($_POST['matID'])."',tipID= '3'";if(mysql_query($sql_txt)) {

$msg = "Contul a fost creat!";} else {

$msg = "Contul NU a fost creat!";}

}}

Dacă vrem să modificăm un cont, trebuie să alegem contul respectiv, apăsând butonulModifica. Datele de autentificare, selectate pentru modificare, apar în casetele de textcorespunzătoare. În acest caz în loc de butonul  Adauga apare Modifica. După modificareadatelor, apasând butonul Modifica, apare mesajul : „Contul a fost modificat !”La ştergere apare urmatorul mesaj de interogare: „Esti sigur ca vrei sa stergi ?”Apasând OK, se executa comanda , iar datele de autentificare se şterg din baza de date:

if(!empty($_GET['sterge'])) {

$sql_txt = "DELETE FROM admin WHERE adminID='{$_GET['sterge']}'";$sql_query = mysql_query($sql_txt);if(mysql_affected_rows()>0){

$sql_txt = "DELETE FROM profesori WHEREadminID='{$_GET['sterge']}'";

$sql_query = mysql_query($sql_txt);}if(mysql_affected_rows()) {

$msg = "Contul a fost sters";} else {

$msg = "Contul NU a fost sters!";

}}

Butonul Cont elevi se ocupă cu crearea şi administrarea conturilor pentruelevi. Apasând acest buton apare pagina Administrare cont elevi, care este asemănător cu ceadin Fig.4.18. Modificarea şi ştergerea se face asemănător ca şi în pagina Administare cont 

 profesori.

42

Page 43: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 43/55

Universitatea de Nord Baia Mare

 Fig.4.22 Administrare cont elevi

Butonul Numar matricol se ocupă cu adăugarea şi ştergerea număruluimatricol, pe baza căruia se face înregistrarea de către elevi. În cazul în care nu completămcâmpul, iar apăsăm butonul Adauga, apare un mesaj de avertizare: „Introduceti numarulmatricol!”. În cazul în care elevul a efectuat înregistrarea folosind unul din numerelematricole existente, şi a comletat datele personale, atunci numele şi prenumele elevuluirespectiv va apărea lângă numărul matricol. Adaugând un număr matricol se execută codul:

$sql_txt_ad = "select * from nrmatr where nr_matr='$nr_matr'";$sql_query_ad = mysql_query($sql_txt_ad);if (mysql_num_rows($sql_query_ad)>0){

$msg = "Numarul matricol existent !";}else{

if(!empty($_POST['action']) AND $_POST['action']=="addMatr" ) {$sql_txt = "INSERT INTO nrMatr SETmatrID='".mysql_real_escape_string($_POST['matrID'])."',

nr_matr='".mysql_real_escape_string($_POST['nr_matr'])."'";if(mysql_query($sql_txt)) {

$msg = "Numarul matricol a fost adaugat!";} else {

$msg = "Numarul matricol NU a fost adaugat!";}

}

}

43

Page 44: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 44/55

Universitatea de Nord Baia Mare

 Fig.4.23 Numar matricol 

Butonul Materie se ocupă de adăugarea şi ştergerea materiei. În cazul în carenu completăm câmpul, iar apăsăm butonul Adauga, apare un mesaj de avertizare: „Introducetimateria!”.

 Fig.4.24 Materie

44

Page 45: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 45/55

Universitatea de Nord Baia Mare

Butonul Lista elevi şi Lista profesori se ocupă cu afişarea colectivului de profesori existente în baza de date. 

 Fig.4.25 Colectivul de elevi

Butonul Schimb parola se ocupă cu schimbarea parolei a administratorului.

4.3.2. Meniul pentru tipul profesor 

Meniul pentru tipul profesor are 4 butoane, aşa cum am ilustrat in Fig.4.19.Butonele sunt:

Adaugare note Date personale Lista elevi Situatie elevi Schimbare parola

Butonul Adaugare note se ocupă cu adăugarea notelor de către profesorul careeste autentificat. Adăugarea notei se realizează apăsand butonul Adauga. Completareacâmpurilor este obligatoriu. În cazul în care nu am completat bine formularul, apare o eroare,care ne avertizează unde am greşit, sau care casetă de text nu este completată. Nota trebuie săfie între 1 şi 10. În caz contrar apare o eroare cu mesajul: „Introduceti corect nota!”. Data seselecteaza apăsând butonul , dintr-un calendar realizat cu Javascript.

45

Page 46: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 46/55

Universitatea de Nord Baia Mare

 Fig.4.24 Adaugare note

Butonul Date personale se ocupă cu adăugarea şi modificarea datelor  personale, cum ar fi: nume, prenume, adresa, nr. telefon. Persoana care se autentifică şifoloseşte prima data aplicaţia, trebuie să introducă datele personale. În cazul în care datele aufost deja introduse anterior, accesând pagina, datele personale a utilizatorului apar în casetelede text, iar aceasta are posibilitetea doar de a modifica aceste date apăsând butonul .Codul php a paginii respective este următoarea:

if(!empty($_POST['action']) AND $_POST['action']=="addProf") {$sql_txt = "SELECT * FROM profesori WHEREadminID='{$_SESSION['logat_prof_id']}'";

$sql_query = mysql_query($sql_txt);$sc=mysql_fetch_assoc($sql_query);if(!empty($sc['adminID'])){

//se verifică dacă au fost deja introduse datele. Dacă au fost introduse, se pot face modificăriasupra acestor date.

if(!empty($_POST['profID'])){$sql_txt = "UPDATE profesori SETnumeProf='".mysql_real_escape_string($_POST['numeProf'])."',

 prenumeProf='".mysql_real_escape_string($_POST['prenumeProf'])."',adresaProf='".mysql_real_escape_string($_POST['adresaProf'])."',cnpProf='".mysql_real_escape_string($_POST['cnpProf'])."',tel_prof='".mysql_real_escape_string($_POST['tel_prof'])."',tipID= '3'WHERE profID='{$_POST['profID']}'";$sql_query = mysql_query($sql_txt);

if(mysql_affected_rows()>0) {$msg = "Datele personale au fost modificate!";

46

Page 47: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 47/55

Universitatea de Nord Baia Mare

} else {$msg = "Datele personale NU au fost modificate!";

}}

}else{

//în caz contrar se introduc datele

$sql_txt = "INSERT INTO profesori SETnumeProf='".mysql_real_escape_string($_POST['numeProf'])."',

 prenumeProf='".mysql_real_escape_string($_POST['prenumeProf'])."',adresaProf='".mysql_real_escape_string($_POST['adresaProf'])."',

adminID='".mysql_real_escape_string($_SESSION['logat_prof_id'])."',cnpProf='".mysql_real_escape_string($_POST['cnpProf'])."',tel_prof='".mysql_real_escape_string($_POST['tel_prof'])."',tipID= '3'";

if(mysql_query($sql_txt)) {$msg = "Datele personale au fost adaugate!";

} else {$msg = "Datele personale NU au fost adaugate!";

}}

}

$sql_txt = "SELECT * FROM profesori WHERE

adminID='{$_SESSION['logat_prof_id']}'";//se selectează profesorul care este autentificat$sql_query = mysql_query($sql_txt);$sc=mysql_fetch_assoc($sql_query);if(!empty($sc['profID'])){

//dacă datele au fost deja introduse, ele apar în căsuţele de text, iar avem posibilitatea de amodifica aceste date

$numeProf = $sc['numeProf'];$prenumeProf = $sc['prenumeProf'];

$adresaProf = $sc['adresaProf'];$cnpProf = $sc['cnpProf'];$tel_prof = $sc['tel_prof'];$profID = $sc['profID'];$btn = "Modifica";

}else{

//dacă datele nu au fost introduse, căsuţele de text sunt goale, şi avem posilitatea de a adăugadatele personale

$numeProf = "";

$prenumeProf = "";$adresaProf = "";

47

Page 48: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 48/55

Universitatea de Nord Baia Mare

$cnpProf = "";$tel_prof = "";$profID = "";$btn = "Adauga";

}

 Fig.4.25 Date presonale

Butonul Lista elevi se ocupă cu afişarea colectivului de elevi, identic ca latipul de utilizator administrator.

Butonul Situaţie elevi se ocupă de afişarea mediei a fiecărui elev la materia lacare predă profesorul autentificat. Afişarea se face selectând elevul din colectivul de eleviexistente în baza de date dintr-un combobox, iar apoi se selectează din baza de date ID-ulmateriei la care predă profesorul:

select matID FROM admin WHERE adminID='{$_SESSION['logat_prof_id']}'

După selectarea materiei se selectează datele care vor fi afişate în tabela de situaţii.

select (SUM(nota)/count(*)) as avg, count(*) as ct, n.*, m.* FROM note nLEFT JOIN materie m ON n.matID=m.matIDWHERE n.matID='{$sc_m['matID']}' AND n.elevID='{$_POST['elevID']}'GROUP BY n.matID ORDER by notaID ASC

48

Page 49: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 49/55

Universitatea de Nord Baia Mare

Rezultatul arată astfel:

 Fig.4.26 Situatie elevi

Butonul Schimbare parolă se ocupă cu schimbarea parolei utilizatoruluiautentificat. Pentru a modifica parola, utilizatorul trebuie să introducă parola veche, parolanouă şi parola de verificare, adică parola nouă încă o dată. Dacă parola nouă nu este identicăcu parola de verificare, apare mesajul: „Parola de verificare nu corespunde!”. Codul php arataastfel:

if(!empty($_POST['action']) AND $_POST['action']=="addParola") {$sql_txt_par = "SELECT * FROM admin WHERE

 password='{$_POST['old_password']}' ANDadminID='{$_SESSION['logat_prof_id']}'";

//se selectează parola utilizatorului

$sql_query_par = mysql_query($sql_txt_par) or die(mysql_error());$sc_par = mysql_fetch_assoc($sql_query_par);if(!empty($sc_par['adminID'])){

//dacă parola veche introdusă este corectă, se efectuează schimbarea parolei

$sql_txt_c = "UPDATE admin SET password='".mysql_real_escape_string($_POST['password'])."'WHERE adminID='{$_SESSION['logat_prof_id']}'";$sql_query_c = mysql_query($sql_txt_c);if(mysql_affected_rows()>0) {

$msg = "Parola a fost modificata!";} else {

$msg = "Parola NU a fost modificata!";}

49

Page 50: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 50/55

Universitatea de Nord Baia Mare

}else {//dacă parola veche introdusa nu este corecta, apare mesajul

$msg = "Parola veche este incorecta!";}

}

 Fig.4.27 Schimbare parola

4.3.3. Meniul pentru tipul elev

Meniul pentru tipul elev are 4 butoane, aşa cum am ilustrat in Fig.4.20.Butonele sunt:

Afisare note Date personale Lista profesori Schimbare parola

Butonul Afisare note se ocupă cu afişarea notelor la fiecare materie. Materia se

selectează din combobox-ul . După selectarea materiei apar notele şi mediala materia respectivă. Select-ul pentru afişarea notelor este:

SELECT n.*, e.* FROM elevi eLEFT JOIN note n ON n.elevID=e.elevIDWHERE e.adminID='{$_SESSION['logat_elev_id']}' AND

n.matID='{$_POST['matID']}'ORDER by notaID ASC";

Afişarea notei se face numai pentru elevul care este autentificat, selectând materiadintr-un combobox. Această verificare se face precizând

e.adminID='{$_SESSION['logat_elev_id']}'

50

Page 51: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 51/55

Universitatea de Nord Baia Mare

Se calculează media notelor primite selectând din tabela de note numai notele careaparţin elevului autentificat şi facând media acestora. Codul arată astfel:

SELECT (SUM(nota)/count(*)) as avg FROM elevi eLEFT JOIN note n ON n.elevID=e.elevID

WHERE e.adminID='{$_SESSION['logat_elev_id']}' ANDn.matID='{$_POST['matID']}' ORDER by notaID ASC";

Rezultatul :

 Fig.4.28 Afisare note

Butonul Lista profesori se ocupă de afişarea colectivului de profesori,

 precizând materia predată de fiecare profesor. Selectarea datelor care vor fi afişate în tabelăse face cu :

SELECT p.*, m.*, a.* FROM admin aLEFT JOIN profesori p ON a.adminID=p.adminIDLEFT JOIN materie m ON a.matID=m.matIDWHERE a.tipID=3 ORDER by p.numeProf ASC";

51

Page 52: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 52/55

Universitatea de Nord Baia Mare

Iar rezulatul arată astfel:

 Fig.4.29 Lista profesori

Butonul Date personale şi Schimbare parola este indentic cu cea de la tipul profesor .

52

Page 53: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 53/55

Universitatea de Nord Baia Mare

CAPITOLUL 5.CONCLUZII

5.1. Concluzii

Importanţa Internetului în zilele noastre este deja cunoscută iar exploatareaoportunitaţilor oferite de acesta trebuie sa fie o prioritate pentru o firmă modernă mai alesdacă concurenţa are deja prezenţă online. Un web site costă o singură dată şi rămâne

 permanent, 24 de ore din 24 în atenţia publicului din orice zonă a lumii. Oricând, conţinutulunui web site poate fi actualizat sau modificat după bunul Dumneavoastră. plac.

La baza aplicaţiei Sistem de management al Şcolarităţii Elevilor stă limbajul de programare PHP, care este un limbaj foarte puternic, şi foarte des folosit. Din aceste motiveam ales acest limbaj pentru implementarea aplicaţiei. În zilele noastre cele mai multe aplicaţiidistribuite sunt scrise în PHP, care este o soluţie convenabilă pentru proiectare a unei aplicaţiide comerţ electronic pentru clienţii care dispun de un buget redus.

Lumea se schimbă de la o zi la zi, tehnologiile avansează, apar noi şi noi aplicaţii,software care ne vor conduce într-o lume computerizată. Eu cred că PHP ocupă un loc foarteimportant în această lume şi are un rol deosebit în dezvoltarea noilor tehnologii.

Aplicaţia Sistem de management al Şcolarităţii Elevilor este doar o mică parte dinaceastă lume imensă a limbajului PHP, dar o parte semnificativă, deoarece folosirea luiuşurează munca multor oameni cu vârste diferite.

5.2. Posibilităţi de dezvoltare

Versiunea respectivă a aplicaţiei Sistem de management al Şcolarităţii Elevilor nueste versiunea finală, ci dimpotrivă prima versiune. Aplicaţia poate fi îmbunătăţită, adăugândnoi facilităţi. Iată câteva lucruri noi care ar putea fi incluse în dezvoltarea acestui program:

• Aplicaţia ar putea fi dezvoltată într-un fel ca să deservească toate necesităţileunei şcoli, adicaă să fie posibil folosirea acestuia de către toate clasele uneişcoli sau chiar de către mai multe şcoli.

• O altă dezvoltare ar putea fi adăugarea unei ramuri în aplicaţie care să seocupe de prezenţa elevilor la fiecare oră şi de construirea orarului şcolar lafiecare clasă.

• Al treilea punct de dezvoltare ar putea fi crearea unui forum de discuţii întreelevi şi profesori care ar fi util de exemplu pentru fixarea examenelor,informarea elevilor despre diferite activităţi şcolare etc.

• O dezvoltare majoră ar fi crearea unui nou tip de utilizator, cum ar fi  părinte.Şi părintele să aiba acces la note, dar numai la fiul şi/sau fiica părinteluirespective. Această dezvoltare ar fi foarte utilă pentru ca în zilele noastre

 părinţii de multe ori nu află situaţia şcolară a copilului numai de exemplu la oşedinţă cu părinţii. Cu această dezvoltare putem scutii părinţii şi profesorii detimpul pierdut în urma şedinţelor, discuţiile putând fi rezolvate printr-unforum al aplicaţiei.

Acestea sunt doar nişte idei de dezvoltare a aplicaţiei Sistem de management alŞcolarităţii Elevilor, dar, având în vedere progresul tehnologiei, mai pot apărea şi altele.

53

Page 54: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 54/55

Universitatea de Nord Baia Mare

54

Page 55: 61116902-Lucrare-de-licenta

5/13/2018 61116902-Lucrare-de-licenta - slidepdf.com

http://slidepdf.com/reader/full/61116902-lucrare-de-licenta 55/55

Universitatea de Nord Baia Mare

Bibliografie:

1. [Well2005], Laura Thomson; Dezvoltarea aplicatiilor WEB cu PHP şi MySQL , Editiaa II-a (+CD); Editura Teora 2005.

2. [Thom2004], Dezvoltarea aplicatiilor WEB cu PHP şi MySQL; Editura Teora 2004.

3. [ Angh2005], Dezvoltarea aplicatiilor WEB folosind XHTML, PHP şi MySQL;Editura Polirom 2005.

4. [Melo2005], INVATA SINGUR PHP, MYSQL ŞI APACHE; Editura Corint 2005.

5. [Sab2003], Aplicatii Web la cheie. Studii de caz implementate in PHP; EdituraPolirom 2003.

6. Adrian Munteanu, Valerică Greavu Serban, Reţele locale de calculatoare Proiectareşi administrare

7. [Gug2005], HTML , X HTML , CSS şi XML prin exemple - ghid practic; EdituraTeora 2005.

8. http://www.phpromania.ro

9. http://www.oscommerce.com

10.http://www.w3schools.com/asp/default.asp11.[Cez2006], Programarea aplicaţiilor web cu PHP şi MySQL , Ed. Risoprint 2006.

55