Sunteți pe pagina 1din 55

Cuprins

Pagina GENERALITI..................................................................................................................................................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 NOIUNI FUNDAMENTALE........................................................................................................................................11 Ieirea din modul HTML....................................................................................................................................13 Separarea instruciunilor.....................................................................................................................................14 Comentariile........................................................................................................................................................14 VARIABILE 15 Variabile predefinite ..........................................................................................................................................15 PHP Superglobals...............................................................................................................................................15 Folosirea variabilelor statice..............................................................................................................................15 2.4.BAZE DE DATE ..............................................................................................................................................17 Noiuni 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 SPECIFICAIILE APLICAIEI......................................................................................................................22 3.1.PREZENTARE GENERAL.....................................................................................................................................22 3.2.PAGINA DE ACCES.............................................................................................................................................23 3.3.STOCAREA INFORMAIILOR.................................................................................................................................25 CAPITOLUL 4.....................................................................................................................................................28

Universitatea de Nord Baia Mare IMPLEMENTAREA I UTILIZAREA APLICAIEI...................................................................................28 4.1.CREAREA BAZEI DE DATE A APLICAIEI.................................................................................................................28 4.1.1.Crearea unei baze de date folosind XAMPP ............................................................................................28 Baza de date a fost realizat cu aplicaia XAMPP folosind phpMyAdmin........................................................28 4.2.INTERFAA CU UTILIZATORUL..............................................................................................................................32 4.2.1.nregistrare elevi........................................................................................................................................34 4.2.2.Recuperare parol......................................................................................................................................37 4.3.TIPURI DE UTILIZATORI......................................................................................................................................39 4.3.1.Meniul pentru tipul administrator..............................................................................................................41 4.3.2.Meniul pentru tipul profesor......................................................................................................................45 4.3.3.Meniul pentru tipul elev.............................................................................................................................50 CAPITOLUL 5.....................................................................................................................................................53 5.1.CONCLUZII.......................................................................................................................................................53 5.2.POSIBILITI DE DEZVOLTARE.............................................................................................................................53 BIBLIOGRAFIE:................................................................................................................................................55

GENERALITI
Din cele mai vechi timpuri omul a simit nevoia s cunoasc spaiul nconjurtor, i materializarea gndirii sale ntr-un limbaj matematic de baz. Odat cu evoluia omului au evoluat i problemele acestuia, soluia la aceasta a fost inventarea unei maini de calcul ce i va schimba radical modul de via. Dezvoltarea rapid din ultima perioad a resurselor software i hardware din domeniul tehnologiei informaiei are un meritul de a oferi o mai bun comunicare i un acces mult mai rapid la toate categoriile de informaii. Prezenta lucrare cuprinde destul de detaliat aspecte teoretice i practice ale modalitilor de concepere i implementare a aplicaiei. Lucrarea este structurat n 5 capitole, fiecare capitol, la rndul lui avnd mai multe subcapitole. Capitolul 1 Introducere reprezint partea introductiv a lucrrii, prezentarea domeniului din care face parte proiectul, a temei propriu-zise i structurarea aplicaiei. Capitolul 2 Tehologiile utilizate reprezint o scurt introducere a principalelor noiuni legate de Internet. Sunt explicate noiuni ca Internet, protocolale, aplicaii pentru internet, DNS, intrenet i extranet, servere web i aplicaii web, pagini web statice i dinamice, limbaje de markup i scripting, HTML, JavaScript. Limbajul PHP,este prezentat prin descrierea principalelor noiuni legate de acest limbaj. Descrierea modului de includere a
2

Universitatea de Nord Baia Mare

codului PHP n cadrul codului HTML, sunt prezentate tipurile de date pe care acest limbaj le suport i tipurile de variabile care pot fi utilizate. Noiunile de baz ale bazelor de date relaionale. Este prezentat modul de utilizare a MySQL, conectarea i deconectarea de la server, crearea i selectarea bazelor de date, crearea tabelelor i introducerea interogrilor. Capitolul 3 Specificaiile aplicaiei prezint lucrarea. Prezentarea general a aplicaiei, interfaa cu utilizatorul, i modalitatea de stocare a informaiilor i a datelor. Capitolul 4 Implementarea i utilizarea aplicaiei cu interfaa grafic reprezint descrierea aplicaiei. Implementarea acestui site a fost realizat folosind limbajul de server side scripting PHP datorit felxibilitii acestuia i a faptului c poate fi folosit gratuit, fr restricii. De asemenea, a fost ales sistemul de gestiune a bazelor de date relaioale MySQL datorit 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 aplicaiei Sistem de management al colaritii Elevilor, crearea unor tabele (ex : admin si elevi). Interfaa grafic a aplicaiei este construit pe baza unui template, pe care toate paginile site-ului l folosesc pentru a pstra acelai layout pe ntregul site. De asemenea, pentru setarea modalitilor de afiare a diferitelor elemente HTML, pentru alegerea stilului site-ului s-a folosit un fiier .css, acesta putnd fi modificat sau nlocuit i ntregul site i schimb automat nfiarea. Prin combinarea acestor dou produse, PHP i MySQL, aplicaia realizat este foarte flexibil, putndu-se aduga noi funcionaliti aplicaiei. Capitolul 5 Concluzii prezint opinia mea personal despre aplicaia realizat i posibilitile de dezvoltare a aplicaiei.

Universitatea de Nord Baia Mare

CAPITOLUL 1. INTRODUCERE
Se poate spune, pe drept cuvnt c trim ntr-o societate informatizat. n zilele noastre, ntlnim calculatoare peste tot, de la micul magazin din col, care-i ine evidenele sale cu ajutorul unui calculator i pn la ghieul la care pltim abonamentele de telefonie, cablu TV, Internet, la examenele pentru permisul de conducere sau alte examene pentru diferite domenii oricare ar fii acestea i multe alte. Peste tot sunt calculatoare, legate eventual ntre ele i formnd astfel reele de calculatoare. Toate acestea se datoreaz faptului c ne dm seama din ce n ce mai mult c sistemele de calcul, calculatoarele ne uureaz munca i viaa prin apariia lor. S ne gndim puin ct de mult s-a schimbat lumea de cnd au aprut calculatoarele. naintea apariiei calculatoarelor orice tip de eviden era nregistrat pe hrtie, scrise cu mna sau n cel mai bun caz scrise cu dactilograful. Marele dezavantaj al acestei metode era c acele hrtii se deteriorau cu timpul, sau pur i simplu se pierdeau. Apariia calculatorului reprezenta o mare avansare n acest domeniu, dar totodat i n alte domenii. Oamenii nu mai erau nevoii s-i in evidenele pe hrtii, deoarece pur i simplu introduceau datele n calculator i le salvau pe discul magnetic al acestuia. i aa datele erau ntr-un loc sigur, securizat, unde nu se deteriorau, nici nu se pierdeau i accesul la ele l aveau doar persoanele care erau desemnate pentru utilizare si stricta securitate a discului magnetic.

1.1.

Tema proiectului
4

Universitatea de Nord Baia Mare

Omenirea prin evoluia informatici care cu fiecare zi ce trece inbuntaete viata omului i cei tinerii devin batrni, aa este i cu calculatoarele care au aparut era un numr minic dar acum oriunde te-ai duce mereu ai s vezi c oamenii lucreaz pe calulatoare chiar dac sunt dintre primele modele de fabricaie mai sunt folosite dar vor ramne in istorie. Nu exist instituii care s nu fie nzestrate cu calculatore i diferitele programe pe care aceste instituii lucreaz. S ne gndim numai la bnci, casierii, hoteluri, magazine, toate folosesc calculatoare pentru ai ine evidenele, trasfer de date i multe altele. Profesorii folosesc calculatoare pe care sunt instalate diferite programe care uureaz 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 informaie. Acest site lucreaz cu baze de date n care sunt nregistrate toate activitile legate de notele unui elev : crearea conturilor de autentificare, adugarea materiilor, adugarea notelor de ctre profesori, afiarea notelor de ctre elevi, introducerea i modificarea datelor personale etc. Aplicaia Sistem de management al colaritii Elevilor este o soluie ideal pentru a uura munca profesorilor i a elevilor. Aceast versiune a aplicaiei Sistem de management al colaritii Elevilor, este destinat special a unei clase dintr-o unitate de invmnt. Site-ul este structurat n 3 pri diferite, pentru 3 tipuri de utilizatori diferii:
Administrator : se ocup de adugarea numerelor matricole, adugarea

materiei, crearea i administrarea conturilor Profesor : are acces la adugarea notelor, introducerea i modificarea datelor personale, afiarea colectivului de elevi, schimbarea parolei de autentificare Elev : are acces la vizualizarea notelor, adugarea i modificarea datelor personale, afiarea colectivului de profesori, schimbarea parolei de autentificare Cele trei tipuri de utilizatori au privilegii diferite, aa cum v-am presentat mai sus, datele personale a fiecrui utilizator se pot modifica numai de ctre el insui. Notele fiecrui elev sunt confideniale, fiecare elev avnd acces numai la notele lui, in acest fel i la profesori, situaia elevului se poate vizualiza numai la materia predat de profesorul respectiv. Acest lucru este util pentru, ca profesorul s nu fie influenat de situaia elevului la o alt materie, atunci cnd acesta adaug o not. Aceste probleme sunt exemplificate mai amnunit in urmtoarele capitole. Aplicaia este util, att pentru elevi ct i pentru profesori. Prin intermediul acestei aplicaii este foarte uor s inem evidena notelor i s avem toate informaiile despre elevi.

Universitatea de Nord Baia Mare

CAPITOLUL 2. TEHNOLOGII UTILIZATE


Calculatorul este folosit de diminea la o cafea, la diferitele domenii de activitate i seara cu finalizarea unui film, tot mai muli sunt aceia care, stnd neclintii n faa calculatoarelor, navigheaz prin reeaua de calculatoare ce acoper ntreaga lume, cltoresc i activeaz in spaiul cibernetic. Pentru cercettorul care descoperea libertatea de comunicare i oferta internaional din Internet, multitudinea de biblioteci, reviste i grupuri de dezbatere, accesul la Internet seamn cu un vis care nu se mai termin, vacana pe care urmeaz s o faci n Europa sau America la distane foarte marii prin site-rile unde sunt prezentate locuri frumoase i utilizatorul stand in faa calculatorului ii aduce lumea cea mare in afara calculatorului i mic la calculator. Prin Internet nelegem de obicei ansamblul reelelor de calculatoare interconectate din intreaga lume. De fapt, specialitii susin c Internetul nu este o reea ci un ansamblu de reguli protocoale de comunicaie - care permit transferul de date ntre diferite reele de pe glob, accesul la informaiile stocate n calculatoarele acestora. Accesul la Internet este att modul de conectare in reea, ct, mai ales, accesul la informaia ce se vehiculeaz prin calculatoarele legate in reea, posibilitatea de comunicaie cu specialitii din toat lumea ntreag. Internetul este o gigantic reea de calculatoare, mai precis, o reea de reele de calculatoare.Unele dintre aceste calculatoare ofer o diversitate de servicii pentru oameni. Dezvoltarea internetului a fost foarte rapid, n anul 1985, aproximativ 2000 de calculatoare erau legate la Internet. In momentul de fa exist zeci chiar sute de milioane de
6

Universitatea de Nord Baia Mare

calculatoare conectate n ntreaga lume, care permit accesul in reea a unui numr foarte mare de oameni. In fiecare an, comunitatea primete milioane de noi utilizatori care doresc sa utilizeze internetul pentru a cunoate informaii noi din domenii diferite. Internetul n Romnia a ptruns relativ ncet, mult vreme fiind considerat un lux inutil. Chiar i acum, pentru uz personal, mai ales datorit costurilor foarte mari ale serviciilor telefonice, este destul de puin utilizat. Din punct de vedere al infrastructurii lucrurile au avansat destul de mult, din punct de vedere al resurselor informatice disponibile evoluia este destul de greoaie. Majoritatea companiilor i chiar unele structuri administrative au ineles prezena n Internet c este foarte important, nc nu exist resurse i depozite informaionale romneti semnificative. Din acest motiv traficul observat in reeaua romneasc este mai mult de aducere de informaii din exterior dect de export de informaii n cadrul rii. In contextul internaional actual de afaceri, academic i tehnologic, fenomene ca globalizarea i liberalizarea accesului la informaie dinamic i nivelul de performan al dezvoltrilor n domeniul comunicaiilor i al calculatoarelor, sunt deja lucruri commune i legate unele de altele. Dincolo de granie, in restul omenirii, Internetul a devenit deja cea mai comod surs de informaie, in timp ce ceea ce este disponibil i in Romnia pe Internet este fie vechi, fie incorect, fie lipsete prin costurile ridicate. Pentru a ne da seama ce ne rezerv viitorul in privina reelei Internet, trebuie s nelegem tipurile de tehnologii elaborate de experii implicai in dirijarea reelei i pentru utilizarea internetului ct mai uor cu putin.

Colaborare
In dezvoltarea internetului s-au fcut mari progrese n domeniul conferinelor video la distane marii. De exemplu, exist tehnologii care permit colaborarea la anumite documente prin intermediul reelei. De asemenea putem lua parte la conferine audio i chiar s folosim o planet electronic pentru a ne expune schemele i proiectele, astfel nct acestea s poat fi vizualizate de ctre toi participanii. Obiecte Creatorii paginilor Web nu mai sunt limitai la texte i grafic, aa inct putem fi siguri c vom gsi o mulime de elemente interesante pe Web i cu o vitez foarte mare de accesare. Cteva inovaii recente permit chiar i distribuirea de programe prin Web.

Mesaje e-mail complexe


Nu mai suntem limitai la mesaje simple de text. Limbajul HTML permite formatarea acestora, cu caractere aldine i cursive, i cu diferite formate de paragraf. Mai mult dect att, putem ataa mesaje de e-mail, imagini i alte elemente multimedia. Securitate Specialitii din spatele reelei Internet lucreaz pentru a securiza comerul on-line, oferind metode de protejare a tranzaciilor din multitudinea de domenii de activitate. Ei creaz un mediu mai sigur pentru copiii care se joac pe Web, furniznd criterii de evaluare a paginilor, i asigur securitatea rulrii aplicaiilor distribuite, prin autentificri de cod i o securitate foarte bine pus la punct.
7

Universitatea de Nord Baia Mare

2.1.

Pagini Web i Servere Web

Construcia World Wide Web este pe baza unui protocol numit Hypertext Transfer Protocol (HTTP). HTTP este un protocol mic i rapid care se potrivete foarte bine sistemelor informatice multimedia i distribuite n salturile ntre site-uri. Web-ul const n pagini cu informaii 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. Cnd un utilizator de la o adres IP specific solicit un anumit fiier, serverul Web ncearc s obin acel fiier i s-l trimit napoi utilizatorului. Fiierul solicitat poate fi codul surs HTML al unei pagini Web, o imagine GIF, un fiier Flash, un document XML, sau un fiier AVI. Browserul Web este cel care determin ceea ce trebuie cerut, nu serverul Web. Conexiunile la serverul Web stabilesc pe msur ce sunt accesate, se solicit o cere a unei pagini de la un server Web, o conexiune IP este stabilit prin Internet ntre gazda solicitant i gazda pe care ruleaz serverul Web. Pagina Web cerut este transmis prin acea conexiune, iar aceasta este ntrerupt de ndat ce pagina este primit (de exemplu, imagini GIF sau JPG). Pe un acelai host pot rula mai multe aplicaii de Internet, de exemplu un server Web, un server FTP, un server DNS i un server de mail SMTP POP3 pot rula n acelai timp. Fiecrui server i este atribuit un port pentru a asigura c fiecare server va rspunde numai cererilor din partea clienilor corespunztori. 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 pentru a fi ascunse, i de asemenea, pot fi instalate mai multe servere Web pe un singur calculator asociindu-le porturi diferite. Internetul reprezint o mulime globala de calculatoare interconectate, similar unei reele locale, dar la o scar mult mai larg. Elementul primar al Internet-ului este World Wide Web (cunoscut sub denumirea de Web sau WWW ). WWW este un suport pentru text, grafic, animaie i sunet. Documentele destinate Web-ului sunt cunoscute sub numele de pagini Web. Pentru a nelege mai bine World Wide Web se pornete de la modul n care este organizat informaia n mediile tiprite. Aceste medii reprezint un model adecvat pentru web i modul su de organizare. Paginile Web ofer posibilitati multiple i interesante: paginile de informaii se pot regsi pe calculatoare rspndite n lumea ntreag. Paginile n sine pot fi documente foarte complexe, interesante i atractive. Paginile Web sunt memorate pe HDD unui server specializat i gestionate printr-un software special i sunt regasite i afiate prin intermediul navigatoarelor Web (browser-e). Navigatorul Web afieaz paginile de Web prin interpretarea unor marcatori definii cu ajutorul unui limbaj special denumit HTML (HyperText Markup Language) utilizai pentru a codifica pagina de Web cu informaia de afiat. Marcatorii au diferite semnificaii. De exemplu acetia semnific modul n care vor fi aezate diversele pri ale paginii sau stabilesc legturi ntre documente/fiiere. Tipic, o pagin de Web este legat de o diversitate de fiiere cum ar fi fiiere text, grafice sau multimedia. Mecanismul prin care sunt create cile de acces ntre documente este denumit hipertext, prezentat anterior. Atunci cnd utilizatorul acioneaz prin clic de mouse
8

Universitatea de Nord Baia Mare

asupra unei legturi, cum ar fi o poriune de text, un element grafic, etc, navigatorul ncarc fiierul la care puncteaz aceasta legtura i l afieaz. Legturile din cadrul textului sunt uor de identificat deoarece majoritatea navigatoarelor, implicit, coloreaz diferit de restul textului aceste legturi i le subliniaz. Un site Web este definit ca o colecie coerenta de informaii prezentat sub forma unor pagini Web, fiiere multimedia, documente i de alte tipuri, ntre care exist legturi. Intr-un site bine proiectat toate celelalte pagini puncteaz ctre pagina principal, chiar dac navigatoarele moderne au butoane pentru acest lucru. Atunci cnd se realizeaz un site Web aceste fiiere sunt pstrate, n mod uzual, ntrun director sau o colecie de directoare n HDD local i este ferit cu numele de site local . Serverul Web este dedicat memorrii, transmiterii i regsirii paginilor de Web i a fiierelor legate de acestea. Prin publicarea unui site local (upload), directorul, mpreun cu coninutul su, este transferat la server-ul Web care conine Software-ul prin care site-ul este transmis navigatoarelor Web ale calculatoarelor conectate la Internet. Odata publicat, site-ul se transform din site local n site Web, iar interaciunea utilizatorului cu el are loc similar modului descris in figura 1.

Dei cea mai mare parte a informaiilor din World Wide Web este stocat n pagini Web scrise folosind limbajul HTML, exist un numr destul de mare de documente provenite din alte tipuri de servicii de publicare a informaiilor din Internet.

2.2.

Pagini Web Statice i Dinamice

HTML
Paginile Web sunt fiiere cu simplu text construite folosind limbajul Hypertext Markup Language (HTML). Acesta este implementat ca o mulime de tag-uri uor de nvat. Autorii paginilor Web folosesc aceste tag-uri pentru a marca paginile de text, iar browserele le folosesc pentru a ronda i afia informaiile pentru a putea fi vizualizate. Paginile Web pot s conin legturi hypertext la alte pagini.

JavaScript
9

Universitatea de Nord Baia Mare

HTML este un limbaj de markup. El permite crearea layout-ului paginilor i a formularelor, dar nimic mai mult. Pentru a se construi interfee intuitive i sofisticate este necesar 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 puin) de aproape orice browser existent. Folosind JavaScript se poate realiza: validarea formularelor, animarea textului i a imaginilor, crearea de meniuri drop-down i a controalelor de navigare, se pot efectua procesri de baz numerice sau asupra textelor i multe altele. Scripting-ul permite programatorilor s detecteze i s proceseze evenimentele. De exemplu, o pagin care se ncarc, un formular trimis, micarea pointer-ului mouse-ului asupra unei imagini sunt toate evenimente, iar script-urile pot fi executate automat de browser atunci cnd aceste evenimente au loc. Script-urile pot fi incluse n codul HTML sau pot fi stocate n fiiere externe i legate n interiorul codului HTML.

Tehnologii pe parte de Client


Majoritatea browserelor noi permit folosirea i a altor tehnologii, dintre care cele mai importante sunt: - CSS (Cascading Style Sheets) ofer o modalitate de a separa prezentarea de coninut astfel nct ambele s poat fi refolosite i modificate cu uurin. - DHTML (Dynamic HTML) o combinaie de HTML, script-uri i CSS care folosite mpreun, pot realiza interfee 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 interfee atractive i portabile.

URL-uri
Formatul unei locaii 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/resursa Protocolul sau serviciul este reprezentat de regulile care guverneaz transferul datelor n reea. 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 fiierelor prin intermediul protocolului de transfer de fiiere FTP; o gopher indic adresa URL a unui director Gopher; reprezint un sistem utilizat pentru localizarea i transferul informaiilor de indexare a numelor fiierelor n Interent; o telnet permite conectarea n timp real la un alt calculator n Internet i utilizarea acestuia ca i cum ar fi un calculator local. In sistemele Windows, n anumite situaii protocolul poate lipsi pentru anumite adrese, tipul acestuia fiind determinat din numele gazdei. Numele calculatorului gazd identific n mod unic un calculator n cadrul reelei. Numele poate fi reprezentat att printr-o adresa IP, ct i prin denumirea unui calculator local sau a unui calculator din Internet folosind specificaiile DNS.
10

Universitatea de Nord Baia Mare

Portul este reprezentat printr-un numr i este specific fiecrei aplicaii. Majoritatea aplicaiilor de reea utilizeaz porturi pentru comunicare. Pe un calculator pot exista mai multe aplicaii de reea, fiecare aplicaie utiliznd un port distinct. Numele resursei este reprezentat de numele fiierului referit. Acesta poate fi o pagina Web, un fiier multimedia, un document, un fiier executabil. O limitare o constituie faptul c un URL nu poate conine spaii i alte caractere speciale, astfel c orice spaiu sau caracter special se va converti printr-un cod asociat acestora precedat de simbolul %. Alte URL-uri folosite alturi de cele prezentate sunt cele de: o e-mail, prin intermediul crora se pot doar transmite mesaje de pot 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: Hypertext Preprocessor", este un limbaj de scripting utilizat pe scar larg, realizat i distribuit n sistem Open Source, care este special realizat pentru a dezvolta aplicaii web, prin integrarea codului PHP n documente HTML. Sintaxa sa provine din C, Java i Perl i este uor de nvat. Scopul principal al limbajului este 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 rapid un instrument de frunte pentru dezvoltarea aplicaiilor n Web. Totui, spre deosebire de alte instrumente populare pentru dezvoltarea aplicaiilor Web, cum este Perl, PHP este un limbaj de programare comod pentru nceptori, chiar i pentru cei care nu au mai desfurat activiti de programare n trecut. Ca i alte limbaje de scripting pentru Web, PHP v permite s furnizai un coninut Web dinamic, adic un coninut Web care se modific automat de la o zi la alta sau chiar de la un minut la altul. Coninutul Web este un element important n susinerea traficului unui sit Web; de regul, vizitatorii nu vor mai reveni la o pagin Web care conine aceleai informaii ca i cele prezentate la ultima vizit. Pe de alt parte, siturile Web frecvent actualizate pot atrage cantiti 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 obine accesul la fiiere, baze de date i alte resurse inaccesibile programului JavaScript. Acestea constituie bogate surse de coninut dinamic, care atrag vizitatorii.

Noiuni Fundamentale
Spre deosebire de un script scris n alte limbaje cum ar fi Perl sau C n loc de a scrie un program cu o mulime 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 sfrit ce permit intrarea i ieirea din "modul PHP". <html> <head> <title>Exemplu</title> </head> <body> <?php
11

Universitatea de Nord Baia Mare

echo "Salut, sunt un script PHP!"; ?> </body> </html> Diferena dintre PHP i altceva cum ar fi JavaScript, este acela c PHP este executat pe server pe cnd 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 rezultatele scriptului ce este rulat, fr a vedea n nici un fel codul din spatele acestuia. Se poate chiar configura serverul de web ca acesta s proceseze toate fiierele HTML cu PHP i astfel nu exit nici o metod ca un utilizator s tie de fapt ce exist n fiiere. Cu PHP se poate face orice. PHP este n principal axat pe partea de scripting ce ruleaz pe server, deci poate face orice face i un program CGI, cum ar fi colectarea de date de la formulare, generarea de coninut 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 tradiional 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 de web 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 fr a fi nevoie de server i de browser, ci doar de interpretorul PHP. Aceast metod este ideal pentru script-urile ce se vor a fi executate de regul folosind cron (task scheduler n Windows), sau sarcini simple de procesare a textelor. - Scrierea de aplicaii ce ruleaz de partea clientului n mod grafic (GUI). Probabil c PHP nu este limbajul cel mai bun de a scrie aplicaii cu ferestre pentru Windows sau alte sisteme de operare, dar dac este bine cunocut i se dorete folosirea unor faciliti avansate ale PHP-ului n aplicaiile ce ruleaz de partea clientului, se poate totui folosi PHP-GTK pentru a scrie astfel de programe. De asemenea, exist posibilitatea de a scrie aplicaii ce ruleaz pe platforme diferite folosind aceast metod. PHP-GTK este o extensie a PHP-ului, nedisponibil n distribuia principal de PHP. PHP poate fi folosit pe aproape toate marile sisteme de operare, incluznd Linux, multe variante de Unix (incluznd HP-UX, Solaris i OpenBSD), Microsoft Windows, Mac OS 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 pentru celelalte suport standardul CGI, PHP putnd 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 programarea orientat obiect, sau chiar s se combine acestea. Cu toate acestea, nu orice facilitate a standardului POO este prezent n versiunea curent a PHP-ului, multe librrii de cod i aplicaii mari (incluznd i librria PEAR) sunt scrise folosind doar cod POO. Cu PHP programatorul nu este limitat s scoat rezultat HTML. Posibilitile PHPului includ afiarea de imagine, fiiere PDF i chiar filmulee Flash (folosind librriile libswf i Ming) toate generate instant. Se poate de asemeanea ca rezultatul s fie orice fiier text, cum ar fi XHTML sau orice alte fiiere XML. PHP poate genera automat aceste fiiere i s
12

Universitatea de Nord Baia Mare

le salveze n sistemul de fiiere n loc s le afieze, formnd un cache de partea serverului pentru coninutul dinamic. Una dintre cele mai puternice i importante faciliti n PHP este suportul su pentru o gam larg de baze de date. Scrierea une pagini de web ce interacioneaz cu o baz de date este 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 reea i se poate interaciona ntre aproape toate limbajele de programare Web. PHP are suport pentru instanierea obiectelor Java i utilizarea lor ntr-un mod transparent ca obiecte PHP. Se pot de asemenea folosi extensii CORBA pentru a accesa obiecte aflate la distan. PHP are capabiliti extrem de folositoare pentru procesarea textului, de la POSIX Extins sau expresii regulare Perl, pn la parsarea documentelor XML. Pentru parsarea i accesarea documentelor XML, suport standardele SAX i DOM. Folosind PHP n domeniul comerului electronic, sunt foarte folositoare pentru programul tu de plai online funcii de plat Cybercash, CyberMUT, VeriSign Payflow Pro i CCVS. n cele din urm, dar nu n ultimul rnd, PHP are i alte extensii interesante, cum ar fi funcii ale motorului de cutare mnoGoSearch, funcii pentru accesarea IRC-ului, multe utilitare de compresie (gzip, bz2), conversie de calendar, traducere, etc.

Ieirea din modul HTML


Cnd PHP interpreteaz un fiier trece prin textul acestuia pn cnd ntlnete unul din tag-urile speciale care i spun s porneasc interpretarea textului ca fiind cod PHP. Mai departe, parser-ul execut tot codul ntlnit, pn la ntlnirea unui tag PHP de nchidere, care anun trecerea normal prin text, din nou. Acest mecanism permite nglobarea codului PHP n interiorul codului HTML: tot ceea ce este n afara tag-urilor PHP este lsat nemodificat, n timp ce tot ceea ce este n interior este interpretat ca fiind cod. Exist patru categorii de tag-uri care pot fi folosite pentru a marca bolcurile de cod PHP. 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 fi convenabile, ele nu sunt la fel de portabile ca cele n format lung. De asemenea, dac se dorete includerea codului PHP n XML sau XHTML, este necesar s se foloseasc tag-urile n forma <?php. . .?> pentru a corespunde standardului XML Cele 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 PHPului n cod corform standardului XML, cum ar fi XHTML.
13

Universitatea de Nord Baia Mare

Cea de-a doua variant nu este ntotdeauna posibil. Tag-urile prescurtate pot fi folosite doar dac au fost activate. Acest lucru poate fi fcut prin intermediul funciei short_tags() (numai n PHP3), prin activarea opiunii short_open_tag n fiierul de configurare, sau prin compilarea scripturilor folosind opiunea enable-short-tags. Chiar dac este implicit activat n fiierul 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 fost activate folosind setarea asp_tags din fiierul de configurare. PHP permite folosirea unor structuri ca cea de mai jos:

<?php if ($expresie) { ?> <strong>Este adevarat.</strong> <?php } else { ?> <strong>Este fals.</strong> <?php } ?>
Aceasta funcioneaz exact cum este de ateptat, deoarece cnd PHP ntlnete tag-ul de nchidere ?> ncepe afiarea a ceea ce ntlnete pn la apariia unui alt tag de start. n cazul blocurilor mari de text, ieirea din modul PHP este n general mai eficient dect trimiterea textului folosind echo() sau print().

Separarea instruciunilor
Instruciunile sunt separate la fel ca n C sau Perl fiecare instruciune este terminat cu un semn punct i virgul. Tag-ul de nchidere implic i sfritul instruciunii, deci urmtoarele dou exemple sunt 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 pn la sfritul liniei curente sau pn la terminarea blocului curent PHP, oricare din aceste dou cazuri apare primul.

Tipuri de date
PHP suport opt tipuri primitive de date.
14

Universitatea de Nord Baia Mare

Patru tipuri scalare: boolean, integer , float (numere n virgul mobil, sau double) i string. 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 funcie 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 numr 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 ali factori. Unele din aceste variabile nu vor fi folosite cnd PHP ruleaz n linie de comand.

PHP Superglobals
$GLOBALS - Conine 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 de execuie 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 fiiere folosind modul POST 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

Universitatea de Nord Baia Mare

O important caracteristic a scope-ului variabilei o reprezint variabila static. O variabil static exist n scope-ul funciei locale, dar nu i pierde valoarea cnd execuia programului prsete acest scope. S considerm urmtorul exemplu:

<?php function Test () { $a = 0; echo $a; $a++; } ?>


Aceast funcie este destul de nefolositoare deoarece de fiecare dat este apelat s seteze valorea 0 variabilelei $a i s printeze "0". Instruciunea $a++ care incrementeaz variabila nu servete nici unui scop deoarce, de ndat ce funcia iese, variabila dispare. Pentru folosirea unei funcii de numrare care nu va mai pierde numratoarea curent, variabiala $a este declarat static. <?php function Test() { static $a = 0; echo $a; $a++; } ?> Astfel, de fiecare dat cnd funcia Test() este apelat, aceasta va afia valoarea variabilei $a i o va incrementa. Variabilele statice ofer, de asemenea, un mod de a lucra cu funciile recursive. O funcie recursiv este o funcie care se autoapeleaz. Trebuie avut grij la scrierea unei funcii recursive, deoarece este posibil realizarea unei recursii infinite. Trebuie asigurat un mod de a termina recursia. Urmtoarea funcie recursiv simpl numr pn la 10, folosind variabila static $count pentru a tii cnd s se opreasc: <?php function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test (); } $count--; }

?> Formulare HTML (GET i POST)


16

Universitatea de Nord Baia Mare

Cnd un formular este trimis unui scrip PHP, informaiile din acel formular sunt automat transmise scriptului PHP. Sunt mai multe modaliti de a accesa informaia, de exemplu: <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 funcie de setrile i preferinele particulare, sunt multe modaliti de a accesa datele din formulare HTML. Cteva 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 informiilor din QUERY_STRING (informaiile de dup semnul ? din URL). De exemplu, URL-ul http://www.example.com/test.php?id=3 conine date GET care sunt accesibile prin $_GET['id'].

2.4.

Baze De Date

Noiuni generale
Bazele de date au devenit o component esenial a vieii de fiecare zi n societatea modern. n cursul oricrei zile, fiecare dintre noi desfurm activiti care implic interaciunea cu o baz de date, ca de exemplu, depunerea sau extragerea unor sume de bani din banc, rezervarea biletelor la tren sau avion, rezervarea locurilor la hotel, cutarea unei referine bibiografice ntr-o bibliotec computerizat (digital library), etc. n sensul cel mai larg, o baz de date (database) este o colecie de date corelate din punct de vedere logic, care reflect un anumit aspect al lumii reale i este destinat unui anumit grup de utilizatori. O baz de date poate fi creat i meninut manual (de exemplu, fiele de eviden a crilor dintr-o bibliotec, aa cum erau folosite cu ani n urm) sau computerizat, ceea ce reprezint obiectul cursului de fa.

O baz de date trebuie s asigure: abstractizarea datelor (baza de date fiind un model al realitii),
17

Universitatea de Nord Baia Mare

integrarea datelor (baza de date este un ansamblu de colecii de date intercorelate, cu redundan controlat), integritatea datelor (se refer la corectitudinea datelor ncarcate i manipulate astfel nct s se respecte restriciile de integritate), securitatea datelor (limitarea accesului la baza de date), partajarea datelor (datele pot fi accesate de mai muli utilizatori, eventual n acelai timp), independena datelor (organizarea datelor s fie transparent pentru utilizatori, modificrile n baza de date s nu afecteze programele de aplicaii).

2.5.

Limbajul SQL

SQL (Structured Query Language - Limbaj Structurat de Interogare) , aprut n 1970 este un limbaj de programare specific lucrului cu bazele de date, devenit un standard n domeniu (standardizat ANSI-ISO), fiind cel mai popular limbaj utilizat pentru creearea, modificarea, regsirea i manipularea datelor de ctre SGBD-urile (Sistemele de Gestiune a Bazelor de Date) relaionale.

Caracteristici generale:
SQL conine att componena de descriere a datelor (LDD), ct i componena de

manipulare a datelor (LMD); Manipularea (interogarea) este partea extins; Limbaj neprocedural: secvena de comenzi (instruciuni), fiecare comand este transmis SGBD-ului, este interpretat i returneaz un rezultat.

Prezentarea limbajului SQL


Standardul SQL3 (SQL 98) definete modelul obiect-relaional de baze de date. Structura sintactica: limbajul este compus din instruciuni (comenzi). O comand SQL este o secven de elemente componente (token). Elementele componente pot fi: cuvinte cheie, identificatori, caractere speciale i constante (literali).

Cuvintele cheie i identificatorii


Acetia au o structur lexical identic. Lexical, un cuvnt cheie sau un identificator inseamn o secven de litere i caracterul _. Din punct de vedere semantic, cuvintele cheie sunt elemente cu semnificaie 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 difereniaz caracterele mari de cele mici: este case insensitive. Identificatorii au aceeai structur lexical; din punct de vedere semantic reprezint nume ntr-o comand i pot fi: nume de tabele, de coloane, etc. SQL folosete termenii de tabel, coloan i linie pentru relaie, atribut i tuplu (cei subliniai sunt cei folosii n definirea matematic a modelului relaional). Identificatorii sunt: - obinuii (simpli): Secie, ANGAJAT, etc;
18

Universitatea de Nord Baia Mare

- delimitai: reprezint un nume pus ntre ghilimele, care poate s conin orice fel de caractere. Un identificator delimitat este folosit, n general, pentru un nume mai mare de tabel.

Constantele
Constantele pot fi: - de tip numr ntreg: ex 1234 (reprezentate pe 4 octei); - de tip numr real: ex 12.5, 12e5 (reprezentate de 8 octei, n formatul double); - de tip ir de caractere: ex Acesta este un ir; - de tip NULL: constanta special, reprezint lipsa de informaie.

Caracterele speciale
- operatori (+,-,); - ; termin o comanda; - punctul zecimal (constante reale, codificri ale coloanelor); - separatorii: blank, TAB, CR ; sunt cerui uneori ntre elemente.

Operatori, expresii i funcii SQL


Operatorii SQL: pot fi reprezentai prin unul sau mai multe caractere speciale (+, <, ) sau prin cuvinte cheie (AND, OR, NOT, UNION). Operatorii pot fi clasificai: - 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 informaie)). Nu exist tipul de date boolean asupra caruia s se aplice operatorii logici dar operatorii de comparaie returneaz o valoare booleana. Operatorii de comparaie evalueaz orice expresie la o valoare logica (bool): TRUE, FALSE. Tipul boolean exist nsa incepnd din SQL3. Operatorii de comparaie pot fi: aritmetici: <, >, <=, >=, =, != (<>); relaionali 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 operaii.

Funciile SQL:
- funcii totalizatoare (de grupare): calculeaz anumite valori pentru coloane din tabele: SUM, AVE, MIN, MAX, ; - funcii matematice: calcule trigonometrice, puteri, logaritmi, rotunjiri;
19

Universitatea de Nord Baia Mare

- funcii pentru iruri; - funcii pentru date calendaristice; - funcii pentru conversii. Ex: calcularea mediei SELECT (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 a datelor); B. Comenzile de manevrare a datelor (LMD): SELECT (interogrile de baza), INSERT, UPDATE, DELETE. SELECT n.*, e.* FROM note n LEFT JOIN elevi e ON n.elevID=e.elevID WHERE e.adminID='{$_SESSION['logat_elev_id']}' ORDER by notaID ASC

Ex:

SQL asigur toate operaiile care se consider necesare ntr-o baz de date.

2.6.

MYSQL

Prezentare general
MySQL este un sistem de gestiune a bazelor de date relaional, produs de compania suedez 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). Dei este folosit foarte des mpreun cu limbajelel de programare JAVA,PHP, cu MySQL se pot construi aplicaii n orice limbaj major. Exist multe scheme API disponibile pentru MySQL ce permit scrierea aplicaiilor n numeroase limbaje de programare pentru accesarea 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 tip ODBC denumit MyODBC permite altor limbaje de programare ce folosesc aceast interfa, s interacioneze cu bazele de date MySQL cum ar fi ASP sau Visual Basic. n multe cri de specialitate este precizat faptul c MySQL este mult mai uor de invat i folosit dect multe din aplicaiile de gestiune a bazelor de date, ca exemplu comanda de ieire fiind una simpl i evident: exit sau quit. Pentru a administra bazele de date MySQL se poate folosi modul linie de comand sau, prin descrcare de pe internet, o interfa grafic: MySQL Administrator i MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicaia SQL Manager. 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 uor de utilizat. Iniial a fost dezvoltat pentru a manipula baze de date de dimensiuni mari mult mai rapid dect soluiile 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

Universitatea de Nord Baia Mare

administrative i o gam larg de interfee pentru programarea aplicaiilor (Application Programming Interfaces APIs)

Caracteristicile de baz ale MySQL


Cteva dintre caracteristicile de baz ale MySQL sunt: - Funcioneaz 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 uuin pe mai multe procesoare dac sunt disponibile - Un sistem de alocare a memoriei foarte rapid i bazat pe thread-uri - Folosete tabele temporare stocate n memorie - Funciile SQL sunt implementate folosind o bibliotec de clase optimizat i sunt foarte rapide. De obicei, nu are loc alocare a memoriei dup iniializarea interogrilor. - Serverul este disponibil ca program separat ce poate fi folosit ntr-un mediu de reea de tip client/server. De asemenea, este disponibil i ca bibliotec ce poate fi inclus n aplicaii de sine stttoare - Ofer motoare tranzacionale i non-tranzacionale de stocare a datelor

Tipuri de date utilizate de MySQL


Tipurile de date care apar n coloanele MySQL sunt diferite n funcie de tipul lor. MySQL aloc spaiu pe disc n funcie de tipul de date specificat de utilizator. Iat i tipurile de date, spaiul pe care l ocup precum i valorile minime i maxime pe care le pot avea: Tipul de cmp TIMESTAMP ofer posibilitatea de a data automat operaiile de tip INSERT i UPDATE. El este compus implicit din 14 caractere pentru formatul 'YYYYMMDDhhmmss' dar putem s specificm la crearea unui tabel c dorim s conin mai puine caractere. Tipurile de string-uri n MySQL sunt BLOB, TEXT, CHAR, VARCHAR, ENUM i SET. n tabelul urmtor putei vedea marimea maxim admis pentru cele mai folosite dintre ele precum i spaiul alocat pe disc pentru fiecare: Cmpul de tip BLOB poate conine o cantitate variabil de informaie, similar cu TEXT nsa diferit printr-un singur aspect: cutarea ntr-un cmp BLOB este case sensitive (se face diferen ntre majuscule i minuscule), iar ntr-un cmp TEXT nu este. Tipul VARCHAR este similar tipului TEXT cu deosebirea ca ntr-o coloan de tip VARCHAR putem specifica numrul 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 interactiv cu cu serverul MySQL instalat pe acelai calculator realizeaz lansnd n execuie monitorul MySQL numit mysql.exe din directorul mysql/bin: C:\mysql\bin>mysql.exe Welcome 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

Universitatea de Nord Baia Mare

mysql>_ Comenzile SQL se pot scrie cu litere mari sau mici, avnd acelai efect. Comenzile SQL se termin, uzual, cu caracterul ; . Dnd comanda help; (sau \h sau ?) pe ecran apar o serie de comenzi MySQL importante. Cteva 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 definiiei unei tabele se realizeaz folosind comanda alter -insert - adugare de nregistrri ntr-un tabel -update - permite modificarea valorilor unor cmpuri dintr-un tabel -drop - permite suprimarea unui tabel din baza de date -show - se folosete pentru listarea tabelelor care alctuiesc baza de date -select - este cea mai complex comand din limbajul SQL i este destinat regsirii unor anumite date -quit - determin ntreruperea conexiunii cu serverul MySQL

CAPITOLUL 3. SPECIFICAIILE APLICAIEI


3.1. Prezentare general

Odat ce omul a devenit o fiin economic (homo oeconomicus) putem presupune ca a aprut i nevoia de msurare i nregistrare a activitii sale economice desfurate la nivel individual sau comunitar. Coninutul informaional din ntreaga lume n zilele noastre este convertit la o form digital, fcnd astfel informaiile disponibile oricui, oriunde i oricnd. Prin intermediul sistemelor informatice, multe dintre activitile pe care omul le ntreprinde pot fi uurate i chiar mbuntite. Apariia calculatoarelor i folosirea lor n toate domeniile a reprezentat o dezvoltare major n viata omenirii. Din acea zi n care omul a nceput s foloseasc calculatorul fie pentru nevoile personale, fie pentru nevoile comunitii, a realizat c i uureaz viaa i c poate s realizeze lucruri pe care pn atunci nu putea, sau le fcea cu munc grea.
22

Universitatea de Nord Baia Mare

S ne gndim puin cum lucrau institutele de invmnt naintea apariiei calculatoarelor. Notele erau introduse n catalog de hrtie. Gndii-v ce cantitate de hrtii sa adunat, i pentru stocarea acestora era necesar un spaiu de depozitare mare. Era doar un dezavantaj al inexisteei calculatoarelor. Alt dezavantaj ar fi faptul c nregistrrile, datele, nu erau n siguran, nu erau protejate. Calculatoru prin apariia lui a rezolvat toate dezavantajele i defectele trecutului. colile din zilele noastre folosesc calculatoare i programe diferite pentru ndeplinirea serviciilor, simplificnd sarcinile omului. Aplicaia Sistem de management al colaritii Elevilor a fost proiectat s fie utilizat de ctre profesorii i elevii unei clase. Este conceput n aa fel nct s fie uor de neles i de folosit. Persoanele care vor folosi acest program nu necesit cunotine superioare n domeniul informaticii. Proiectul conine doar ferestre, butoane, cmpuri de introducere a datelor, i tabele, iar utilizarea acestora este foarte simpl. Adugarea, tergerea elevilor si a profesorilor, crearea, modificarea conturilor sunt doar cteva dintre operaiile care se pot face n interiorul aplicaiei. Aplicaia dispune i de o parte care trimite n cazul n care un elev i-a uitat parola de autentificare.

3.2.

Pagina de acces

Fiierul predefinit pentru directorul web catalog este index.php, deci nseamn c atunci cnd accesm serverul prin comanda http://localhost/catalog/ serverul va trimite fiierul de baz, adic prima pagin a site-ului (index.php) ce va fi afiat n browser (Fig 3.1).

Fig 3.1 Pagina principala

23

Universitatea de Nord Baia Mare

Asa cum putei vedea, prima magina reprezint pagina de autentificare. Paginile sunt concepute astfel ca s fie uor de folosit de elevi si profesori. Prin intermediul acestei pagini pot accesa utilizatorii datele personale si informatiile asupra notelor obtinute la fiecare materie. 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 mari dect ar fi necesar, ceea ce conduce la o funcionare neperformant a browserelor web. Afirmaia in sine este n mare parte adevarat deoarece paginile web produse folosesc design-ul pe baz de tabel. n plus, produsul a mai fost criticat n trecut i pentru producerea de coduri care adesea nu erau conform standardelor W3C, dar acest aspect a fost mult mbuntit n versiunile recente. Cu toate acestea, Macromedia a crescut suportul pentru tehnologia CSS precum i alte modaliti de design fr a fi necesar folosirea design-ului pe baz de tabel. Dreamweaver permite folosirea majoritii browserelor instalate pe calculatorul utilizatorului, pentru a previzualiza website-ul creat. De asemenea conine i cteva utilitare pentru administrarea site-urilor, cum ar fi cele pentru a gsi i modifica un paragraf sau o linie de cod, n ntregul web site, pe baza oricror parametri specificai de ctre utilizator. Cu ajutorul panourilor de stare se poate crea cod JavaScript fr a avea cunotine de programare.

Fig 3.2 Dreamweaver CS3 Odat cu apariia versiunii MX, Macromedia a ncorporat utilitare de generare dinamic a coninutului. De asemenea este oferit suport pentru conectarea la baze de date (cum ar fi MySQL i Microsoft Access) pentru a filtra i afia coninutul folosind script-uri de genul PHP, ColdFusion, Active Server Pages (ASP) i ASP.NET, fr a avea nevoie de o prealabil experien n programare. Un aspect foarte ludat al Dreamweaver-ului l reprezint arhitectura sa extensibil. Extensiile, aa cum sunt ele cunoscute, sunt mici programe, pe care orice dezvoltator le poate scrie (de obicei n HTML i JavaScript) i pe care oricine le poate descarca i instala, acestea
24

Universitatea de Nord Baia Mare

aducnd un spor de performan i funcionalitate mbuntit programului. Exist o comunitate de dezvoltatori care produc aceste extensii i le public (att comercial ct i gratuit) pentru probleme de dezvoltare web, de la simple efecte rollover pn la soluii complete de vnzare online. Header-ul conine dou poze: prima conine titlul lucrrii. Am prelucrat aceast poz folosind Adobe Photoshop, adugnd dou pictograme. Dup cum ai observat, de pe prima pagin elevii au posibilitatea de nregistrare i recuperare parol. Funciile celor dou link-uri v voi prezentate mai n amnunte n urmtorul capitol.

Fig 3.3 Photoshop CS3

3.3.

Stocarea informaiilor

O aplicaie pentru web prelucreaz date de diferite naturi: siruri de caractere, valorile numerice, date calendaristice etc. Exemple : denumiri de materii, nume de utilizatori, parole, adrese de e-mail, note, data primirii notelor etc. Informaiile pstrate ntr-o baz de date relaional sunt dispuse ntr-un ansamblu de fisiere. Din considerente legate de cresterea vitezei de accesare a informaiilor, fisierele sunt formate din articole avnd aceeasi structur. Articolele au o structura a unui fisier de date este definit la crearea sa, prin precizarea cmpurilor pe care le va conine fiecare articol. Un cmp dintr-un articol conine o informaie elementar. Fiecare cmp are un nume, conine un tip de informaie (sir de caractere, numr, dat calendaristic, fisier etc.), are o lungime de reprezentare a informaiei si, n cazul pentru cmpurilor numerice, are precizat numrul 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 aplicaie de tip server este un program care asteapt comenzi din partea unor aplicaii client. n cazul serverelor de baze de date relaionale (Oracle, MySQL, IBM DB2,
25

Universitatea de Nord Baia Mare

Microsoft Access, OpenOffice Base etc.) se foloseste limbajul SQL (Structured Query Language). In stocarea informatiilor introduse in baza de date am folosit XAMPP-ul, care este un pachet de aplicaii care constituie infrastructura software necesar gzduirii 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 gzduiesc saituri, dup instalarea pachetului de aplicaii trebuie operate unele configurri, mai ales pentru ameliorarea securitii acestor pachete. XAMPP a fost creat ns pentru a pune la dispoziia dezvoltatorilor un instrument eficient de testare a diferitelor aplicatii in dezvltare. Odat instalat pe calculatorul propriu, pachetul de aplicaii va face ca acesta s aib comportamentul unui server, permind testarea aplicaiilor scrise fr a intra n conflict cu firma care va gzdui n final produsul software realizat. XAMPP (http://www.apachefriends.org/en/xampp-windows.html) are si o variant lite , XAMPP Lite, care poate fi utilizat imediat dup descrcare si dezarhivare, fr a fi necesar instalarea. Dup instalare, prezena pe calculator a pachetului de aplicaii se manifest prin aplicaia XAMPP Control Panel Application.

Fig 3.4 XAMPP Control Panel Application Dup lansarea n execuie a acestei aplicaii se vor apsa butoanele Start din dreptul celor dou aplicaii eseniale testrii saiturilor : Apache si MySQL. Not : Dac se utilizeaz varianta XAMPP Lite, se dezarhiveaz arhiva descrcat din Internet n rdcina discului care va fi folosit pentru testarea site-urilor si aplicatiilor in dezvoltare. n urma desarhivrii, pe discul selectat va fi adugat directorul xampplite. n aceast variant pornirea aplicatiilor Apache si MySQL necesare testrii saiturilor se realizeaz selectnd xampp_start din directorul xampplite.

26

Universitatea de Nord Baia Mare

Fig 3.5 Directorul xampplite Pentru oprirea aplicaiilor se va selecta xampp_stop. Verificarea funcionrii aplicaiilor necesare pentru testarea saiturilor se poate realiza tastnd n browser adresa aplicaiei web integrate n XAMPP i destinate administrrii serverului de baze de date MySQL: http://localhost/phpmyadmin/. Ca aplicaie de tip server am folosit Apache. O aplicaie de acest tip este un program reactiv. El ruleaz n continuu pe calculatorul destinat pstrrii unuia sau mai multor saituri web i ateapt cereri din partea unei aplicaii client (Internet Explorer, Mozilla Firefox, Opera etc.). Ca aplicaie, serverul pentru web acceseaz un ansamblu de fiiere dispuse pe HDD a calculatorului pe care acesta este instalat. Dac o aplicaie client solicit un fiier existent, serverul pentru web l va furniza respectnd regulile unui protocol precizat n cererea clientului (http). Paginile web sunt de regul documente multimedia coninnd text, imagini, sunet, animaii. Ele sunt stocate pe HDD n mai multe fiiere, fiecare fiier coninnd informaii de un anumit tip. Corespunztor, serverul pentru web va primi din partea aplicaiei client o suit de cereri de transfer de fiiere ncepnd cu fiierul principal. Asamblarea documentului din fragmentele primite cade n sarcina aplicaiei client. Pe serverele pentru Internet funcionnd sub UNIX sau Linux, Apache este configurat astfel nct rdcina structurii arborescente de directoare care gzduiesc saituri difer de cea creat n urma instalrii XAMPP.

27

Universitatea de Nord Baia Mare

CAPITOLUL 4. IMPLEMENTAREA I UTILIZAREA APLICAIEI

4.1.

Crearea bazei de date a aplicaiei

4.1.1. Crearea unei baze de date folosind XAMPP


Baza de date a fost realizat cu aplicaia XAMPP folosind phpMyAdmin. Pentru deschiderea aplicaiei phpMyAdmin se pornete XAMPP i se tasteaz n caseta de text pentru adrese a aplicaiei Internet Explorer adresa http://localhost/phpmyadmin/

Fig 4.1 n fereastra afiat se va tasta numele noii baze de date (catalog) i se va apsa butonul Create:

28

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 afia de fiecare dat comenzile pe care le-a trimis serverului de baze de date MySQL.

Fig 4.3 Odat creat, baza de date catalog va fi baz de date curent. Comenzile ulteriore, de exemplu cele prin care se vor crea tabelele (fiierele) acesteia, se vor adresa acesteia. La urmtoarele porniri ale aplicaiei phpMyAdmin intrarea n baza de date catalog se va realiza prin selectarea acesteia n arborele afiat n panoul din stnga al aplicaiei.

Fig 4.4

4.1.2. Crearea unui tabel al bazei de date

Crearea tabelei admin


29

Universitatea de Nord Baia Mare

Tabelul admin va conine datele de identificare a utilizatorilor autorizai s opereze n baza de date. 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 cmpuri (engl. fields). n vederea crerii comenzii create table, phpMyAdmin va cere introducerea numelui i tipului fiecruia dintre cmpurile tabelului.

Fig 4.6 Cmpurile tabelului admin sunt adminID (INT - valoare ntreag), username (VARCHAR lungime maxim 20 caractere), password (VARCHAR - lungime maxim tot 20 caractere), email(VARCHAR), matID(INT- valoare ntreag), tipID(INT- valoare ntreag). Tipul VARCHAR se folosete pentru siruri de caractere de lungime variabil. Pentru cmpul adminID 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 are rolul de identificator unic al acestora. Dac ulterior se va dori suprimarea unui articol se va putea selecta articolul indicndu-i cheia primar. Proprietatea AUTO_INCREMENT indic modul de formare a valorilor cmpului adminID. Valoarea acestuia pentru un nou articol care urmeaz s fie adugat se calculeaz automat, prin incrementarea valorii corespunztoare ultimului articol present n tabel. Cmpul username s-a definit ca fiind INDEX. Impunerea ca index a unui cmp faciliteaz cutrile n tabel efectuate dup valori ale respectivului cmp. n cazul dat, serverul MySQL va ataa tabelului admin un fiier ale crui nregistrri vor conine perechi de valori username - adres articol pe HDD.

30

Universitatea de Nord Baia Mare

n noul fiier nregistrrile vor fi pstrate ordonate cresctor dup valorile cmpului username. La cutarea dup username a unui articol din tabelul admin se va cuta mai nti n fiierul asociat tabelului adresa articolului cutat dup care se va extrage direct articolul dorit. Not: Spre deosebire de PRIMARY, INDEX nu nseamn valori distincte. Cmpul username permite introducerea aceluiai nume de mai multe ori. n acest caz, n fiierul asociat tabelului admin vor fi nregistrate grupat mai multe perechi username adres coninnd acelai nume. La cutarea unui nume care apare repetat, serverul MySQL va furniza tot grupul de articole corespunznd criteriului de cutare impus. Crearea tabelului se realizeaz prin apsarea butonului . phpMyAdmin va afia i comanda CREATE TABLE trimis serverului MySQL.

Fig 4.7
Crearea tabelei elev Baza de date catalog va conine printre altele un tabel cu datele elevilor i a profesorilor. Pentru afiarea acestora se va declara n prealabil tabelul elevi respectiv profesori. Rolul acestuia va fi acela de a permite ulterior afiarea i modificarea datelor personale. Tabelul elevi are 8 cmpuri, elevID fiind declarat cheie primar.

Fig 4.8

31

Universitatea de Nord Baia Mare

Fig 4.9

Fig 4.10 Not: Cmpul tipID reprzinta tipul de utilizator (administrator, elev, professor). Cele 3 tipuri de utilizatori sunt prezentate mai explicit n Capitolul 5.

4.2.

Interfaa cu utilizatorul

Aplicaia prin lansarea ei produce apariia ferestrei principale a paginii Web, care se ocup de autentificarea utilizatorilor care doresc s foloseasc acest aplicaie.

32

Universitatea de Nord Baia Mare

Fig.4.11 Pagina principal Exist trei tipuri de utilizatori care pot folosi aceast aplicaie, fiecare avnd privilegii unice. Cele trei tipuri de utilizatori sunt urmtoarele: - 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 respective Dac 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 ntmpl mai multe lucruri de care utilizatorul nu tie, cum ar fi: - primul lucru, care se ntmpl cnd utilizatorul introduce informaiile necesare de autentificare (nume utilizator, parol) i apas butonul AUTENTIFICARE, este verificarea corectitudinii 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

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 gsit o coresponden se afieaz 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 Fuciile pentru sistem a celor dou pagini sunt incluse in fiierul catalog_fns.php prezentat mai jos. <?php require_once('db_fns.php'); require_once('user_auth_fns.php'); require_once('output_fns.php'); ?> Acest fiier este doar un container pentru alte trei fiiere incluse care le vom utiliza n cele dou pagini: nregistrare elevi i Recuperare parol. Este structurat n acest mod pentru ca funciile se ncadreaz n grupuri logice. Unele dinre aceste grupuri pot fi utile pentru alte proiecte, aa c am plasat fiecare grup de fincii ntr-un fiier diferit pentru a ti unde le pot gsi atunci cand voi avea din nou nevoie de ele. Fiierul catalog_fns.php l-am construit deoarece n scripturile acestor dou pagini voi folosi o mare parte din cele trei fiiere cu funcii. Este mai uor s includem doar acest fiier n script n loc s am trei instruciuni require. n caz particular utilizez funcii din fiierul catalog_fns.php. Acestea sunt funcii destul de simple, iar majoritatea ieirii este cod HTML simplu. n continuare v voi prezenta cele dou pagini : nregistrare elevi i Recuperare parol.

4.2.1. nregistrare elevi


nregistrarea se poate efectua numai n cazul n care contul elevului, care dorete s nregistreze, nu a fost deja creat de ctre administrator. Exist o posibilitate pentru a accesa pagina de nregistrare: Selectnd nregistrare elevi din meniul :
34

Universitatea de Nord Baia Mare

Fig.4.13 nregistrare 1 Selectnd cu mouse-ul una dintre cele dou butoane, prezentate mai sus, va aprea pagina nregistrare elevi.

Fig.4.15 nregistrare elevi Pentru a se nregistra, elevul trebuie s aib un numr matricol unic. Numai pe baza acestui numr matricol se poate realiza nregistrarea pe site. Dac elevul nu tie numrul matricol, are dou posibilitai de a rezolva accesul pe site-ul Sistem de management al colaritii Elevilor . Prima ar fi de a solicita numrul matricol de la administrator. Cea de-al doilea ar fi, ca elevul s cear de la administrator un cont, preciznd datele de conectare, cum ar fi numele de utilizator, parola i adresa de e-mail. Parola se poate modifica ulterior dup autentificare. n cazul n care elevul are numrul matricol, el poate s completeze formularul pentru a crea contul de autentificare. Toate campurile a acestui formular sunt obligatorii. Dac nu s-a completat un camp din cele existente n formular, apare mesajul de alert, care va ateniona elevul despre care cmp nu este completat. Adresa de e-mail trebuie s fie de forma: ex: aaaa@aaaa.aaa. Dac nu este de aceast form, apare mesajul urmtor: Introduceti corect adresa de e-amil !

35

Universitatea de Nord Baia Mare

Fig.4.15 Eroare adresa e-mail incorect Dac cmpurile au fost completate, dar numrul matricol nu corespunde cu nici unul existent n baza de date (numerele matricole se introduc de ctre administrator), nregistrarea nu se poate efectua. Va aprea mesajul : Inregistrarea nu s-a efectuat cu succes. Numarul matrivcol incorest ! nregistrarea cu un numr matricol se poate efectua numai o singur dat. n cazul n care un elev vrea s foloseasc numrul matricol nca o dat pentru nregistrare, se va trezi cu un 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 existenei numrului 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

Universitatea de Nord Baia Mare

Dac numrul 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 numrul matricol introdus n formular nu exist n baza de date, nregistrarea nu se 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

Universitatea de Nord Baia Mare

Fig.4.16 Schimbare parol n cazul n care nu s-a introdus numele de utilizator apare urmtorul 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, apasnd 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 fiier text. Funcia care creaz parola este: function get_random_word($min_length, $max_length) { $word = ''; $dictionary = "words.txt"; // fiierul text cu cuvintele dintr-un dicionar $fp = @fopen($dictionary, 'r') or die ("Can't open file"); if(!$fp) return false; $size = filesize($dictionary); // selectarea aleatoare a unui cuvnt din fiier srand ((double) microtime() * 1000000); $rand_location = rand(0, $size); fseek($fp, $rand_location); // cuterea unui cuvnt 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

Universitatea de Nord Baia Mare

return $word; }

4.3.

Tipuri de utilizatori

Dup autentificarea reuit apare pagina cu meniul aplicaiei. n prima pagin va aprea un mesaj cu numele de utilizator a persoanei care folosete programul.

Fig.4.17 Pagina start Meniul paginii este diferit, n funcie de tipul de utilizator, adic administrator, elev, profesor. Meniurile pentru cele trei tipuri de utilizatori sunt urmtoarele: - Administrator

Fig.4.18 Meniu administartor

Profesor

39

Universitatea de Nord Baia Mare

Fig.4.19 Meniu profesor

Elev

Fig.4.20 Meniu elev

40

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, aa 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 apsarea 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 se selectez din baza de date, dintre cele adugate de ctre administrator. n cazul n care nu se introduc datele, apare un mesaj n care se specific exact care cmp nu a fost completat. n cazul n care adresa de e-mail nu este corect apare mesajul: Introduceti corect adresa 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 este unic
41

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 modificm un cont, trebuie s alegem contul respectiv, apsnd butonul Modifica. Datele de autentificare, selectate pentru modificare, apar n casetele de text corespunztoare. n acest caz n loc de butonul Adauga apare Modifica. Dup modificarea datelor, apasnd butonul Modifica, apare mesajul : Contul a fost modificat ! La tergere apare urmatorul mesaj de interogare: Esti sigur ca vrei sa stergi ? Apasnd 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 WHERE adminID='{$_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 pentru elevi. Apasnd acest buton apare pagina Administrare cont elevi, care este asemntor cu cea din Fig.4.18. Modificarea i tergerea se face asemntor ca i n pagina Administare cont profesori.

42

Universitatea de Nord Baia Mare

Fig.4.22 Administrare cont elevi

Butonul Numar matricol se ocup cu adugarea i tergerea numrului matricol, pe baza cruia se face nregistrarea de ctre elevi. n cazul n care nu completm cmpul, iar apsm butonul Adauga, apare un mesaj de avertizare: Introduceti numarul matricol!. n cazul n care elevul a efectuat nregistrarea folosind unul din numerele matricole existente, i a comletat datele personale, atunci numele i prenumele elevului respectiv va aprea lng numrul matricol. Adaugnd un numr 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 SET matrID='".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

Universitatea de Nord Baia Mare

Fig.4.23 Numar matricol Butonul Materie se ocup de adugarea i tergerea materiei. n cazul n care nu completm cmpul, iar apsm butonul Adauga, apare un mesaj de avertizare: Introduceti materia!.

Fig.4.24 Materie

44

Universitatea de Nord Baia Mare

Butonul Lista elevi i Lista profesori se ocup cu afiarea 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, aa 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 adugarea notelor de ctre profesorul care este autentificat. Adugarea notei se realizeaz apsand butonul Adauga. Completarea cmpurilor este obligatoriu. n cazul n care nu am completat bine formularul, apare o eroare, care ne avertizeaz unde am greit, 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 se selecteaza apsnd butonul , dintr-un calendar realizat cu Javascript.

45

Universitatea de Nord Baia Mare

Fig.4.24 Adaugare note Butonul Date personale se ocup cu adugarea i modificarea datelor personale, cum ar fi: nume, prenume, adresa, nr. telefon. Persoana care se autentific i folosete prima data aplicaia, trebuie s introduc datele personale. n cazul n care datele au fost deja introduse anterior, accesnd pagina, datele personale a utilizatorului apar n casetele de text, iar aceasta are posibilitetea doar de a modifica aceste date apsnd butonul . Codul php a paginii respective este urmtoarea:

if(!empty($_POST['action']) AND $_POST['action']=="addProf") { $sql_txt = "SELECT * FROM profesori WHERE adminID='{$_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 modificri asupra acestor date. if(!empty($_POST['profID'])){ $sql_txt = "UPDATE profesori SET numeProf='".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

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 SET numeProf='".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 csuele de text, iar avem posibilitatea de a modifica 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, csuele de text sunt goale, i avem posilitatea de a aduga datele personale $numeProf = ""; $prenumeProf = ""; $adresaProf = "";
47

Universitatea de Nord Baia Mare

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

Fig.4.25 Date presonale

Butonul Lista elevi se ocup cu afiarea colectivului de elevi, identic ca la tipul de utilizator administrator. Butonul Situaie elevi se ocup de afiarea mediei a fiecrui elev la materia la care pred profesorul autentificat. Afiarea se face selectnd elevul din colectivul de elevi existente n baza de date dintr-un combobox, iar apoi se selecteaz din baza de date ID-ul materiei la care pred profesorul:
select matID FROM admin WHERE adminID='{$_SESSION['logat_prof_id']}' Dup selectarea materiei se selecteaz datele care vor fi afiate n tabela de situaii. select (SUM(nota)/count(*)) as avg, count(*) as ct, n.*, m.* FROM note n LEFT JOIN materie m ON n.matID=m.matID WHERE n.matID='{$sc_m['matID']}' AND n.elevID='{$_POST['elevID']}' GROUP BY n.matID ORDER by notaID ASC

48

Universitatea de Nord Baia Mare

Rezultatul arat astfel:

Fig.4.26 Situatie elevi

Butonul Schimbare parol se ocup cu schimbarea parolei utilizatorului autentificat. Pentru a modifica parola, utilizatorul trebuie s introduc parola veche, parola nou 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 arata astfel: if(!empty($_POST['action']) AND $_POST['action']=="addParola") { $sql_txt_par = "SELECT * FROM admin WHERE password='{$_POST['old_password']}' AND adminID='{$_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

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, aa cum am ilustrat in Fig.4.20. Butonele sunt: Afisare note Date personale Lista profesori Schimbare parola Butonul Afisare note se ocup cu afiarea notelor la fiecare materie. Materia se selecteaz din combobox-ul . Dup selectarea materiei apar notele i media la materia respectiv. Select-ul pentru afiarea notelor este:

SELECT n.*, e.* FROM elevi e LEFT JOIN note n ON n.elevID=e.elevID WHERE e.adminID='{$_SESSION['logat_elev_id']}' AND n.matID='{$_POST['matID']}' ORDER by notaID ASC"; Afiarea notei se face numai pentru elevul care este autentificat, selectnd materia dintr-un combobox. Aceast verificare se face preciznd e.adminID='{$_SESSION['logat_elev_id']}'
50

Universitatea de Nord Baia Mare

Se calculeaz media notelor primite selectnd din tabela de note numai notele care aparin elevului autentificat i facnd media acestora. Codul arat astfel: SELECT (SUM(nota)/count(*)) as avg FROM elevi e LEFT JOIN note n ON n.elevID=e.elevID WHERE e.adminID='{$_SESSION['logat_elev_id']}' AND n.matID='{$_POST['matID']}' ORDER by notaID ASC";

Rezultatul :

Fig.4.28 Afisare note

Butonul Lista profesori se ocup de afiarea colectivului de profesori, preciznd materia predat de fiecare profesor. Selectarea datelor care vor fi afiate n tabel se face cu :
SELECT p.*, m.*, a.* FROM admin a LEFT JOIN profesori p ON a.adminID=p.adminID LEFT JOIN materie m ON a.matID=m.matID WHERE a.tipID=3 ORDER by p.numeProf ASC";

51

Universitatea de Nord Baia Mare

Iar rezulatul arat astfel:

Fig.4.29 Lista profesori

profesor.

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

52

Universitatea de Nord Baia Mare

CAPITOLUL 5.
CONCLUZII 5.1. Concluzii

Importana Internetului n zilele noastre este deja cunoscut iar exploatarea oportunitailor oferite de acesta trebuie sa fie o prioritate pentru o firm modern mai ales dac concurena are deja prezen online. Un web site cost o singur dat i rmne permanent, 24 de ore din 24 n atenia publicului din orice zon a lumii. Oricnd, coninutul unui web site poate fi actualizat sau modificat dup bunul Dumneavoastr. plac. La baza aplicaiei Sistem de management al colaritii Elevilor st limbajul de programare PHP, care este un limbaj foarte puternic, i foarte des folosit. Din aceste motive am ales acest limbaj pentru implementarea aplicaiei. n zilele noastre cele mai multe aplicaii distribuite sunt scrise n PHP, care este o soluie convenabil pentru proiectare a unei aplicaii de comer electronic pentru clienii care dispun de un buget redus. Lumea se schimb de la o zi la zi, tehnologiile avanseaz, apar noi i noi aplicaii, software care ne vor conduce ntr-o lume computerizat. Eu cred c PHP ocup un loc foarte important n aceast lume i are un rol deosebit n dezvoltarea noilor tehnologii. Aplicaia Sistem de management al colaritii Elevilor este doar o mic parte din aceast lume imens a limbajului PHP, dar o parte semnificativ, deoarece folosirea lui uureaz munca multor oameni cu vrste diferite.

5.2.

Posibiliti de dezvoltare

Versiunea respectiv a aplicaiei Sistem de management al colaritii Elevilor nu este versiunea final, ci dimpotriv prima versiune. Aplicaia poate fi mbuntit, adugnd noi faciliti. Iat cteva lucruri noi care ar putea fi incluse n dezvoltarea acestui program:

Aplicaia ar putea fi dezvoltat ntr-un fel ca s deserveasc toate necesitile unei coli, adica s fie posibil folosirea acestuia de ctre toate clasele unei coli sau chiar de ctre mai multe coli. O alt dezvoltare ar putea fi adugarea unei ramuri n aplicaie care s se ocupe de prezena elevilor la fiecare or i de construirea orarului colar la fiecare clas. Al treilea punct de dezvoltare ar putea fi crearea unui forum de discuii ntre elevi i profesori care ar fi util de exemplu pentru fixarea examenelor, informarea elevilor despre diferite activiti colare etc. O dezvoltare major ar fi crearea unui nou tip de utilizator, cum ar fi printe. i printele s aiba acces la note, dar numai la fiul i/sau fiica printelui respective. Aceast dezvoltare ar fi foarte util pentru ca n zilele noastre prinii de multe ori nu afl situaia colar a copilului numai de exemplu la o edin cu prinii. Cu aceast dezvoltare putem scutii prinii i profesorii de timpul pierdut n urma edinelor, discuiile putnd fi rezolvate printr-un forum al aplicaiei.

Acestea sunt doar nite idei de dezvoltare a aplicaiei Sistem de management al colaritii Elevilor, dar, avnd n vedere progresul tehnologiei, mai pot aprea i altele.
53

Universitatea de Nord Baia Mare

54

Universitatea de Nord Baia Mare

Bibliografie:
1. [Well2005], Laura Thomson; Dezvoltarea aplicatiilor WEB cu PHP i MySQL, Editia

a 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; Editura

Polirom 2003.
6. Adrian Munteanu, Valeric Greavu Serban, Reele locale de calculatoare Proiectare

i administrare
7. [Gug2005], HTML, XHTML, CSS i XML prin exemple - ghid practic; Editura

Teora 2005.
8. http://www.phpromania.ro 9. http://www.oscommerce.com 10. http://www.w3schools.com/asp/default.asp 11. [Cez2006], Programarea aplicaiilor web cu PHP i MySQL , Ed. Risoprint 2006.

55