Documente Academic
Documente Profesional
Documente Cultură
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
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.
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
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.
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.
2.1.
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
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.
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
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.
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
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
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
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.
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
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
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).
15
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:
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
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.
- 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.
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
- 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
administrative i o gam larg de interfee pentru programarea aplicaiilor (Application Programming Interfaces APIs)
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
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
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).
23
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
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.
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
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
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
4.1.
Fig 4.1 n fereastra afiat se va tasta numele noii baze de date (catalog) i se va apsa butonul Create:
28
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
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
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
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
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
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.
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
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
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(); } }
37
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
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
Profesor
39
Elev
40
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
$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
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
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
Butonul Lista elevi i Lista profesori se ocup cu afiarea colectivului de profesori existente n baza de date.
45
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
} 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
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
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
}else { //dac parola veche introdusa nu este corecta, apare mesajul $msg = "Parola veche este incorecta!"; } }
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
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 :
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
profesor.
52
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
54
Bibliografie:
1. [Well2005], Laura Thomson; Dezvoltarea aplicatiilor WEB cu PHP i MySQL, Editia
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