GENERALITĂȚI…………………………………………………………………………………………………………………………… [607043]
Cuprins
Pagina
GENERALITĂȚI……………………………………………………………………………………………………………………………….. 2
CAPITOLUL 1……………………………………………………………………………………………………………………………………. 4
INTRODUCERE…………………………………………………………………………………………………………………………………. 4
1.1.TEMA PROIECTULUI…………………………………………………………………………………………………………………………… 4
CAPITOLUL 2……………………………………………………………………………………………………………………………………. 6
TEHNOLOGII UTILIZATE ……………………………………………………………………………………………………………….. 6
2.1.PAGINI WEB ȘI SERVERE WEB…………………………………………………………………………………………………………….. 8
2.2.PAGINI WEB STATICE ȘI DINAMICE……………………………………………………………………………………………………….. 9
HTML9
JavaScript………………………………………………………………………………………………………………………………………….. 9
Tehnologii pe parte de Client ……………………………………………………………………………………………………………… 10
URL-uri10
2.3.LIMBAJUL PHP……………………………………………………………………………………………………………………………… 11
NOȚIUNI FUNDAMENTALE………………………………………………………………………………………………………………………. 11
Ieșirea din modul HTML …………………………………………………………………………………………………………………… 13
Separarea instrucțiunilor ……………………………………………………………………………………………………………………. 14
Comentariile…………………………………………………………………………………………………………………………………….. 14
VARIABILE15
Variabile predefinite ………………………………………………………………………………………………………………………… 15
PHP Superglobals…………………………………………………………………………………………………………………………….. 15
Folosirea variabilelor statice ……………………………………………………………………………………………………………… 15
2.4.BAZE DE DATE ……………………………………………………………………………………………………………………………. 17
Noțiuni generale……………………………………………………………………………………………………………………………….. 17
2.5.LIMBAJUL SQL…………………………………………………………………………………………………………………………….. 18
Caracteristici generale: ……………………………………………………………………………………………………………………… 18
Prezentarea limbajului SQL ……………………………………………………………………………………………………………….. 18
2.6.MYSQL…………………………………………………………………………………………………………………………………….. 20
PREZENTARE GENERALĂ…………………………………………………………………………………………………………………………. 20
CARACTERISTICILE DE BAZĂ ALE MYSQL …………………………………………………………………………………………………. 21
TIPURI DE DATE UTILIZATE DE MYSQL……………………………………………………………………………………………………… 21
ADMINISTRAREA BAZELOR DE DATE MYSQL DIN LINIA DE COMANDĂ…………………………………………………………………. 21
CAPITOLUL 3………………………………………………………………………………………………………………………………….. 22
SPECIFICAȚIILE APLICAȚIEI ………………………………………………………………………………………………………. 22
3.1.PREZENTARE GENERALĂ……………………………………………………………………………………………………………………. 22
3.2.PAGINA DE ACCES…………………………………………………………………………………………………………………………… 23
3.3.STOCAREA INFORMAȚIILOR………………………………………………………………………………………………………………… 25
CAPITOLUL 4………………………………………………………………………………………………………………………………….. 28
Universitatea de Nord Baia Mare
IMPLEMENTAREA ȘI UTILIZAREA APLICAȚIEI ……………………………………………………………………….. 28
4.1.CREAREA BAZEI DE DATE A APLICAȚIEI………………………………………………………………………………………………….. 28
4.1.1.Crearea unei baze de date folosind XAMPP ……………………………………………………………………………….. 28
Baza de date a fost realizată cu aplicația XAMPP folosind phpMyAdmin. ………………………………………………. 28
4.2.INTERFAȚA 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.POSIBILITĂȚI DE DEZVOLTARE…………………………………………………………………………………………………………….. 53
BIBLIOGRAFIE:……………………………………………………………………………………………………………………………… 55
GENERALITĂȚI
Din cele mai vechi timpuri omul a simțit nevoia să cunoască spațiul înconjurător, și
materializarea gândirii sale într-un limbaj matematic de bază. Odată cu evoluția omului au
evoluat și problemele acestuia, soluția la aceasta a fost inventarea unei mașini de calcul ce îi
va schimba radical modul de viață.
Dezvoltarea rapidă din ultima perioadă a resurselor software și hardware din domeniul
tehnologiei informației are un meritul de a oferi o mai bună comunicare și un acces mult mai
rapid la toate categoriile de informații.
Prezenta lucrare cuprinde destul de detaliat aspecte teoretice și practice ale
modalităților de concepere și implementare a aplicației.
Lucrarea este structurată în 5 capitole, fiecare capitol, la rândul lui având mai multe
subcapitole.
Capitolul 1 – Introducere reprezintă partea introductivă a lucrării, prezentarea
domeniului din care face parte proiectul, a temei propriu-zise și structurarea aplicației.
Capitolul 2 – Tehologiile utilizate reprezintă o scurtă introducere a principalelor
noțiuni legate de Internet. Sunt explicate noțiuni ca Internet, protocolale, aplicații pentru
internet, DNS, intrenet și extranet, servere web și aplicații web, pagini web statice și
dinamice, limbaje de markup și scripting, HTML, JavaScript. Limbajul PHP,este prezentat
prin descrierea principalelor noțiuni legate de acest limbaj. Descrierea modului de includere a
2
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. Noțiunile de bază ale bazelor de date
relaționale. Este prezentat modul de utilizare a MySQL, conectarea și deconectarea de la
server, crearea și selectarea bazelor de date, crearea tabelelor și introducerea interogărilor.
Capitolul 3 – Specificațiile aplicației prezintă lucrarea. Prezentarea generală a
aplicației, interfața cu utilizatorul, și modalitatea de stocare a informațiilor și a datelor.
Capitolul 4 – Implementarea și utilizarea aplicației cu interfața grafică reprezintă
descrierea aplicației. Implementarea acestui site a fost realizată folosind limbajul de server
side scripting PHP datorită felxibilității acestuia și a faptului că poate fi folosit gratuit, fără
restricții. De asemenea, a fost ales sistemul de gestiune a bazelor de date relațioale 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 aplicației Sistem de
management al Școlarității Elevilor, crearea unor tabele (ex : admin si elevi).
Interfața grafică a aplicației este construită pe baza unui template, pe care toate
paginile site-ului îl folosesc pentru a păstra același layout pe întregul site. De asemenea,
pentru setarea modalităților de afișare a diferitelor elemente HTML, pentru alegerea stilului
site-ului s-a folosit un fișier .css, acesta putând fi modificat sau înlocuit și întregul site își
schimbă automat înfățișarea.
Prin combinarea acestor două produse, PHP și MySQL, aplicația realizată este foarte
flexibilă, putându-se adăuga noi funcționalități aplicației.
Capitolul 5 – Concluzii prezintă opinia mea personală despre aplicația realizată și
posibilitățile de dezvoltare a aplicației.
3
Universitatea de Nord Baia Mare
CAPITOLUL 1.
INTRODUCERE
Se poate spune, pe drept cuvânt că trăim într-o societate informatizată. În zilele
noastre, întâlnim calculatoare peste tot, de la micul magazin din colț, care-și ține evidențele
sale cu ajutorul unui calculator și până la ghișeul la care plătim abonamentele de telefonie,
cablu TV, Internet, la examenele pentru permisul de conducere sau alte examene pentru
diferite domenii oricare ar fii acestea și multe alte. Peste tot sunt calculatoare, legate eventual
între ele și formând astfel rețele de calculatoare. Toate acestea se datorează faptului că ne
dăm seama din ce în ce mai mult că sistemele de calcul, calculatoarele ne ușurează munca și
viața prin apariția lor.
Să ne gândim puțin cât de mult s-a schimbat lumea de când au apărut calculatoarele.
Înaintea apariției calculatoarelor orice tip de evidență era înregistrată pe hârtie, scrise cu
mâna sau în cel mai bun caz scrise cu dactilograful. Marele dezavantaj al acestei metode era
că acele hârtii se deteriorau cu timpul, sau pur și simplu se pierdeau. Apariția calculatorului
reprezenta o mare avansare în acest domeniu, dar totodată și în alte domenii.
Oamenii nu mai erau nevoiți să-și țină evidențele pe hârtii, deoarece pur și simplu
introduceau datele în calculator și le salvau pe discul magnetic al acestuia. Și așa datele erau
într-un loc sigur, securizat, unde nu se deteriorau, nici nu se pierdeau și accesul la ele î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 evoluția informatici care cu fiecare zi ce trece inbunătațește viata
omului și cei tinerii devin batrâni, așa este și cu calculatoarele care au aparut era un număr
minic dar acum oriunde te-ai duce mereu ai să vezi că oamenii lucrează pe calulatoare chiar
dacă sunt dintre primele modele de fabricație mai sunt folosite dar vor ramâne in istorie. Nu
există instituții care să nu fie înzestrate cu calculatore și diferitele programe pe care aceste
instituții lucrează.
Să ne gândim numai la bănci, casierii, hoteluri, magazine, toate folosesc calculatoare
pentru ași ține evidențele, trasfer de date și multe altele.
Profesorii folosesc calculatoare pe care sunt instalate diferite programe care ușurează
munca lor și a altor cadre didactice, comunicarea dintre profesor și elev la calculator după
finalizarea orelor de studiu face ca elevul sa acumuleze cat mai multă informație. Acest site
lucrează cu baze de date în care sunt înregistrate toate activitățile legate de notele unui elev :
crearea conturilor de autentificare, adăugarea materiilor, adăugarea notelor de către profesori,
afișarea notelor de către elevi, introducerea și modificarea datelor personale etc.
Aplicația Sistem de management al Școlarității Elevilor este o soluție ideală pentru a
ușura munca profesorilor și a elevilor. Această versiune a aplicației Sistem de management al
Școlarității Elevilor, este destinată special a unei clase dintr -o unitate de invățământ. Site-ul
este structurat în 3 părți diferite, pentru 3 tipuri de utilizatori diferiți:
Administrator : se ocupă de adăugarea numerelor matricole, adăugarea
materiei, crearea și administrarea conturilor
Profesor : are acces la adăugarea notelor, introducerea și modificarea datelor
personale, afișarea colectivului de elevi, schimbarea parolei de
autentificare
Elev : are acces la vizualizarea notelor, adăugarea și modificarea datelor
personale, afișarea colectivului de profesori, schimbarea parolei de
autentificare
Cele trei tipuri de utilizatori au privilegii diferite, așa cum v-am presentat mai sus,
datele personale a fiecărui utilizator se pot modifica numai de către el insuși. Notele fiecărui
elev sunt confidențiale, fiecare elev având acces numai la notele lui, in acest fel și la
profesori, situația elevului se poate vizualiza numai la materia predată de profesorul
respectiv. Acest lucru este util pentru, ca profesorul să nu fie influențat de situația elevului la
o altă materie, atunci când acesta adaugă o notă. Aceste probleme sunt exemplificate mai
amănunțit in următoarele capitole.
Aplicația este utilă, atât pentru elevi cât și pentru profesori. Prin intermediul acestei
aplicații este foarte ușor să ținem evidența notelor și să avem toate informațiile despre elevi.
5
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 mulți sunt aceia care, stând neclintiți în fața
calculatoarelor, navighează prin rețeaua de calculatoare ce acoperă întreaga lume, călătoresc
și activează in spațiul cibernetic.
Pentru cercetătorul care descoperea libertatea de comunicare și oferta internațională
din Internet, multitudinea de biblioteci, reviste și grupuri de dezbatere, accesul la Internet
seamănă cu un vis care nu se mai termină, vacanța pe care urmează să o faci în Europa sau
America la distanțe foarte marii prin site-rile unde sunt prezentate locuri frumoase și
utilizatorul stand in fața calculatorului iși aduce lumea cea mare in afara calculatorului și
mică la calculator.
Prin Internet înțelegem de obicei ansamblul rețelelor de calculatoare interconectate
din intreaga lume. De fapt, specialiștii susțin că Internetul nu este o rețea ci un ansamblu de
reguli – protocoale de comunicație – care permit transferul de date între diferite rețele de pe
glob, accesul la informațiile stocate în calculatoarele acestora.
Accesul la Internet este atât modul de conectare in rețea, cât, mai ales, accesul la
informația ce se vehiculează prin calculatoarele legate in rețea, posibilitatea de comunicație
cu specialiștii din toată lumea întreagă.
Internetul este o gigantică rețea de calculatoare, mai precis, o rețea de rețele 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 rețea a unui număr foarte mare
de oameni. In fiecare an, comunitatea primește milioane de noi utilizatori care doresc sa
utilizeze internetul pentru a cunoaște informații noi din domenii diferite.
Internetul în România a pătruns relativ încet, multă vreme fiind considerat un lux
inutil. Chiar și acum, pentru uz personal, mai ales datorită costurilor foarte mari ale
serviciilor telefonice, este destul de puțin utilizat. Din punct de vedere al infrastructurii
lucrurile au avansat destul de mult, din punct de vedere al resurselor informatice disponibile
evoluția este destul de greoaie.
Majoritatea companiilor și chiar unele structuri administrative au ințeles prezența în
Internet că este foarte importantă, încă nu există resurse și depozite informaționale românești
semnificative. Din acest motiv traficul observat in rețeaua românească este mai mult de
aducere de informații din exterior decât de export de informații în cadrul țării.
In contextul internațional actual de afaceri, academic și tehnologic, fenomene ca globalizarea
și liberalizarea accesului la informație dinamică și nivelul de performanță al dezvoltărilor în
domeniul comunicațiilor și al calculatoarelor, sunt deja lucruri commune și legate unele de
altele.
Dincolo de granițe, in restul omenirii, Internetul a devenit deja cea mai comodă sursă
de informație, in timp ce ceea ce este disponibil și in România pe Internet este fie vechi, fie
incorect, fie lipsește prin costurile ridicate.
Pentru a ne da seama ce ne rezervă viitorul in privința rețelei Internet, trebuie să
înțelegem tipurile de tehnologii elaborate de experții implicați in dirijarea rețelei și pentru
utilizarea internetului cât mai ușor cu putință.
Colaborare
In dezvoltarea internetului s-au făcut mari progrese în domeniul conferințelor
video la distanțe marii.
De exemplu, există tehnologii care permit colaborarea la anumite documente prin
intermediul rețelei. De asemenea putem lua parte la conferințe audio și chiar să folosim o
„planșetă” electronică pentru a ne expune schemele și proiectele, astfel încât acestea să poată
fi vizualizate de către toți participanții.
Obiecte
Creatorii paginilor Web nu mai sunt limitați la texte și grafică, așa incât putem fi
siguri că vom găsi o mulțime de elemente interesante pe Web și cu o viteză foarte mare de
accesare.
Câteva inovații recente permit chiar și distribuirea de programe prin Web.
Mesaje e-mail complexe
Nu mai suntem limitați la mesaje simple de text.
Limbajul HTML permite formatarea acestora, cu caractere aldine și cursive, și cu
diferite formate de paragraf. Mai mult decât atât, putem atașa mesaje de e-mail, imagini și
alte elemente multimedia.
Securitate
Specialiștii din spatele rețelei Internet lucrează pentru a securiza comerțul
on-line, oferind metode de protejare a tranzacțiilor din multitudinea de domenii de
activitate.
Ei crează un mediu mai sigur pentru copiii care se joacă pe Web, furnizând criterii de
evaluare a paginilor, și asigură securitatea rulării aplicațiilor distribuite, prin autentificări
de cod și o securitate foarte bine pusă la punct.
7
Universitatea de Nord Baia Mare
2.1.Pagini Web și Servere Web
Construcția World Wide Web este pe baza unui protocol numit Hypertext Transfer
Protocol (HTTP). HTTP este un protocol mic și rapid care se potrivește foarte bine sistemelor
informatice multimedia și distribuite în salturile între site-uri.
Web-ul constă în pagini cu informații de pe gazde care rulează software de tip server
Web. Gazda este de multe ori identificată cu serverul Web, lucru care nu este corect.
Serverul Web este un software, nu calculatorul în sine.
Un Web server este un program care furnizează pagini Web la cerere. Când un
utilizator de la o adresă IP specifică solicită un anumit fișier, serverul Web încearcă să obțină
acel fișier și să-l trimită înapoi utilizatorului.
Fișierul solicitat poate fi codul sursă HTML al unei pagini Web, o imagine GIF, un
fișier Flash, un document XML, sau un fișier AVI. Browserul Web este cel care determină
ceea ce trebuie cerut, nu serverul Web .
Conexiunile la serverul Web stabilesc pe măsură ce sunt accesate, se solicit ă o cere 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 același host pot rula mai multe aplicații de Internet, de exemplu un server Web,
un server FTP, un server DNS și un server de mail SMTP POP3 pot rula în același timp.
Fiecărui server îi este a tribuit un port pentru a asigura că fiecare server va răspunde
numai cererilor din partea clienților corespunzători.
Majoritatea serverelor folosesc un set de porturi predefinite. Serverele Web folosesc
de obicei portul 80, dar acesta poate fi schimbat. Pot fi instalate pe porturi nestandard 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 mulțime globala de calculatoare interconectate, similar unei
rețele 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ă, animație și sunet. Documentele destinate Web-ului sunt cunoscute sub numele de
pagini Web.
Pentru a înțelege mai bine World Wide Web se pornește de la modul în care este
organizată informația în mediile tipărite. Aceste medii reprezintă un model adecvat pentru
web și modul său de organizare.
Paginile Web oferă posibilitati multiple și interesante: paginile de informații se pot
regăsi pe calculatoare răspândite î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 afișate prin intermediul navigatoarelor Web (browser-e).
Navigatorul Web afișează paginile de Web prin interpretarea unor marcatori –
definiți cu ajutorul unui limbaj special denumit HTML (HyperText Markup Language) –
utilizați pentru a codifica pagina de Web cu informația de afișat. Marcatorii au diferite
semnificații. De exemplu aceștia semnifică modul în care vor fi așezate diversele părți ale
paginii sau stabilesc legături între documente/fișiere.
Tipic, o pagină de Web este legată de o diversitate de fișiere cum ar fi fișiere text,
grafice sau multimedia. Mecanismul prin care sunt create căile de acces între documente este
denumit hipertext, prezentat anterior. Atunci când utilizatorul acționează prin clic de mouse
8
Universitatea de Nord Baia Mare
asupra unei legături, cum ar fi o porțiune de text, un element grafic, etc, navigatorul încarcă
fișierul la care punctează aceasta legătura și îl afișează. Legăturile din cadrul textului sunt
ușor de identificat deoarece majoritatea navigatoarelor, implicit, colorează diferit de restul
textului aceste legături și le subliniază.
Un site Web este definit ca o colecție coerenta de informații prezentată sub forma
unor pagini Web, fișiere multimedia, documente și de alte tipuri, între care există legături.
Intr-un site bine proiectat toate celelalte pagini punctează către pagina principală,
chiar dacă navigatoarele moderne au butoane pentru acest lucru.
Atunci când se realizează un site Web aceste fișiere sunt păstrate, în mod uzual, într-
un director sau o colecție de directoare în HDD local și este ferit cu numele de site local .
Serverul Web este dedicat memorării, transmiterii și regăsirii paginilor de Web și a fișierelor
legate de acestea.
Prin publicarea unui site local (upload), directorul, împreună cu conținutul său, este
transferat la server-ul Web care conține 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 interacțiunea utilizatorului cu el are loc similar
modului descris in figura 1.
Deși cea mai mare parte a informațiilor din World Wide Web este stocată în pagini
Web scrise folosind limbajul HTML, există un număr destul de mare de documente provenite
din alte tipuri de servicii de publicare a informațiilor din Internet.
2.2.Pagini Web Statice și Dinamice
HTML
Paginile Web sunt fișiere cu simplu text construite folosind limbajul Hypertext Markup
Language (HTML). Acesta este implementat ca o mulțime de tag-uri ușor de învățat.
Autorii paginilor Web folosesc aceste tag-uri pentru a marca paginile de text, iar
browserele le folosesc pentru a ronda și afișa informațiile pentru a putea fi vizualizate.
Paginile Web pot să conțină legături hypertext la alte pagini.
JavaScript
9
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 interfețe 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 puțin) 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 procesări 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, mișcarea pointer-ului mouse-ului
asupra unei imagini sunt toate evenimente, iar script-urile pot fi executate automat de browser
atunci când aceste evenimente au loc.
Script-urile pot fi incluse în codul HTML sau pot fi stocate în fișiere externe și legate
în interiorul codului HTML.
Tehnologii pe parte de Client
Majoritatea browserelor noi permit folosirea și a altor tehnologii, dintre care cele mai
importante sunt:
-CSS (Cascading Style Sheets ) – oferă o modalitate de a separa prezentarea de conținut
astfel încât ambele să poată fi refolosite și modificate cu ușurință.
-DHTML (Dynamic HTML) – o combinație de HTML, script-uri și CSS care folosite
împreună, pot realiza interfețe pentru utilizator foarte atractive și interactive.
-Appleturi Java – mici programe care rulează în browser.
-Macromedia Flash – o tehnologie inclusă în 98% din browserele existente, care oferă
un mecanism pentru crearea unor interfețe atractive și portabile.
URL-uri
Formatul unei locații din Internet este numit URL ( Uniform Resource Locator –
Descriptor Uniform de Resurse). Structura completă a unui URL este urmatoarea:
protocol://nume-calculator-gazda:port/cale-director/resursa
Protocolul sau serviciul este reprezentat de regulile care guvernează transferul datelor
în rețea. În practică se utilizează urmatoarele protocoale:
ofile – specifică un URL local;
ohttp – indică adresa Internet a unei pagini Web sau altă resursă ;
oftp – utilizat pentru adresarea în Internet a fișierelor prin intermediul protocolului de
transfer de fișiere FTP;
ogopher – indică adresa URL a unui director Gopher; reprezintă un sistem utilizat
pentru localizarea și transferul informațiilor de indexare a numelor fișierelor în
Interent;
otelnet – 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 situații protocolul poate lipsi pentru anumite
adrese, tipul acestuia fiind determinat din numele gazdei.
Numele calculatorului gazdă identifică în mod unic un calculator în cadrul rețelei.
Numele poate fi reprezentat atât printr-o adresa IP, cât și prin denumirea unui calculator local
sau a unui calculator din Internet folosind specificațiile DNS.
10
Universitatea de Nord Baia Mare
Portul este reprezentat printr-un număr și este specific fiecărei aplicații. Majoritatea
aplicațiilor de rețea utilizează porturi pentru comunicare. Pe un calculator pot exista mai
multe aplicații de rețea, fiecare aplicație utilizând un port distinct.
Numele resursei este reprezentat de numele fișierului referit. Acesta poate fi o pagina
Web, un fișier multimedia, un document, un fișier executabil.
O limitare o constituie faptul că un URL nu poate conține spații și alte caractere
speciale, astfel că orice spațiu sau caracter special se va converti printr-un cod asociat
acestora precedat de simbolul „%”.
Alte URL-uri folosite alături de cele prezentate sunt cele de:
oe-mail, prin intermediul cărora se pot doar transmite mesaje de poștă electronică;
oștiri Usenet – în care trebuie să se identifice un server de știri care să ofere acces.
2.3.Limbajul PHP
PHP, acronim care provine din " PHP: 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 aplicații web, prin integrarea codului PHP în documente HTML.
Sintaxa sa provine din C, Java și Perl și este ușor de învățat. Scopul principal al 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. Deoa rece
îmbină caracteristici dintre cele mai complexe cu simplitatea în utilizare, PHP a devenit rapid
un instrument de frunte pentru dezvoltarea aplicațiilor în Web. Totuși, spre deosebire de alte
instrumente populare pentru dezvoltarea aplicațiilor Web, cum este Perl, PHP este un limbaj
de programare comod pentru începători, chiar și pentru cei care nu au mai desfășurat
activități de programare în trecut.
Ca și alte limbaje de scripting pentru Web, PHP vă permite să furnizați un conținut
Web dinamic, adică un conținut Web care se modifică automat de la o zi la alta sau chiar de
la un minut la altul. Conținutul Web este un element important în susținerea traficului unui sit
Web; de regulă, vizitatorii nu vor mai reveni la o pagină Web care conține aceleași informații
ca și cele prezentate la ultima vizită. Pe de altă parte, siturile Web frec vent actualizate pot
atrage cantități enorme de trafic.
Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP rulează
pe serverul Web, nu în browserul Web. În consecință, PHP poate obține accesul la fișiere,
baze de date și alte resurse inaccesibile programului JavaScript. Acestea constituie bogate
surse de conținut dinamic, care atrag vizitatorii.
Noțiuni 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 mulțime de comenzi pentru a produce un HTML, folosind PHP se
poate scrie un script HTML, ca cel de mai jos, ce include cod pentru a realiza ceva.
Codul PHP este delimitat de coduri de start și de sfârșit ce permit intrarea și ieșirea
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>
Diferența dintre PHP și altceva cum ar fi JavaScript, este acela că PHP este executat
pe server pe când JavaScript este executat pe calculatorul clientului (de browserul Web).
Pentru un script similar celui de mai jos sus pe un server, clientul ar primi doar rezultatele
scriptului ce este rulat, fără a vedea în nici un fel codul din spatele acestuia. Se poate chiar
configura serverul de web ca acesta să proceseze toate fișierele HTML cu PHP și astfel nu
exită nici o metodă ca un utilizator să știe de fapt ce există în fișiere.
Cu PHP se poate face orice. PHP este în principal axat pe partea de scripting ce
rulează pe server, deci poate face orice face și un program CGI, cum ar fi colectarea de date
de la formulare, generarea de conținut dinamic sau trimitere și primire de cookie-uri. Dar
PHP poate face mult mai multe.
Există trei domenii principale unde sunt folosite scripturile PHP.
-Scripturi ce rulează pe server. Acesta este cel mai tradițional și cel mai important
pentru PHP. Este nevoie de trei lucrui pentru a face să meargă: interpretorul PHP
(CGI sau modul de server), un server web și un browser web. E nevoie ca serverul 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 fără 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 aplicații ce rulează de partea clientului în mod grafic (GUI). Probabil că
PHP nu este limbajul cel mai bun de a scrie aplicații cu ferestre pentru Windows sau
alte sisteme de operare, dar dacă este bine cunocut și se dorește folosirea unor
facilități avansate ale PHP-ului în aplicațiile ce rulează de partea clientului, se poate
totuși folosi PHP-GTK pentru a scrie astfel de programe. De asemenea, există
posibilitatea de a scrie aplicații ce rulează pe platforme diferite folosind această
metodă. PHP-GTK este o extensie a PHP-ului, nedisponibilă în distribuția principală
de PHP.
PHP poate fi folosit pe aproape toate marile sisteme de operare, incluzând Linux,
multe variante de Unix (incluzând HP-UX, Solaris și OpenBSD), Microsoft Windows, 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 putând să lucreze ca un procesor CGI.
Deci, cu PHP, există libertatea de a alege un sistem de operare și un server de web.
Chiar mai mult, există posibilitatea de a alege programarea procedurală sau 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 librării de cod și
aplicații mari (incluzând și librăria PEAR) sunt scrise folosind doar cod POO.
Cu PHP programatorul nu este limitat să scoată rezultat HTML. Posibilitățile PHP-
ului includ afișarea de imagine, fișiere PDF și chiar filmulețe Flash (folosind librăriile libswf
și Ming) toate generate instant. Se poate de asemeanea ca rezultatul să fie orice fișier text,
cum ar fi XHTML sau orice alte fișiere XML. PHP poate genera automat aceste fișiere și să
12
Universitatea de Nord Baia Mare
le salveze în sistemul de fișiere în loc să le afișeze, formând un cache de partea serverului
pentru conținutul dinamic.
Una dintre cele mai puternice și importante facilități în PHP este suportul său pentru o
gamă largă de baze de date. Scrierea une pagini de web ce interacționează 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 rețea și se poate interacționa între aproape toate
limbajele de programare Web. PHP are suport pentru instanțierea 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 capabilități extrem de folositoare pentru procesarea textului, de la POSIX
Extins sau expresii regulare Perl, până la parsarea documentelor XML. Pentru parsarea și
accesarea documentelor XML, suportă standardele SAX și DOM.
Folosind PHP în domeniul comerțului electronic, sunt foarte folositoare pentru
programul tău de plați online funcții de plată Cybercash, CyberMUT, VeriSign Payflow Pro
și CCVS.
În cele din urmă, dar nu în ultimul rând, PHP are și alte extensii interesante, cum ar fi
funcții ale motorului de căutare mnoGoSearch, funcții pentru accesarea IRC-ului, multe
utilitare de compresie (gzip, bz2), conversie de calendar, traducere, etc.
Ieșirea din modul HTML
Când PHP interpretează un fișier trece prin textul acestuia până când întâlnește unul
din tag-urile speciale care îi spun să pornească interpretarea textului ca fiind cod PHP. Mai
departe, parser-ul execută tot codul întâlnit, până la întâlnirea 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 lăsat 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
dorește 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 PHP-
ului î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 făcut prin intermediul funcției
short_tags() (numai în PHP3), prin activarea opțiunii short_open_tag în fișierul de
configurare, sau prin compilarea scripturilor folosind opțiunea enable-short-tags. Chiar dacă
este implicit activată în fișierul php.ini, folosirea tag-urilor prescurtate nu este recomandată.
Cea de-a patra variantă poate fi folosită numai dacă tag-urile de tip ASP au fost
activate folosind setarea asp_tags din fișierul 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 funcționează exact cum este de așteptat, deoarece când PHP întâlnește tag-ul
de închidere ?> începe afișarea a ceea ce întâlnește până la apariția unui alt tag de start.
În cazul blocurilor mari de text, ieșirea din modul PHP este în general mai eficientă
decât trimiterea textului folosind echo() sau print().
Separarea instrucțiunilor
Instrucțiunile sunt separate la fel ca în C sau Perl – fiecare instrucțiune este terminată
cu un semn punct și virgulă.
Tag-ul de închidere implică și sfârșitul instrucțiunii, deci următoarele două 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 până la sfârșitul
liniei curente sau până 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 funcție de contextul în care acea variabilă este folosită.
Variabile
În PHP variabilele sunt reprezentate folosind un semn dollar urmat de numele
variabilei. Numele variabilelor sunt case-sensitive.
Variabile predefinite
PHP furnizează un număr larg de variabile predefinite. Multe din aceste variabile, nu
pot fi documetate complet deoarece sunt dependente de serverul pe care rulează, de
versiunea și setarea acestuia precum și de alți factori.
Unele din aceste variabile nu vor fi folosite când PHP rulează în linie de comandă.
PHP Superglobals
$GLOBALS – Conține o referință la fiecare variabilă care este în mod curent valabilă în
scopul global al script-ului. Cheile acestui șir sunt numele variabilelor globale.
$_SERVER – Reprezintă variabilele setate de serverul de web sau legate direct de mediul de
execuție al scriptului curent.
$_GET – Reprezintă variabilele oferite scritpt-ului direct prin HTTP GET. Analog vechiului
șir $HTTP_GET_VARS (care încă este valabil, dar depreciat).
$_POST – Reprezintă variabilele oferite scritpului direct prin HTTP POST. Analog vechiului
șir $HTTP_POST_VARS (care încă este valabil, dar depreciat).
$_COOKIE – Reprezintă variabilele oferite scritpului direct prin HTTP. Analog vechiului șir
$HTTP_COOKIE_VARS (care încă este valabil, dar depreciat).
$_FILES – Reprezintă variabilele oferite scritpului prin upload-ul de fișiere folosind 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 funcției locale, dar nu își pierde valoarea când execuția
programului părăsește acest scope. Să considerăm următorul exemplu:
<?php
function Test () {
$a = 0;
echo $a;
$a++;
} ?>
Această funcție este destul de nefolositoare deoarece de fiecare dată este apelată să
seteze valorea 0 variabilelei $a și să printeze "0".
Instrucțiunea $a++ care incrementează variabila nu servește nici unui scop deoarce,
de îndată ce funcția iese, variabila dispare. Pentru folosirea unei funcții de numărare care nu
va mai pierde număratoarea curentă, variabiala $a este declarată statică.
<?php
function Test()
{
static $a = 0;
echo $a;
$a++;
}
?>
Astfel, de fiecare dată când funcția Test() este apelată, aceasta va afișa valoarea
variabilei $a și o va incrementa.
Variabilele statice oferă, de asemenea, un mod de a lucra cu funcțiile recursive. O
funcție recursivă este o funcție care se autoapelează. Trebuie avută grijă la scrierea unei
funcții recursive, deoarece este posibilă realizarea unei recursii infinite. Trebuie asigurat un
mod de a termina recursia. Următoarea funcție recursivă simplă numără până la 10, folosind
variabila statică $count pentru a știi când 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
Când un formular este trimis unui scrip PHP, informațiile din acel formular sunt
automat transmise scriptului PHP. Sunt mai multe modalități de a accesa informația, 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 funcție de setările și preferințele particulare, sunt multe modalități de a accesa
datele din formulare HTML. Câteva exemple:
<?php
// Available since PHP 4.1.0
print $_POST['username'];
print $_REQUEST['username'];
import_request_variables('p', 'p_');
print $p_username;
// Available since PHP 3. As of PHP 5.0.0, these long predefined
// variables can be disabled with the register_long_arrays directive.
print $HTTP_POST_VARS['username'];
// Available if the PHP directive register_globals = on. As of
// PHP 4.2.0 the default value of register_globals = off.
// Using/relying on this method is not preferred.
print $username;
?>
Folosirea unui formular de tip GET este similară, cu deosebirea că se va folosi variabila
predefinită GET în schimb. GET se poate folosi și pentru extragerea informțiilor din
QUERY_STRING (informațiile de după semnul ? din URL). De exemplu, URL-ul
http://www.example.com/test.php?id=3 conține date GET care sunt accesibile prin $_GET['id'].
2.4.Baze De Date
Noțiuni generale
Bazele de date au devenit o componentă esențială a vieții de fiecare zi în societatea
modernă. În cursul oricărei zile, fiecare dintre noi desfășurăm activități care implică
interacțiunea cu o bază de date, ca de exemplu, depunerea sau extragerea unor sume de bani
din bancă, rezervarea biletelor la tren sau avion, rezervarea locurilor la hotel, căutarea unei
referințe bibiografice într-o bibliotecă computerizată ( digital library), etc.
În sensul cel mai larg, o bază de date (database) este o colecție de date corelate din
punct de vedere logic, care reflectă un anumit aspect al lumii reale și este destinată unui
anumit grup de utilizatori. O bază de date poate fi creată și menținută manual (de exemplu,
fișele de evidență a cărților dintr-o bibliotecă, așa cum erau folosite cu ani în urmă) 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 realității),
17
Universitatea de Nord Baia Mare
•integrarea datelor (baza de date este un ansamblu de colecții de date intercorelate, cu
redundanță controlată),
•integritatea datelor (se referă la corectitudinea datelor încarcate și manipulate astfel
încât să se respecte restricțiile de integritate),
•securitatea datelor (limitarea accesului la baza de date),
•partajarea datelor (datele pot fi accesate de mai mulți utilizatori, eventual în același
timp),
•independența datelor (organizarea datelor să fie transparentă pentru utilizatori,
modificările în baza de date să nu afecteze programele de aplicații).
2.5.Limbajul SQL
SQL (Structured Query Language – Limbaj Structurat de Interogare) , apărut în 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, regăsirea și manipularea datelor de către SGBD-urile (Sistemele de Gestiune a
Bazelor de Date) relaționale.
Caracteristici generale:
•SQL conține atât componenț a de descriere a datelor (LDD), cât și componența de
manipulare a datelor (LMD);
•Manipularea (interogarea) este partea extinsă;
•Limbaj neprocedural : secvența de comenzi (instrucțiuni), fiecare comandă este
transmisă SGBD-ului, este interpretată și returnează un rezultat.
Prezentarea limbajului SQL
Standardul SQL3 (SQL ’98) definește modelul obiect-relațional de baze de date.
Structura sintactica : limbajul este compus din instrucțiuni (comenzi). O comandă
SQL este o secvență de elemente componente ( token). Elementele componente pot fi: cuvinte
cheie, identificatori, caractere speciale și constante (literali).
Cuvintele cheie și identificatorii
Aceștia au o structură lexicală identică. Lexical, un cuvânt cheie sau un identificator
inseamnă o secvență de litere și caracterul ‘_’.
Din punct de vedere semantic, cuvintele cheie sunt elemente cu semnificație fixa în
limbaj:
-nume de comenzi (cl auze): SELECT, INSERT, etc;
exemplu de SELECT:
SELECT * FROM elevi WHERE adminID='{$_SESSION['logat_elev_id']}'
//scoate datele elevului autentificat din baza de date
-tipuri de date: integer, numeric, char, varchar, etc.
Limbajul SQL nu diferențiază car acterele mari de cele mici: este case insensitive.
Identificatorii au aceeași structură lexicală; din punct de vedere semantic reprezintă
nume într-o comandă și pot fi: nume de tabele, de coloane, etc. SQL folosește termenii de
tabel, coloană și linie pentru relație, atribut și tuplu (cei subliniați sunt cei folosiți în definirea
matematică a modelului relațional).
Identificatorii sunt:
– obișnuiți (simpli): Secție, ANGAJAT, etc;
18
Universitatea de Nord Baia Mare
– delimitați: reprezintă un nume pus între ghilimele, care poate să conțină orice fel de
caractere. Un identificator delimitat este folosit, în general, pentru un nume mai mare de
tabel.
Constantele
Constantele pot fi:
– de tip număr întreg: ex 1234 (reprezentate pe 4 octeți);
– de tip număr real: ex 12.5, 12e5 (reprezentate de 8 octeți, în formatul double);
– de tip șir de caractere: ex “Acesta este un șir”;
– de tip NULL: constanta specială, reprezintă lipsa de informație.
Caracterele speciale
– operatori (+,-,…);
– “;” termină o comanda;
– punctul zecimal (constante reale, codificări ale coloanelor);
– separatorii: blank, TAB, CR ; sunt ceruți uneori între elemente.
Operatori, expresii și funcții SQL
Operatorii SQL: pot fi reprezentați prin unul sau mai multe caractere speciale (+, <,
…) sau prin cuvinte cheie (AND, OR, NOT, UNION).
Operatorii pot fi clasificați:
– operatori binari: au nevoie de doi operanzi;
– operatori unari: se aplică unui singur operand și pot fi postfixe sau prefixe.
– aritmetici: +, -, <, <=, <> (!=);
– logici: AND, OR, NOT.
Operatorii logici se aplica asupra unor valori ternare (o valoare ce reprezintă un
operand ce poate avea valoare TRUE (1), FALSE (0) și NULL (lipsă de informație)).
Nu există tipul de date boolean asupra caruia să se aplice operatorii logici dar
operatorii de comparație returnează o valoare booleana.
Operatorii de comparație evaluează orice expresie la o valoare logica (bool): TRUE,
FALSE. Tipul boolean există însa incepând din SQL3. Operatorii de comparație pot fi:
•aritmetici: <, >, <=, >=, =, != (<>);
•relaționali
oA BETWEEN val_min val_max;
oA LIKE model_șir -> A șir;
oA IS NULL sau A IS NOT NULL;
oA IN lista_valori.
O expresie SQL este o expresie formată din operanzi, operatori și paranteze.
Operatorii, în general, sunt nume de coloane (se va folosi valoare atributului definit de acea
coloană) sau o constantă.
Orice expresie se evaluează la o valoare care poate fi apoi folosită în alte operații.
Funcțiile SQL:
– funcții totalizatoare (de grupare) : calculează anumite valori pentru coloane din
tabele: SUM, AVE, MIN, MAX, …;
– funcții matematice: calcule trigonometrice, puteri, logaritmi, rotunjiri;
19
Universitatea de Nord Baia Mare
– funcții pentru șiruri;
– funcții pentru date calendaristice;
– funcții 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 (interogările de baza),
INSERT, UPDATE, DELETE.
Ex: 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
SQL asigură toate operațiile care se consideră necesare într-o bază de date.
2.6.MYSQL
Prezentare generală
MySQL este un sistem de gestiune a bazelor de date relațional, produs de 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).
Deși este folosit foarte des împreună cu limbajelel de programare JAVA,PHP, cu
MySQL se pot construi aplicații în orice limbaj major. Există multe scheme API disponibile
pentru MySQL ce permit scrierea aplicațiilor în numeroase limbaje de programare 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ă interacționeze cu bazele de date MySQL cum ar fi ASP sau Visual Basic.
În multe cărți de specialitate este precizat faptul că MySQL este mult mai ușor de
invățat și folosit decât multe din aplicațiile de gestiune a bazelor de date, ca exemplu
comanda de ieșire fiind una simplă și evidentă: „exit” sau „quit”.
Pentru a administra bazele de date MySQL se poate folosi modul linie de comandă
sau, prin descărcare de pe internet, o interfață grafică: MySQL Administrator și MySQL
Query Browser. Un alt instrument de management al acestor baze de date este aplicația 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 ușor de utilizat. Inițial a
fost dezvoltat pentru a manipula baze de date de dimensiuni mari mult mai rapid decât
soluțiile existente.
MySQL Database Software este un sistem client/server ce constă într-un server
MySQL multithreaded care suportă diferite programe client și biblioteci, unelte
20
Universitatea de Nord Baia Mare
administrative și o gamă largă de interfețe pentru programarea aplicațiilor (Application
Programming Interfaces – APIs)
Caracteristicile de bază ale MySQL
Câteva dintre caracteristicile de bază ale MySQL sunt:
-Funcționează pe diferite platforme
-Dispune de API pentru C, C++, Eiffel, Java, Perl, PHP, Pyton, Ruby și Tcl
-Complet multi-threaded folosind thread-uri de kernel. Acest lucru înseamnă că poate
lucra cu ușuință pe mai multe procesoare dacă sunt disponibile
-Un sistem de alocare a memoriei foarte rapid și bazat pe thread-uri
-Folosește tabele temporare stocate în memorie
-Funcțiile SQL sunt implementate folosind o bibliotecă de clase optimizată și sunt foarte
rapide. De obicei, nu are loc alocare a memoriei după inițializarea interogărilor.
-Serverul este disponibil ca program separat ce poate fi folosit într-un mediu de rețea de
tip client/server. De asemenea, este disponibil și ca bibliotecă ce poate fi inclusă în
aplicații de sine stătătoare
-Oferă motoare tranzacționale și non-tranzacționale de stocare a datelor
Tipuri de date utilizate de MySQL
Tipurile de date care apar în coloanele MySQL sunt diferite în funcție de tipul lor.
MySQL alocă spațiu pe disc în funcție de tipul de date specificat de utilizator. Iată și tipurile
de date, spațiul pe care îl ocupă precum și valorile minime și maxime pe care le pot avea:
Tipul de câmp TIMESTAMP oferă posibilitatea de a data automat operațiile de tip
INSERT și UPDATE. El este compus implicit din 14 caractere pentru formatul
'YYYYMMDDhhmmss' dar putem să specificăm la crearea unui tabel că dorim să conțină
mai puține caractere.
Tipurile de string-uri în MySQL sunt BLOB, TEXT, CHAR, VARCHAR, ENUM și SET. În
tabelul următor puteți vedea marimea maximă admisă pentru cele mai folosite dintre ele
precum și spațiul alocat pe disc pentru fiecare:
Câmpul de tip BLOB poate conține o cantitate variabilă de informație, similar cu
TEXT însa diferit printr-un singur aspect: căutarea într-un câmp BLOB este case sensitive (se
face diferență între majuscule și minuscule), iar într-un câmp TEXT nu este. Tipul
VARCHAR este similar tipului TEXT cu deosebirea ca într-o coloană de tip VARCHAR
putem specifica numărul maxim de caractere admise.
Administrarea bazelor de date MySQL din linia de comandă
În cazul unui sistem de operare Windows, conectarea pentru a lucra în mod interactiv
cu cu serverul MySQL instalat pe același calculator realizează lansând în execuție 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, având același efect. Comenzile SQL se
termină, uzual, cu caracterul “ ; “. Dând comanda help; (sau \h sau ?) pe ecran apar o serie de
comenzi MySQL importante.
Câteva comenzi din linia de comandă:
-create database – crează o bază de date
-use – se selectează o bază de date
-create table – se crează tabele
-alter – modificarea definiției unei tabele se realizează folosind comanda alter
-insert – adăugare de înregistrări într-un tabel
-update – permite modificarea valorilor unor câmpuri dintr-un tabel
-drop – permite suprimarea unui tabel din baza de date
-show – se folosește pentru listarea tabelelor care alcătuiesc baza de date
-select – este cea mai complexă comandă din limbajul SQL și este destinată regăsirii
unor anumite date
-quit – determină întreruperea conexiunii cu serverul MySQL
CAPITOLUL 3.
SPECIFICAȚIILE APLICAȚIEI
3.1.Prezentare generală
Odată ce omul a devenit o ființă economică ( homo oeconomicus ) putem presupune ca
a apărut și nevoia de măsurare și înregistrare a activității sale economice desfășurate la nivel
individual sau comunitar.
Conținutul informațional din întreaga lume în zilele noastre este convertit la o formă
digitală, făcând astfel informațiile disponibile oricui, oriunde și oricând. Prin intermediul
sistemelor informatice, multe dintre activitățile pe care omul le întreprinde pot fi ușurate și
chiar îmbunătățite.
Apariția 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 comunității, a realizat că își ușurează viața și că
poate să realizeze lucruri pe care până atunci nu putea, sau le făcea cu muncă grea.
22
Universitatea de Nord Baia Mare
Să ne gândim puțin cum lucrau institutele de invățământ înaintea apariției
calculatoarelor. Notele erau introduse în catalog de hârtie. Gândiți-vă ce cantitate de hârtii s-
a adunat, și pentru stocarea acestora era necesar un spațiu de depozitare mare. Era doar un
dezavantaj al inexisteței calculatoarelor. Alt dezavantaj ar fi faptul că înregistrările, datele,
nu erau în siguranță, nu erau protejate. Calculatoru prin apariția lui a rezolvat toate
dezavantajele și defectele trecutului. Școlile din zilele noastre folosesc calculatoare și
programe diferite pentru îndeplinirea serviciilor, simplificând sarcinile omului.
Aplicația Sistem de management al Școlarității Elevilor a fost proiectată să fie
utilizată de către profesorii și elevii unei clase. Este concepută în așa fel încât să fie ușor de
înțeles și de folosit. Persoanele care vor folosi acest program nu necesită cunoștințe
superioare în domeniul informaticii. Proiectul conține doar ferestre, butoane, câmpuri de
introducere a datelor, și tabele, iar utilizarea acestora este foarte simplă. Adăugarea, ștergerea
elevilor si a profesorilor, crearea, modificarea conturilor sunt doar câteva dintre operațiile
care se pot face în interiorul aplicației. Aplicația dispune și de o parte care trimite în cazul în
care un elev și-a uitat parola de autentificare.
3.2.Pagina de acces
Fișierul predefinit pentru directorul web catalog este index.php, deci înseamnă că
atunci când accesăm serverul prin comanda http://localhost/catalog/ serverul va trimite
fișierul de bază, adică prima pagină a site-ului (index.php) ce va fi afișat în browser (Fig 3.1).
Fig 3.1 Pagina principala
23
Universitatea de Nord Baia Mare
Asa cum puteți vedea, prima magina reprezintă pagina de autentificare. Paginile sunt
concepute astfel ca să fie ușor de folosit de elevi si profesori. Prin intermediul acestei pagini
pot accesa utilizatorii datele personale si informatiile asupra notelor obtinute la 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
decât ar fi necesar, ceea ce conduce la o funcționare neperformantă a browserelor web.
Afirmația in sine este în mare parte adevarată deoarece paginile web produse 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
îmbunătățit în versiunile recente. Cu toate acestea, Macromedia a crescut suportul pentru
tehnologia CSS precum și alte modalități de design fără a fi necesară folosirea design-ului pe
bază de tabel.
Dreamweaver permite folosirea majorității browserelor instalate pe calculatorul
utilizatorului, pentru a previzualiza website-ul creat. De asemenea conține și câteva utilitare
pentru administrarea site-urilor, cum ar fi cele pentru a găsi și modifica un paragraf sau o
linie de cod, în întregul web site, pe baza oricăror parametri specificați de către utilizator. Cu
ajutorul panourilor de stare se poate crea cod JavaScript fără a avea cunoștințe de
programare.
Fig 3.2 Dreamweaver CS3
Odată cu apariția versiunii MX, Macromedia a încorporat utilitare de generare
dinamică a conținutului. De asemenea este oferit suport pentru conectarea la baze de date
(cum ar fi MySQL și Microsoft Access) pentru a filtra și afișa conținutul folosind script-uri
de genul PHP, ColdFusion, Active Server Pages (ASP) și ASP.NET, fără a avea nevoie de o
prealabilă experiență în programare.
Un aspect foarte lăudat al Dreamweaver-ului îl reprezintă arhitectura sa extensibilă.
Extensiile, așa cum sunt ele cunoscute, sunt mici programe, pe care orice dezvoltator le poate
scrie (de obicei în HTML și JavaScript) și pe care oricine le poate descarca și instala, acestea
24
Universitatea de Nord Baia Mare
aducând un spor de performanță și funcționalitate îmbunătățită programului. Există o
comunitate de dezvoltatori care produc aceste extensii și le publică (atât comercial cât și
gratuit) pentru probleme de dezvoltare web, de la simple efecte rollover până la soluții
complete de vânzare online.
Header-ul conține două poze: prima conține titlul lucrării. Am prelucrat această poză
folosind Adobe Photoshop, adăugând două pictograme. După cum ați observat, de pe prima
pagină elevii au posibilitatea de înregistrare și recuperare parolă. Funcțiile celor două link-uri
vă voi prezentate mai în amănunte în următorul capitol.
Fig 3.3 Photoshop CS3
3.3.Stocarea informațiilor
O aplicație pentru web prelucrează date de diferite naturi: siruri de caractere, valorile
numerice, date calendaristice etc. Exemple : denumiri de materii, nume de utilizatori, parole,
adrese de e-mail, note, data primirii notelor etc. Informațiile păstrate într-o bază de date
relațională sunt dispuse într-un ansamblu de fisiere. Din considerente legate de cresterea
vitezei de accesare a informațiilor, fisierele sunt formate din articole având aceeasi structură .
Articolele au o structura a unui fisier de date este definită la crearea sa, prin precizarea
câmpurilor pe care le va conține fiecare articol.
Un câmp dintr-un articol conține o informație elementară. Fiecare câmp are un nume,
conține un tip de informație (sir de caractere, număr, dată calendaristică, fisier etc.), are o
lungime de reprezentare a informației si, În cazul pentru câmpurilor numerice, are precizat
numărul de zecimale . Datorită faptului că formatul articolului este fix, frecvent se foloseste
pentru fisier o reprezentare tabelară si chiar se foloseste pentru fisierele de date denumirea de
"tabele".
O aplicație de tip server este un program care asteaptă comenzi din partea unor
aplicații client. În cazul serverelor de baze de date relaționale (Oracle, MySQL, IBM DB2,
25
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 aplicații care constituie infrastructura software necesară găzduirii saiturilor web:
server de web (Apache), server de baze de date ( MySQL), interpretoare pentru scripturi scrise
în limbajele PHP si PERL. Pentru a putea fi folosit pe servere care găzduiesc saituri, după
instalarea pachetului de aplicații trebuie operate unele configurări, mai ales pentru
ameliorarea securității acestor pachete.
XAMPP a fost creat însă pentru a pune la dispoziția dezvoltatorilor un instrument
eficient de testare a diferitelor aplicatii in dezvltare. Odată instalat pe calculatorul propriu,
pachetul de aplicații va face ca acesta să aibă comportamentul unui server, permițând testarea
aplicațiilor scrise fără a intra în conflict cu firma care va găzdui î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ă descărcare si dezarhivare, fără a fi
necesară instalarea. După instalare, prezența pe calculator a pachetului de aplicații se
manifestă prin
aplicația XAMPP Control Panel Application .
Fig 3.4 XAMPP Control Panel Application
După lansarea în execuție a acestei aplicații se vor apăsa butoanele Start din dreptul
celor două aplicații esențiale testării saiturilor : Apache si MySQL.
Notă : Dacă se utilizează varianta XAMPP Lite, se dezarhivează arhiva descărcată din Internet
în rădăcina discului care va fi folosit pentru testarea site-urilor si aplicatiilor in dezvoltare.
În urma desarhivării, pe discul selectat va fi adăugat directorul xampplite. În această
variantă pornirea aplicatiilor Apache si MySQL necesare testării saiturilor se realizează
selectând xampp_start din directorul xampplite.
26
Universitatea de Nord Baia Mare
Fig 3.5 Directorul xampplite
Pentru oprirea aplicațiilor se va selecta xampp_stop.
Verificarea funcționării aplicațiilor necesare pentru testarea saiturilor se poate realiza
tastând în browser adresa aplicației web integrate în XAMPP și destinate administrării
serverului de baze de date MySQL: http://localhost/phpmyadmin/ .
Ca aplicație de tip server am folosit Apache. O aplicație de acest tip este un program
reactiv. El rulează în continuu pe calculatorul destinat păstrării unuia sau mai multor saituri
web și așteaptă cereri din partea unei aplicații client ( Internet Explorer, Mozilla Firefox,
Opera etc.).
Ca aplicație, serverul pentru web accesează un ansamblu de fișiere dispuse pe HDD a
calculatorului pe care acesta este instalat. Dacă o aplicație client solicită un fișier existent,
serverul pentru web îl va furniza respectând regulile unui protocol precizat în cererea
clientului (http).
Paginile web sunt de regulă documente multimedia conținând text, imagini, sunet,
animații. Ele sunt stocate pe HDD în mai multe fișiere, fiecare fișier conținând informații de
un anumit tip. Corespunzător, serverul pentru web va primi din partea aplicației client o suită
de cereri de transfer de fișiere începând cu fișierul principal.
Asamblarea documentului din fragmentele primite cade în sarcina aplicației client. Pe
serverele pentru Internet funcționând sub UNIX sau Linux, Apache este configurat astfel
încât rădăcina structurii arborescente de directoare care găzduiesc saituri diferă de cea creată
în urma instalării XAMPP.
27
Universitatea de Nord Baia Mare
CAPITOLUL 4.
IMPLEMENTAREA ȘI UTILIZAREA APLICAȚIEI
4.1.Crearea bazei de date a aplicației
4.1.1.Crearea unei baze de date folosind XAMPP
Baza de date a fost realizată cu aplicația XAMPP folosind phpMyAdmin.
Pentru deschiderea aplicației phpMyAdmin se pornește XAMPP și se tastează în caseta de
text pentru adrese a aplicației Internet Explorer adresa http://localhost/phpmyadmin/
Fig 4.1
În fereastra afișată se va tasta numele noii baze de date ( catalog) și se va apăsa 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 afișa 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 (fișierele) acesteia, se vor adresa acesteia.
La următoarele porniri ale aplicației phpMyAdmin intrarea în baza de date catalog se
va realiza prin selectarea acesteia în arborele afișat în panoul din stânga al aplicației.
Fig 4.4
4.1.2.Crearea unui tabel al bazei de date
•Crearea tabelei admin
29
Universitatea de Nord Baia Mare
Tabelul admin va conține datele de identificare a utilizatorilor autorizați 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 câmpuri (engl. fields).
În vederea creării comenzii create table, phpMyAdmin va cere introducerea numelui și tipului
fiecăruia dintre câmpurile tabelului.
Fig 4.6
Câmpurile tabelului admin sunt adminID (INT – valoare întreagă), username
(VARCHAR lungime maximă 20 caractere), password (VARCHAR – lungime maximă tot 20
caractere), email(VARCHAR), matID(INT- valoare întreagă), tipID(INT- valoare întreagă).
Tipul VARCHAR se folosește pentru siruri de caractere de lungime variabilă. Pentru câmpul
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 indicându-i cheia primară.
Proprietatea AUTO_INCREMENT indică modul de formare a valorilor câmpului
adminID. Valoarea acestuia pentru un nou articol care urmează să fie adăugat se calculează
automat, prin incrementarea valorii corespunzătoare ultimului articol present în tabel.
Câmpul username s-a definit ca fiind INDEX. Impunerea ca index a unui câmp
facilitează căutările în tabel efectuate după valori ale respectivului câmp. În cazul dat,
serverul MySQL va atașa tabelului admin un fișier ale cărui înregistrări vor conține perechi
de valori username – adresă articol pe HDD .
30
Universitatea de Nord Baia Mare
În noul fișier înregistrările vor fi păstrate ordonate crescător după valorile câmpului
username. La căutarea după username a unui articol din tabelul admin se va căuta mai întâi în
fișierul asociat tabelului adresa articolului căutat după care se va extrage direct articolul dorit.
Notă: Spre deosebire de PRIMARY, INDEX nu înseamnă valori distincte. Câmpul
username permite introducerea aceluiași nume de mai multe ori.
În acest caz, în fișierul asociat tabelului admin vor fi înregistrate grupat mai multe
perechi username – adresă conținând același nume. La căutarea unui nume care apare
repetat, serverul MySQL va furniza tot grupul de articole corespunzând criteriului de căutare
impus.
Crearea tabelului se realizează prin apăsarea butonului
.
phpMyAdmin va afișa și comanda CREATE TABLE trimisă serverului MySQL.
Fig 4.7
•Crearea tabelei elev
Baza de date catalog va conține printre altele un tabel cu datele elevilor și a
profesorilor. Pentru afișarea acestora se va declara în prealabil tabelul elevi respectiv
profesori. Rolul acestuia va fi acela de a permite ulterior afișarea și modificarea datelor
personale.
Tabelul elevi are 8 câmpuri, elevID fiind declarat cheie primară.
Fig 4.8
31
Universitatea de Nord Baia Mare
Fig 4.9
Fig 4.10
Notă: Câmpul tipID reprzinta tipul de utilizator (administrator, elev, professor).
Cele 3 tipuri de utilizatori sunt prezentate mai explicit în Capitolul 5.
4.2.Interfața cu utilizatorul
Aplicația prin lansarea ei produce apariția ferestrei principale a paginii Web, care se
ocupă de autentificarea utilizatorilor care doresc să folosească acestă aplicație.
32
Universitatea de Nord Baia Mare
Fig.4.11 Pagina principală
Există trei tipuri de utilizatori care pot folosi această aplicație, fiecare având privilegii
unice.
Cele trei tipuri de utilizatori sunt următoarele:
– administrator : este nevoie de un nume utilizator și o parolă de administrator
– profesor : este nevoie de un cont de profesor
– elev : este nevoie de un cont de elev al clasei 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 întâmplă mai multe
lucruri de care utilizatorul nu știe, cum ar fi:
– primul lucru, care se întâmplă când utilizatorul introduce informațiile 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 găsit o corespondență se afișează un mesaj de eroare: „Nume utilizator sau
parola gresita !”
În caz afirmativ, se acceptă numele de cont și parola, dispare fereastra de autentificare
și apare fereastra cu meniul.
Din fereastra principală în afară de autentificare, elevii mai au posibilitatea:
-Înregistrare
-Recuperare parolă
Fucțiile pentru sistem a celor două pagini sunt incluse in fișierul catalog_fns.php prezentat
mai jos.
<?php
require_once('db_fns.php');
require_once('user_auth_fns.php');
require_once('output_fns.php');
?>
Acest fișier este doar un container pentru alte trei fișiere incluse care le vom utiliza în
cele două pagini: Înregistrare elevi și Recuperare parolă. Este structurat în acest mod pentru
ca funcțiile se încadrează în grupuri logice. Unele dinre aceste grupuri pot fi utile pentru alte
proiecte, așa că am plasat fiecare grup de fincții într-un fișier diferit pentru a ști unde le pot
găsi atunci cand voi avea din nou nevoie de ele. Fișierul catalog_fns.php l-am construit
deoarece în scripturile acestor două pagini voi folosi o mare parte din cele trei fișiere cu
funcții. Este mai ușor să includem doar acest fișier în script în loc să am trei instrucțiuni
require.
În caz particular utilizez funcții din fișierul catalog_fns.php. Acestea sunt funcții
destul de simple, iar majoritatea ieșirii este cod HTML simplu. În continuare vă voi 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 dorește să
înregistreze, nu a fost deja creat de către administrator. Există o posibilitate pentru a accesa
pagina de înregistrare: Selectând Înregistrare elevi din meniul :
34
Universitatea de Nord Baia Mare
Fig.4.13 Înregistrare 1
Selectând cu mouse-ul una dintre cele două butoane, prezentate mai sus, va apărea
pagina Înregistrare elevi.
Fig.4.15 Înregistrare elevi
Pentru a se înregistra, elevul trebuie să aib ă un număr matricol unic. Numai pe baza
acestui număr matricol se poate realiza înregistrarea pe site. Dacă elevul nu știe numărul
matricol, are două posibilitați de a rezolva accesul pe site-ul Sistem de management al
Școlarității Elevilor . Prima ar fi de a solicita numărul matricol de la administrator. Cea de-al
doilea ar fi, ca elevul să ceară de la administrator un cont, precizând 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 numărul 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 atenționa
elevul despre care câmp nu este completat.
Adresa de e-mail trebuie să fie de forma: ex: aaaa@aaaa.aaa. Dacă nu este de această
formă, apare mesajul următor: „Introduceti corect adresa de e-amil ! ”
35
Universitatea de Nord Baia Mare
Fig.4.15 Eroare adresa e-mail incorect
Dacă câmpurile au fost completate, dar numărul matricol nu corespunde cu nici unul
existent în baza de date (numerele matricole se introduc de către administrator), înregistrarea
nu se poate efectua. Va apărea mesajul : „Inregistrarea nu s-a efectuat cu succes. Numarul
matrivcol incorest !”
Înregistrarea cu un număr matricol se poate efectua numai o singură dată. În cazul în
care un elev vrea să folosească numărul 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 existenței
numărului matricol.
else{
$sql_txt_mat = "SELECT * FROM nrmatr WHERE
nr_matr='{$_POST['nr_matr']}'";
$sql_query_mat = mysql_query($sql_txt_mat) or die(mysql_error());
$sc_mat = mysql_fetch_assoc($sql_query_mat);
if(!empty($sc_mat['matrID'])){
36
Universitatea de Nord Baia Mare
Dacă numărul matricol introdus în formular există în baza de date, se efectuează
înregistrarea.
$sql_txt_elv = "INSERT INTO admin SET username =
'{$_POST['username']}', password='{$_POST['password']}', email='{$_POST['email']}',
tipID='2'";
$sql_query_elv = mysql_query($sql_txt_elv) or die(mysql_error());
if(mysql_affected_rows()>0){
$id = mysql_insert_id();
$sql_txt_elv = "UPDATE nrmatr SET adminID = '{$id}' WHERE
matrID='{$sc_mat['matrID']}'";
$sql_query_elv = mysql_query($sql_txt_elv) or die(mysql_error());
do_html_header('Inregistrare efectuata cu succes');
echo '<script language="javascript">
location.href="index.php"
alert("Inregistrarea s-a efectuat cu succes.");
</script>';
do_html_footer();
}else{
do_html_header('Inregistrare esuata');
echo '<script language="javascript">
location.href="index.php"
alert("Inregistrarea NU s-a efectuat cu succes.");
</script>';
do_html_footer();
}
}else{
Dacă numărul matricol introdus în formular nu există în baza de date, înregistrarea 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 următorul mesaj:
„Introduceti numele de utilizator ”
Pentru un nume de utilizator introdus, care nu exist ă in baza de date, apare mesajul:
“Nume de utilizator incorect!! Nu se gaseste adresa de email !! ”.
Dacă numele de utilizator este corect, apasând butonul Schimb parola se crează o
parolă nouă, care va fi trimisă prin e-mail pe adresa de e-mail a utilizatorului respectiv.
Parola nouă se i-a dintr-un fișier text. Funcția care crează parola este:
function get_random_word($min_length, $max_length)
{
$word = '';
$dictionary = "words.txt"; // fișierul text cu cuvintele dintr-un dicționar
$fp = @fopen($dictionary, 'r') or die ("Can't open file");
if(!$fp)
return false;
$size = filesize($dictionary);
// selectarea aleatoare a unui cuvânt din fișier
srand ((double) microtime() * 1000000);
$rand_location = rand(0, $size);
fseek($fp, $rand_location);
// căuterea unui cuvânt cu lungime corectă
while (strlen($word)< $min_length || strlen($word)>$max_length || strstr($word,
"'"))
{
if (feof($fp))
fseek($fp, 0); // daca e la sfarsit, se trece la inceput
$word = fgets($fp, 80); // sare peste primul cuvant pentru ca poate fi
partial
$word = fgets($fp, 80); // parola poteniala
};
$word=trim($word); // curate adulmecatorul \n de la fgets
38
Universitatea de Nord Baia Mare
return $word;
}
4.3.Tipuri de utilizatori
După autentificarea reușită apare pagina cu meniul aplicației. În prima pagină va
apărea un mesaj cu numele de utilizator a persoanei care folosește programul.
Fig.4.17 Pagina start
Meniul paginii este diferit, în funcție de tipul de utilizator, adică administrator, elev,
profesor. Meniurile pentru cele trei tipuri de utilizatori sunt următoarele:
-Administrator
Fig.4.18 Meniu administartor
-Profesor
39
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, așa cum am ilustrat in Fig.4.18.
Butonele sunt:
Cont profesori
Cont elevi
Numar matricol
Materie
Lista elevi
Lista profesori
Schimb parola
Primul buton numit Cont profesori se ocupă cu crearea și administrarea
conturilor pentru profesori. Prin apăsarea butonului se accesează pagina Administrare cont
profesori, în care administratorul are posibilitatea de a crea și șterge contul profesorilor.
Fig.4.21 Cont profesori
Pentru a crea un cont trebuie sa completam datele de autentificare, materie se
selecteză din baza de date, dintre cele adăugate de către administrator. În cazul în care nu se
introduc datele, apare un mesaj în care se specifică exact care câmp nu a fost completat.
În cazul în care adresa de e-mail nu este corectă apare mesajul: „Introduceti 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ă modifică m un cont, trebuie să alegem contul respectiv, apăsând butonul
Modifica. Datele de autentificare, selectate pentru modificare, apar în casetele de text
corespunzătoare. În acest caz în loc de butonul Adauga apare Modifica. După modificarea
datelor, apasând butonul Modifica, apare mesajul : „Contul a fost modificat !”
La ștergere apare urmatorul mesaj de interogare: „Esti sigur ca vrei sa stergi ?”
Apasând OK, se executa comanda , iar datele de autentificare se șterg din baza de date:
if(!empty($_GET['sterge'])) {
$sql_txt = "DELETE FROM admin WHERE adminID='{$_GET['sterge']}'";
$sql_query = mysql_query($sql_txt);
if(mysql_affected_rows()>0){
$sql_txt = "DELETE FROM profesori 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. Apasând acest buton apare pagina Administrare cont elevi , care este asemănător cu cea
din Fig.4.18. Modificarea și ștergerea se face asemănător 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 adăugarea și ștergerea numărului
matricol, pe baza căruia se face înregistrarea de către elevi. În cazul în care nu completăm
câmpul, iar apăsăm 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 apărea lângă numărul matricol. Adaugând un număr matricol se execută codul:
$sql_txt_ad = "select * from nrmatr where nr_matr='$nr_matr'";
$sql_query_ad = mysql_query($sql_txt_ad);
if (mysql_num_rows($sql_query_ad)>0){
$msg = "Numarul matricol existent !";
}else{
if(!empty($_POST['action']) AND $_POST['action']=="addMatr" ) {
$sql_txt = "INSERT INTO nrMatr 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 adăugarea și ștergerea materiei. În cazul în care
nu completăm câmpul, iar apăsăm 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 afișarea colectivului de
profesori existente în baza de date.
Fig.4.25 Colectivul de elevi
Butonul Schimb parola se ocupă cu schimbarea parolei a administratorului.
4.3.2.Meniul pentru tipul profesor
Meniul pentru tipul profesor are 4 butoane, așa cum am ilustrat in Fig.4.19.
Butonele sunt:
Adaugare note
Date personale
Lista elevi
Situatie elevi
Schimbare parola
Butonul Adaugare note se ocupă cu adăugarea notelor de către profesorul care
este autentificat. Adăugarea notei se realizează apăsand butonul Adauga. Completarea
câmpurilor este obligatoriu. În cazul în care nu am completat bine formularul, apare o eroare,
care ne avertizează unde am greșit, sau care casetă de text nu este completată. Nota trebuie să
fie între 1 și 10. În caz contrar apare o eroare cu mesajul: „Introduceti corect nota!”. Data se
selecteaza apăsând butonul
, dintr-un calendar realizat cu Javascript.
45
Universitatea de Nord Baia Mare
Fig.4.24 Adaugare note
Butonul Date personale se ocupă cu adăugarea și modificarea datelor
personale, cum ar fi: nume, prenume, adresa, nr. telefon. Persoana care se autentifică și
folosește prima data aplicația, trebuie să introducă datele personale. În cazul în care datele au
fost deja introduse anterior, accesând pagina, datele personale a utilizatorului apar în casetele
de text, iar aceasta are posibilitetea doar de a modifica aceste date apăsând butonul
.
Codul php a paginii respective este următoarea:
if(!empty($_POST['action']) AND $_POST['action']=="addProf") {
$sql_txt = "SELECT * FROM profesori 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 modificări
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 căsuțele 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, căsuțele de text sunt goale, și avem posilitatea de a adăuga
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 afișarea colectivului de elevi, identic ca la
tipul de utilizator administrator.
Butonul Situație elevi se ocupă de afișarea mediei a fiecărui elev la materia la
care predă profesorul autentificat. Afișarea se face selectând 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 afișate în tabela de situații.
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, așa cum am ilustrat in Fig.4.20.
Butonele sunt:
Afisare note
Date personale
Lista profesori
Schimbare parola
Butonul Afisare note se ocupă cu afișarea notelor la fiecare materie. Materia se
selectează din combobox-ul
. După selectarea materiei apar notele și media
la materia respectivă. Select-ul pentru afișarea 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";
Afișarea notei se face numai pentru elevul care este autentificat, selectând materia
dintr-un combobox. Această verificare se face precizând
e.adminID='{$_SESSION['logat_elev_id']}'
50
Universitatea de Nord Baia Mare
Se calculează media notelor primite selectând din tabela de note numai notele care
aparțin elevului autentificat și facând 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 afișarea colectivului de profesori,
precizând materia predată de fiecare profesor. Selectarea datelor care vor fi afișate în tabelă
se face cu :
SELECT p.*, m.*, a.* FROM admin 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
Butonul Date personale și Schimbare parola este indentic cu cea de la tipul
profesor.
52
Universitatea de Nord Baia Mare
CAPITOLUL 5.
CONCLUZII
5.1.Concluzii
Importanța Internetului în zilele noastre este deja cunoscută iar exploatarea
oportunitaților oferite de acesta trebuie sa fie o prioritate pentru o firmă modernă mai ales
dacă concurența are deja prezență online. Un web site costă o singură dată și rămâne
permanent, 24 de ore din 24 în atenția publicului din orice zonă a lumii. Oricând, conținutul
unui web site poate fi actualizat sau modificat după bunul Dumneavoastră. plac.
La baza aplicației Sistem de management al Școlarității Elevilor stă limbajul de
programare PHP, care este un limbaj foarte puternic, și foarte des folosit. Din aceste motive
am ales acest limbaj pentru implementarea aplicației. În zilele noastre c ele mai multe aplicații
distribuite sunt scrise în PHP, care este o soluție convenabilă pentru proiectare a unei aplicații
de comerț electronic pentru clienții care dispun de un buget redus.
Lumea se schimbă de la o zi la zi, tehnologiile avansează, apar noi și noi aplicații,
software care ne vor conduce într-o lume computerizată. Eu cred că PHP ocupă un loc foarte
important în această lume și are un rol deosebit în dezvoltarea noilor tehnologii.
Aplicația Sistem de management al Școlarității Elevilor este doar o mică parte din
această lume imensă a limbajului PHP, dar o parte semnificativă, deoarece folosirea lui
ușurează munca multor oameni cu vârste diferite.
5.2.Posibilități de dezvoltare
Versiunea respectivă a aplicației Sistem de management al Școlarității Elevilor nu
este versiunea finală, ci dimpotrivă prima versiune. Aplicația poate fi îmbunătățită, adăugând
noi facilități. Iată câteva lucruri noi care ar putea fi incluse în dezvoltarea acestui program:
•Aplicația ar putea fi dezvoltată într-un fel ca să deservească toate necesitățile
unei școli, adicaă să fie posibil folosirea acestuia de către toate clasele unei
școli sau chiar de către mai multe școli.
•O altă dezvoltare ar putea fi adăugarea unei ramuri în aplicație care să se
ocupe de prezența elevilor la fiecare oră și de construirea orarului școlar la
fiecare clasă.
•Al treilea punct de dezvoltare ar putea fi crearea unui forum de discuții între
elevi și profesori care ar fi util de exemplu pentru fixarea examenelor,
informarea elevilor despre diferite activități școlare etc.
•O dezvoltare majoră ar fi crearea unui nou tip de utilizator, cum ar fi părinte.
Și părintele să aiba acces la note, dar numai la fiul și/sau fiica părintelui
respective. Această dezvoltare ar fi foarte utilă pentru ca în zilele noastre
părinții de multe ori nu află situația școlară a copilului numai de exemplu la o
ședință cu părinții. Cu această dezvoltare putem scutii părinții și profesorii de
timpul pierdut în urma ședințelor, discuțiile putând fi rezolvate printr-un
forum al aplicației.
Acestea sunt doar niște idei de dezvoltare a aplicației Sistem de management al
Școlarității Elevilor, dar, având în vedere progresul tehnologiei, mai pot apărea și altele.
53
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 , Rețele locale de calculatoare Proiectare
și administrare
7.[Gug2005], HTML , X HTML , 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 aplicațiilor web cu PHP și MySQL , Ed. Risoprint 2006.
55
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: GENERALITĂȚI…………………………………………………………………………………………………………………………… [607043] (ID: 607043)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
