Sunteți pe pagina 1din 168

UNIVERSITATEA DIN ORADEA

Departamentul pentru Pregătirea și Perfecționarea Personalului Didactic

Specializarea: profesor de Informatică

CREAREA PAGINILOR WEB DINAMICE CU


PHP ȘI MySQL

Conducător științific:
Prof.univ.dr. Constantin POPESCU

Autor: Daniela ABÎD


Unitatea de învățământ:
Liceul Tehnologic ”Mihai Novac”
Localitatea: Oravița
Județul: Caraș-Severin

-Oradea 2014-
1
CUPRINS

CAPITOLUL 1 INTRODUCERE 3
1.1. Justificarea alegerii temei 3
1.2. Structura lucrării. 4
CAPITOLUL 2 CREAREA PAGINILOR WEB FOLOSIND HTML 5
2.1. Internet, rețeaua WWW (World Wide Web), site-uri WEB. 5
2.2. Limbajul HTML – limbaj de marcare a hipertextului 8
2.2.1. Crearea și salvarea unui fișier HTML 8
2.2.2. Structura de bază a unei pagini web 9
2.2.3. Crearea paragrafelor. 10
2.2.4. Etichete elementare pentru formatarea textului 11
2.2.5. Atributele unei etichete 13
2.3. Liste 15
2.4. Legăturile (Link-urile) 17
2.5. Imagini 20
2.6. Tabele 22
2.7. Formulare 23
2.8. Cadre 26
2.9. CSS (Cascading Style Sheets) 28
CAPITOLUL 3 LIMBAJUL PHP 29
3.1. Noțiuni de bază 29
3.1.1. Noțiuni elementare de sintaxă PHP: etichete, instrucțiuni,
29
afișarea textului, comentarii
3.1.2. Tipuri de variabile 30
3.1.3. Variabile. Constante. Expresii. Operatori 31
3.2. Structuri de control 38
3.2.1. Structuri condiționale 39
3.2.2. Structuri repetitive 40
3.3. Formulare 42
3.4. Utilizarea matricelor 43
3.5 Cookie-uri și sesiuni 47
3.6. Funcții 49
3.7. MySQL și PHP - Noțiuni de bază 52
CAPITOLUL 4 ORGANIZAREA ŞI DESFĂŞURAREA CERCETĂRII 57
4.1. Ipoteza de lucru și obiectivele 57
4.2. Metodica cercetării 58
4.3. Descrierea grupului asupra căruia s-a efectuat cercetarea 60
4.4. Organizarea și desfășurarea cercetării 60
4.4.1. Etapa constatativă 61
4.4.2. Etapa experimentală 71
4.4.3. Etapa finală – interpretarea rezultatelor 141
CONCLUZII 157
BIBLIOGRAFIE 159
ANEXE 160
DECLARAȚIE DE AUTENTICITATE 166

2
1. INTRODUCERE

1.1. Justificarea alegerii temei

Popularitatea paginiloe web a crescut exponențial, incepând cu anii 90. Acest lucru a fost unul
dintre princilalele motive pentru alegerea temei acestei lucrări.

Motivația aclegerii temei a fost următoarea: popularitatea și dezvolarea folosirii


Internetului și în mod special, a paginilor web ar trebui să-și găsească locul și printre obiectele
studiate de elevi în cadrul școlii.

Datorită popularității paginilor web, și, mai ales a interesului manifestat de către elevi
pentru modalități de creare a acestora, am ales ca temă a cercetării crearea acestora.

Limbajul asupra căruia m-am orientat pentru exemplificarea creării de pagini web
dinamice este limbajul PHP, un limbaj de programare destinat în primul rând Internetului,
pentru crearea de pagini web dinamice. Este unul dintre cele mai importante limbaje de
programare web open-source (codul sursă este public, fiind accesibil tuturor) şi server-side
(rularea sa nu se face pe calculatorul celui care vizualizează pagina, ci pe server-ul care o
conţine).

Popularitatea de care se bucură acest limbaj de programare se datorează următoarelor


sale caracteristici:

 Gratuitatea – este, probabil, cea mai importantă caracteristică a PHP-ului. Dezvoltarea


 Simplitatea – sintaxa limbajului este destul de liberă. Nu este nevoie de includere de
biblioteci sau de directive de compilare, codul PHP inclus într-un document fiind trecut
între nişte marcaje speciale;
 Securitatea – PHP-ul pune la dispoziţia programatorilor un set flexibil şi eficient de
măsuri de siguranţă;
 Flexibilitatea – fiind apărut din necesitatea dezvoltării web-ului, PHP a fost
modularizat pentru a ţine pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de
un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web exitente:
Apache, IIS, Zeus, etc.

3
1.2. Structura lucrării.

Lucrarea este structurată în 4 capitole, după cum urmează:


Capitolul I – INTRODUCERE, cuprinde justificarea alegerii temei și strucrtura
lucrării
Capitolul 2 - CREAREA PAGINILOR WEB FOLOSIND HTML, cuprinde
elemente teoretice ale creării paginilor web folosind limbajul HTML. Descrie structura de bază
a unei pagini și elementele folosite de limbaj pentru crearea paginilor (etichete pentru formatare
și pentru crearea elementelor specifice paginilor web)
Capitolul 3 LIMBAJUL PHP – cuprinde elementele esențiale ale limbajului și modul
de flosire a acestora pentru realizarea unei aplicații dinamice
Capitolul 4 ORGANIZAREA ŞI DESFĂŞURAREA CERCETĂRII – descrie
ipoteza cercetării, metodele folosite și efectuarea propriu-zisă a acestei cercetări.
CONCLUZII
BIBLIOGRAFIE
ANEXE

4
2. CREAREA PAGINILOR WEB FOLOSIND HTML

2.1. Internet, rețeaua WWW (World Wide Web), site-uri WEB.

Dezvoltarea computerelor, începând din anii 1950 poate fi considerată un factor esențial
în evoluția internetului. Aceste prime calculatoare permiteau transmisiile de date de la un
computer principal la terminale și, în ciuda aspectului greoi, au reprezentat o etapă esențială în
apariția fenomenului.
Informaticianul american Joseph Carl Robnett Licklider (1915 -1990), a fost una dintre
cele mai de seamă personalități din istoria IT. Pe baza ideilor lui, în 1969, a fost instalată o
legătură printr-o rețea numită ARPANET (Advanced Research Projects Agency Network), între
universitatea California - Los Angeles și Institutul de Cercetare Stanford. În același an rețeaua
ARPANET s-a extins, incluzând și Universitatea California și Universitatea Utah.
Rețelele de transmisie de date au început să se dezvolta în anii 60-70, când, au apărut
rețele similare ARPANET, de mici dimensiuni, în Marea Britanie (Mark I), în Franța
(CYCLADES), în SUA (Merit Network) ș. a.
Toate aceste rețele operau pe principiul comutației de pachete (sau comutației
asincrone), o tehnică de comunicații digitale care constă în separarea mesajelor în blocuri de
dimensiuni reduse (pachete), ce sunt ulterior transmise unul câte unul prin rețea, într-o
succesiune rapidă, până la receptor, unde sunt reasamblate în forma mesajului inițial.
În anul 1978 ia naștere prima rețea internațională - International Packet Switched
Service (IPSS); aceasta a avut o dezvoltare spectaculoasă în Europa și SUA, până în anul 1981
s-a extins în Canada, Hong Kong și Australia, iar din anul 1990 putem vorbi de o extindere a
acesteia la nivel global.
În paralel, au apărut și alte rețele, care foloseau tehnologii de comunicație diferite. Toate
la un loc însumau o infrastructură care se întindea în aproape toată lumea. Se impunea așadar
existența unui “protocol de rețea” ( un sistem de reguli și convenții), un fel de limbaj comun în
care toate computerele legate în rețea să se poată înțelege între ele. Regulile și convențiile
protocolului de rețea se referă la:
 formatul mesajului;
 temporizarea;
 controlul erorilor;
 inițierea și finalizarea sesiunii de transfer al datelor;

5
 alte detalii legate de comunicațiile de date.
Se poate spune că Internetul este o rețea unitară de computere și alte dispozitive cu
adrese computerizate, conectate între ele și operând coordonat datorită unui ansamblu
standardizat de protocoale de transfer de date. Standardul care s-a impus în ceea ce privește
Internetul, constă în protocolul TCP/IP.
Caracteristici ale protocolului TCP/IP.
 este protocolul de rețea cel mai larg folosit în lume
 se referă la o întreagă familie de protocoale înrudite, toate proiectate pentru a
transfera informații prin intermediul rețelei.
 este proiectat pentru a fi componenta software a unei rețele.
 trimite scrisori electronice, transfera fișiere, livrează servicii de logare la
distanță, dirijează mesajele si căderile de rețea.
Numele protocolului este dat de numele unei familii de protocoale folosite pentru
transferul datelor în rețea:
 protocolul IP (Internet Protocol). IP asigură livrarea pachetelor numai dacă în
funcționarea rețelelor nu apar erori. Dacă un mesaj este prea lung, IP cere
fragmentarea lui în mai multe pachete. Transmiterea pachetelor IP se face între
calculatoare gazdă și nu direct, între programele de aplicație. Din aceste motive,
protocolul IP este completat cu un altul;
 protocolul TCP (Transmission Control Protocol), care face fragmentarea și
asigură transmiterea corectă a mesajelor între utilizatori. Pachetele unui mesaj
sunt numerotate, putându-se verifica primirea lor în forma în care au fost
transmise și reconstituirea mesajelor lungi, formate din mai multe pachete.
World Wide Web este confundată adesea cu noțiunea de Internet. WWW este de fapt
un sistem de documente hipertext interconectate, ce pot fi accesate prin internet. Documentele,
care se găsesc în diferite locații pe diverse calculatoare server, pot fi regăsite cu ajutorul unui
identificator univoc numit URL. Hipertextul (inclusiv imagini etc.) este afișat cu un ajutorul
unui program de navigare în web numit browser, care descarcă paginile web de pe un server
web și le afișează pe un terminal „client” la utilizator.
Worl Wide Web (numit pe scurt și web)a fost inventat în 1989 la Centrul European de
Cercetări Nucleare (CERN) din Geneva, Elveția. Propunerea inițială de creare a unei colecții
de documente având legături între ele a fost făcută de Tim Berners-Lee în martie 1989.
Propunerea a apărut în urma problemelor de comunicare pe care le întâmpinau echipele de
cercetători ce foloseau centrul, chiar și folosind poșta electronică.

6
În 1994 CERN și M.I.T. au format Consorțiul World Wide Web, care are drept obiectiv
dezvoltarea web ului, standardizarea protocoalelor și încurajarea legăturilor dintre site-uri.
Berners-Lee și echipa sa au realizat primele versiuni pentru patru componente cheie
necesare serviciului web, și anume:
 protocolul de intercomunicație HTTP(Hypertext Transfer Protocol) - este
metoda cea mai des utilizată pentru accesarea informațiilor în Internet care sunt
păstrate pe servere World Wide Web (WWW). Protocolul HTTP este un
protocol de tip text, fiind protocolul "implicit" al WWW;
 limbajul de descriere a hipertextului HTML, pentru a putea fi afișat de browser;
 serverul de web;
 browserul.
Un site web este format din mai multe pagini web, accesibile în Internet. Paginile unui
site sunt organizate într-un anumit fel, accesibile fiecare prin adrese unice de tip URL; sunt
conectate, legate logic între ele prin elemente numite hyperlink-uri. Un hyperlink, sau mai scurt
un link, este o referință, o legătură, un element de navigație într-un document electronic către
alte părți ale aceluiași document, alte documente sau secțiuni din alte documente, spre care un
utilizator este trimis atunci când accesează elementul de navigație.
Fișierele unui site web sunt instalate pe un calculator (server), conectat permanent la
Internet, pe care rulează un program destinat de tip server, numit server web si care la cererea
unui navigator/browser de oriunde de pe Internet (calculatorul vostru), poate trimite aceste
fișiere.
Paginile web din cadrul unui site sunt fișiere în format text, scrise intru-un limbaj de
descriere a datelor HTML/XHTML (Hyper Text Markup Language).
Paginile web și celelalte resurse, instalate pe serverul web sunt accesate prin intermediul
uni protocol de comunicare la nivel de aplicație HTTP (Hyper Text Transfer Protocol) sau
HTTPS (varianta securizata al HTTP), care folosește protocolul de transport al datelor TCP/IP,
pentru a face cereri către serverul web si a primi aceste fișiere ca răspuns
Paginile web pot fi de două tipuri: pagini statice si pagini dinamice.
 Paginile statice sun fișiere text, scrise în format HTML, al căror conținut nu se
modifică la accesarea lor și se modifică doar la reactualizarea/suprascrierea lor
pe serverul web cu un conținut nou.
 Paginile dinamice, după cum spune și numele, sunt generate dinamic de către
scripturi (bucăți de cod) scrise într-un limbaj de programare (PHP, ASP, etc.).

7
Aceste pagini sunt generate în dependență de acțiunile întreprinse de utilizator
sau de schimbările care au avut loc pe server.
2.2. Limbajul HTML – limbaj de marcare a hipertextului
Unul din primele elemente fundamentale ale WWW ( World Wide Web ) este HTML (
Hypertext Markup Language ), care descrie formatul primar în care documentele sunt
distribuite și văzute pe Web. Multe din trăsăturile lui, cum ar fi independența față de platformă,
structurarea formatării și legăturile hipertext, fac din el un foarte bun format pentru documentele
Internet și Web.
Primele specificațiile de baza ale Web-ului au fost HTML, HTTP si URL.
HTML a fost dezvoltat inițial de Tim Berners-Lee la CERN în 1989. HTML a fost văzut
ca o posibilitate pentru fizicienii care utilizează computere diferite să schimbe între ei
informație utilizând Internetul. Erau prin urmare necesare câteva trăsături : independența de
platformă, posibilități hypertext și structurarea documentelor. Independența de platformă
înseamnă că un document poate fi afișat în mod asemănător de computere diferite.
Hipertext înseamnă că orice cuvânt, frază, imagine sau alt element al documentului
văzut de un utilizator ( client ) poate face referință la un alt document, ceea ce ușurează mult
navigarea între multiple documente sau chiar în interiorul unui aceluiași document. Structurarea
riguroasă a documentelor permite convertirea acestora dintr-un format în altul precum și
interogarea unor baze de date formate din aceste documente.
HTML este un limbaj de descriere, care definește cum sunt organizate logic textele,
imaginile, video și animațiile în pagina (antet, paragrafe, liste, imagini, legături, etc). HTML
este util, pentru că fiind standard pe Internet, “cineva” (ex: programatorul) poate formata într-
un anumit fel un conținut și “altcineva” necunoscut (ex: browser) poate “descifra” acea
organizare și o poate afișa în format grafic și citibil pentru utilizator.
2.2.1. Crearea și salvarea unui fișier HTML
Crearea unui fișier HTML este foarte simplă, putând fi făcută cu ajutorul oricărui editor
de text (Notepad). Există și editoare grafice, de tip WYSIWYG (What You See Is What You
Get - "ceea ce vezi este ceea ce obții"), cum ar fi Macromedia Dreamweaver, Adobe GoLive
sau Microsoft FrontPage, etc, care să pună în evidență diversele elemente de marcare și să poată
verifica și detecta erorile.
Pentru a crea un fișier HTML, fișierul creat cu ajutorul editorului Notepad trebuie salvat
cu extensia .html.

8
2.2.2. Structura de bază a unei pagini web
Limbajul HTML folosește elemente numite marcatori sau etichete (în engleză tag-uri),
care sunt aplicate informațiilor cuprinse în pagina web, pentru a ajuta browser-ul să afișeze
corect conținutul paginii.
În general, etichetele folosesc următorul format:
<ETICHETĂ> textul care va fi afectat de etichetă </ETICHETĂ>

Etichetele care formează structura de bază a unei pagini web sunt următoarele:

<HTML> … </HTML> - marchează începutul și sfârșitul paginii

O pagină web are două secțiuni: antetul și corpul paginii. Secțiunea antet este folosită
de browser pentru a prezenta diferite tipuri de informații despre pagină, iar corpul paginii
cuprinde conținutul propriu-zis al paginii. Pentru a le delimita se folosesc următoarele perechi
de etichete:

<HEAD> … </HEAD> - definește antetul paginii

În interiorul antetului poate fi definit cu ajutorul etichetelor specifice, titlul paginii, care
va fi afișat în bara de titlu a ferestrei browser-ului

<TITLE>…</TITLE> - definește titlul paginii

<BASE> permite stabilirea unei adrese de bază pentru resurse. Această etichetă se
foloseşte în special atunci când resursele se găsesc în alt director decât cel în care se află
documentul curent. În acest fel, folosirea fişierelor din directorul specificat în BASE se poate
face direct prin numele şi extensia lor. Specificarea se face prin:

<BASE href=”adresa resurse”>

<META> este folosită pentru a furniza informaţii motoarelor de căutare. Unele dintre
acestea vizitează doar antetul pentru a obţine informaţii. Informaţiile conţinute de acest element
nu sunt afişate de browser, însă este important să îl folosim pentru ca informaţiile conţinute în
site-ul nostru să fie accesibile. Locul elementului <META> este în antet.

Atributele etichetei <META> sunt name şi content. Folosirea lor este ceva mai
particulară, rezultând din exemplele următoare:

 pentru a specifica autorul unui document: <META name=”Author”


content=”Prenume NUME”>
 pentru a specifica titlul unui document: :<META name=”TITLE”
content=”Metode de programare”>

9
 pentru a preciza cuvintele cheie după care să fie regăsit site-ul: <META
name=”KEYWORDS” content=”backtracking, divide et impera, greedy,
programare dinamica”>
 pentru a specifica limba în care este scris site-ul: <META
name=”LANGUAGE” content=”RO”>

Există şi alte atribute ale elementului META, însă cele două deja prezentate sunt suficiente.

<STYLE> este utilizat pentru introducerea stilurilor. Acestea permit stabilirea mai
amănunţită a modului în care apar, implicit, diferitele elemente din document. Valorile se trec
între

<STYLE>...</STYLE>.

<BODY> … </BODY> - definește corpul paginii; poate conţine următoarele atribute:

 background=”fişier_imagine” permite specificarea unei imagini de fundal.


Aceasta se va repeta atât pe orizontală cât şi pe verticală, până când se acoperă
întreaga suprafaţă necesară corpului;
 bgcolor=”culoare” permite specificarea unei culori de fond;
 text=”culoare” permite specificarea culorii întregului text cuprins în pagină;
 link=”culoare” permite specificarea culorii unui link nevizitat;
 alink=”culoare” permite specificarea culorii unui link activ; un link este
considerat activ în timpul vizitării şi imediat după aceasta;
 vlink=”culoare” permite specificarea culorii unui link vizitat, care nu mai este
activ.

Etichetele pot fi scrise cu litere mari sau mici. În cazul etichetelor de tip pereche, cum
sunt cele folosite mai sus, este important să existe atât etichetele de deschidere cât și cele de
închidere.

fișierul pagina_web.html
<HTML>
<HEAD>
<TITLE> Crearea unei pagini web </TITLE>
</HEAD>
<BODY>
acesta este continutul paginii
</BODY>
</HTML>
2.2.3. Crearea paragrafelor.

Într-un document HTML scrierea conținutului paginii web folosind elementele de


formatare a paragrafelor specifice editorului de text nu are nici un efect. Altfel spus, nu pot fi
10
create paragrafe prin apăsarea tastei Enter. Pentru a crea paragrafe, se folosesc etichetele <P>…
</P>.

Exemplu:

fișierul paragraf1.html

<HTML>
<HEAD>
<TITLE> Paragraf1 </TITLE>
</HEAD>
<BODY>
Crearea unui paragraf.
Se trece pe randul urmator, pentru a se crea un paragraf nou.
</BODY>
</HTML>
fișierul paragraf2.html

<HTML>
<HEAD>
<TITLE> Paragraf2 </TITLE>
</HEAD>
<BODY>
<P>Crearea unui paragraf.</P>
<P>Se trece pe randul urmator, pentru
a se crea un paragraf nou.</P>
</BODY>
</HTML>
2.2.4. Etichete elementare pentru formatarea textului

Etichete pentru stil:


 afișarea îngroșată a textul cuprins între etichetele: <B>...</B>
 afișarea înclinată a textul cuprins între etichetele: <I>...</I>,<EM>...</EM>,
<DFN>...</DFN>, <CITE>...</CITE>.
 afișarea subliniată a textului cuprins între etichetele: <U>...</U> ,
<INS>...</INS>
 afișarea textului cuprins între etichetele <S>...</S> sau <DEL>...</DEL> tăiat
(cu o linie orizontală)
 afișarea textului cuprins între etichetele <BIG>...</BIG> mai mare decât restul
textului.
 afișarea textului cuprins între etichetele <SMALL>...</SMALL> mai mic
decât restul textului.
 afișarea textului cuprins între etichetele <SUP>...</SUP>mai sus decât linia
orizontală a textului (ca o putere).
 afișarea textului cuprins între etichetele <SUB>...</SUB> mai jos decât linia
orizontală a textului (ca un indice).

11
 afișarea textului cuprins între etichetele <TT>...</TT> monospațiat (toate
caracterele ocupă aceeași lungime).
fișierul etichete stil.html

<HTML>
<HEAD>
<TITLE>Etichete stil</TITLE>
</HEAD>
<BODY>
<P><B>Text ingrosat </B> </P>
<P><STRONG>alt text ingrosat</STRONG></P>
<P><I>text inclinat</I></P>
<P><DFN>alt text inclinat</DFN></P>
<P><U>text subliniat</U></P>
<P><INS>alt text subliniat</INS></P>
<P><S>text taiat cu o linie</S></P>
<P> text mai mare<BIG> Mai mare</BIG></P>
<P> text mai mic<SMALL> Mai mic</SMALL></P>
<P> text exponent<SUP> exponent</SUP></P>
<P> text indice <SUB> indice</SUB></P>
<P><TT>Acest text este monospatiat</TT></P>
</BODY>
</HTML>

Eticheta <BR>. În cazul folosirii etichetelor <P>… </P>, fiecare paragraf începe pe o
linie nouă iar între paragrafe se inserează un rând suplimentar. În cazul în care nu se dorește
crearea de paragrafe noi, ci afișarea conținutului unui paragraf pe rânduri separate, se
folosește eticheta <BR> la sfârșitul
fiecărui rând, astfel:

fișierul eticheta_br.html

<HTML>
<HEAD>
<TITLE> eticheta br </TITLE>
</HEAD>
<BODY>
<P>Crearea unui paragraf. <BR>
Se trece pe randul urmator, <BR>pentru a se crea un paragraf nou.</P>
</BODY>
</HTML>
Eticheta <HR> se folosește pentru inserarea
unei linii orizontale; este utilă pentru separarea
diferitelor secțiuni ale documentului.
fișierul linii orizontale.html

<HTML>
<HEAD>
<TITLE>Linii orizontale</TITLE>
</HEAD>
<BODY>
<P>
<B>Text ingrosat B</B> <BR>
<STRONG>alt text ingrosat</STRONG><BR>
<HR>
<I>text inclinat</I></P><BR>

12
<DFN>alt text inclinat</DFN><BR>
<HR>
<U>text subliniat</U><BR>
<INS>alt text subliniat</INS><BR>
<HR>
<S>text taiat cu o linie</S><BR>
<HR>
text mai mare<BIG> Mai mare</BIG><BR>
text mai mic<SMALL> Mai mic</SMALL><BR>
<HR>
text exponent<SUP> exponent</SUP><BR>
text indice <SUB> indice</SUB><BR>
<HR>
<TT>Acest text este monospatiat</TT>
</P>
</BODY>
</HTML>

Etichetele pentru stil pot fi combinate, cu condiția ca ordinea de închidere a lor să fi


fie invers decât cea de deschidere. Exemplu: pentru a afișa un text subliniat și înclinat vom
aplica etichetele astfel: <S> <I> text </I> </S>.
Etichetele pentru titluri sau antet se folosesc pentru împărțirea conținutului paginii în
mai multe secțiuni. Există șase etichete de titlu sau antet, ele variind de la <H1> ...</H1>,
care folosește fontul cel mai mare, până la <H6> ...</H6>, care folosește fontul cel mai mic;
textul scris între oricare dintre aceste etichete este afișat îngroșat.

fișierul titluri si etichete combinate.html


<HTML>
<HEAD>
<TITLE> titluri si etichete combinate
</TITLE>
</HEAD>
<BODY>
<H1> Etichete pentru formatare</H1>
<H2> etichete pentru stiluri</H2>
<H3> combinarea etichetelor </H3>
<S><I>text inclinat si subliniat</I></S> <BR>
<H2> etichete pentru titluri</H2>
</BODY>
</HTML>

2.2.5. Atributele unei etichete

Atributul unei etichete determină browser-ul să modifice modul în care afișează în mod
normal eticheta. Majoritatea etichetelor suportă atribute. Acestea trebuie scrise înaintea
închiderii parantezei unghiulare a etichetei:

<ETICHETĂ nume atribut = „valoare”> …… </ ETICHETĂ >

Cele mai folosite atribute sunt :


 atribute de aliniere
 atribute pentru stabilirea dimensiunii fonturilor sau liniilor
13
 atribute pentru stabilirea fonturilor
 atribute pentru stabilirea culorilor
Atributele de aliniere pot fi asociate etichetelor de creare a paragrafelor sau a liniilor
orizontale:
<P ALIGN=”CENTER”> textul va fi centrat </P>
Eticheta <HR> acceptă și atribute referitoare la lățimea liniei, grosimea acesteia,
alinierea ei.
<HR WIDTH=”x%” SIZE= “ 4” ALIGN=”CENTER” COLOR=”RED”>
Eticheta <FONT> … </FONT> este responsabilă, alături de atributele corespunzătoare,
de formatarea fonturilor. Atributele cel mai des folosite sunt: SIZE pentru dimensiune, FACE
pentru modificarea fontului, COLOR pentru modificarea culorii:
<FONT FACE="TIMES NEW ROMAN" COLOR="GREEN" SIZE="4"> Am folosit
o combinatie de atribute, pentru font, culoare si dimensiune </FONT>

fișierul aliniere.html
<HTML>
<HEAD>
<TITLE>Atribute aliniere</TITLE>
</HEAD>
<BODY>
<P ALIGN="CENTER"> text aliniat la mijloc</P>
<P ALIGN="LEFT"> text aliniat la
stanga</P>
<P ALIGN="RIGHT"> text aliniat la
dreapta</P>
<HR WIDTH="50%" ALIGN = "CENTER">
</BODY>
</HTML>

fișierul eticheta font.html


<HTML>
<HEAD>
<TITLE>Atributele etichetei font</TITLE>
</HEAD>
<BODY>
<P>
<FONT face="arial">Am ales fontul Arial pentru textul acesta</FONT><BR>
<FONT color="red">Am ales culoarea rosie pentru textul acesta </FONT><BR>
<FONT size="5">Am ales dimensiunea 5 pentru textul acesta; dimensiunea maxima e
7, iar cea minima e 1.</FONT><BR>
<FONT face="times new roman" color="green" size="4"> Am folosit o combinatie de
atrribute, pentru font, culoare si dimensiune!</FONT><BR>
</P>
<P>
<FONT face="arial" size="5"
color="magenta">c</FONT>
<FONT face="Comic Sans MS" size="6"
color="lime">u</FONT>

14
<FONT face="Courier new" size="5"
color="yellow">l</FONT>
<FONT face="Times new roman" size="6"
color="green">o</FONT>
<FONT face="Algerian" size="5"
color="red">a</FONT>
<FONT face="arial" size="6"
color="darkblue">r</FONT>
<FONT face="Comic Sans MS" size="5"
color="red">e</FONT>
</P>
</BODY>
</HTML>

2.3. Liste
Organizarea anumitor elemente cum sunt textele sau enunțurile se poate face cu ajutorul
listelor. Acestea din urmă aranjează și numerotează sau marchează cu diferite simboluri
elementele dorite.
Se pot crea următoarele tipuri de liste:
a. listele ordonate
b. listele neordonate
c. listele de definiții
a. Listele ordonate (sau listele numerotate)
Listele ordonate folosesc două tipuri de etichete:
 întreaga listă este încadrată de etichetele <OL> și </OL>;
 fiecare element din listă este precedat de eticheta <LI> și se termină cu
eticheta</LI>.
Implicit, listele ordonate folosesc numerotarea cu numere arabe. Se poate schimba
modul de numerotare cu alte caractere, cu ajutorul atributului TYPE, cu următoarele valori:
Valoare atribut Schemă de numerotare Exemplu
1 numere arabe standard 1,2,3
a litere mici a, b, c
A litere mari A, B, C
i cifre romane mici i, ii, iii
I cifre romane mari I, II, III
b. Listele neordonate (sau listele cu marcatori)
Listele ordonate folosesc două tipuri de etichete:

15
 întreaga listă este încadrată de etichetele <UL> și </UL>;
 fiecare element din listă este precedat de eticheta <LI> și se termină cu eticheta
</LI>.
Listele neordonate folosesc cerculețele pline ca marcatori impliciți. Se pot schimba
marcatorii cu alte caractere, cu ajutorul atributului TYPE, cu următoarele valori:
Valoare atribut Marcatori Exemplu
 element1
disc cerculețe pline  element2
 element3
o element1
circle cerculete goale o element2
o element3
 element1
square pătrățele  element2
 element3
c. Listele de definiții
Listele de definiții au fost folosite inițial pentru listele în care fiecare intrare avea
două părți: termenul propriu-zis al listei și definiția sa. Pentru a marca cele doua părți diferite
ale fiecărei intrări ale acestor liste, este nevoie de două etichete diferite:
 întreaga listă este încadrată de etichetele <DL> și </DL>;
 fiecare termen al listei este încadrat de etichetele <DT> și </DT>;
 definiția termenului este precedată de eticheta <DD> și se termină cu eticheta
</DD>.
Listele de diferite tipuri pot fi combinate, adică într-o listă de un anumit tip poate fi
introdusă Fișierul liste.html

<HTML>
<HEAD>
<TITLE>Liste</TITLE>
</HEAD>
<BODY>
exemple de liste ordonate cu
diferite tipuri de numerotare:
<OL>
<LI>liste ordonate</LI>
<LI>liste neordonate</LI>
<LI>liste de definitii</LI>
<LI>liste imbricate</LI>
</OL>
<OL type="i">
<LI>liste ordonate</LI>
<LI>liste neordonate</LI>
<LI>liste de definitii</LI>
<LI>liste imbricate</LI>
</OL>
<OL type="a">

16
<LI>liste ordonate</LI>
<LI>liste neordonate</LI>
<LI>liste de definitii</LI>
<LI>liste imbricate</LI>
</OL>

exemple de liste neordonate cu


diferiti marcatori:
<UL>
<LI>liste ordonate</LI>
<LI>liste neordonate</LI>
<LI>liste de definitii</LI>
<LI>liste imbricate</LI>
</UL>
exemple de lista imbricata
<UL type="circle">
<LI>liste ordonate</LI>
<LI>liste neordonate</LI>
<LI>liste de definitii</LI>
<LI>liste imbricate</LI>
<UL type="square">
<LI>liste ordonate</LI>
<LI>liste neordonate</LI>
<LI>liste de definitii</LI>
<LI>liste imbricate</LI>
</UL>
</UL>
exemplu lista de definitie:
<DL>
<DT>liste ordonate</DT>
<DD>lista cu elementele ordonate
prin numerotare de un anumit tip
</DD>
<DT>liste neordonate</DT>
<DD>elementele listei sunt
identificate prin semne numite
marcatori</DD>
<DT>liste imbricate</DT>
<DD>combinatie de litste de tipuri
diferite</DD>
</DL>
</BODY>
</HTML>

2.4. Legăturile (Link-urile)


Legăturile sau link-urile sunt cuvinte sau expresii speciale dintr-o pagină web care,
atunci când utilizatorul execută clic pe cuvântul sau expresia respectivă, îi dă posibilitatea de
a:
 accesa o altă pagină web;
 descărca un fișier aflat pe pagina web;
 trimite un e-mail către deținătorul paginii web;
 accesa alte părți ale paginii curente, fără a folosi barele de defilare.
Etichetele care creează legăturile sunt <A>...</A>, care sunt puțin diferite de celelalte
etichete prezentate până acum. Diferența constă în faptul că etichetele nu sunt folosite ca atare,
ci în interiorul lor se introduce URL-ul legăturii, ca valoarea a atributului HREF.
<A HREF = „URL”> textul legăturii este scris aici </A>.

17
2.4.1.Legături către alte pagini web
Ca valoare a atributului HREF se va introduce adresa URL efectivă a paginii web care
va fi folosită pentru legătură. De exemplu, pentru a crea o legătură către site-ul Ministerului
Educației, ca valoare a atributului HREF vom introduce adresa efectivă a paginii:
<A HREF = „http://www.edu.ro”> edu.ro</A>.
Este foarte importantă scrierea corectă a URL-ului paginii web (care va începe
întotdeauna cu http://). Textul cuvântului sau al expresiei care reprezintă legătura este subliniat
și colorat diferit;
fișierul legături.html
<HTML>
<HEAD>
<TITLE>Legaturi</TITLE>
</HEAD>
<BODY>
acesta este continutul paginii
<A HREF="http://www.edu.ro">edu.ro</A>
</BODY>
</HTML>

fișierul legături1.html
<HTML>
<HEAD>
<TITLE>Legaturi</TITLE>
</HEAD>
<BODY>
acesta este continutul paginii
<A HREF="http://www.edu.ro">edu.ro</A>
<P>pentru a cauta alte resurse
educationale
puteti folosi <A HREF= "http://www.google.ro">google</A>
</P>
</BODY>
</HTML>
2.4.2.Legături în aceeași pagină (ancore)
Se pot crea legături în interiorul aceleiași pagini, spre diferitele secțiuni ale acesteia.
Pentru crearea acestora, se vor folosi tot etichetele <A>...</A>, cu atribute diferite.
Se împarte pagina în secțiuni, fiecare cu un titlu, iar apoi fiecare titlu de secțiune se
definește ca o legătură (ancoră). Ca atribut al etichetei <A> /se pot folosi NAME sau ID.
Deoarece NAME nu funcționează în toate versiunile de browsere (ex Mozilla Firefox), în
continuare voi folosi atributul ID. Ca valoare a acestuia se alege numele legăturii (ancorei).
Aceste nume trebuie sa fie diferite pentru buna funcționare a legăturilor interne.
<A ID="ancora1">Titlul primei sectiuni</A>.
<A ID="ancora1">Titlul sectiunii a doua</A>.
<A ID="ancora1">Titlul sectiunii a treia</A>.
Pentru exemplificare avem fișierul ancore.html:
<HTML>
<HEAD>

18
<TITLE>Legatura catre o sectiune de pagina</TITLE>
</HEAD>
<BODY>
<BR><BR><BR><BR><BR><BR>
<CENTER><B>LEGATURI INTERNE</B></CENTER>
<BR><BR><BR><BR><BR><BR>
<A HREF="#intrebarea1">1. Ce sunt legaturile?</A><BR><BR><BR>
<A HREF="#intrebarea2">2. Ce face o legatura in pagina web?</A><BR><BR><BR>
<A HREF="#intrebarea3">3. E greu sa introduc legaturi in pagina?</A><BR><BR><BR><BR>
<HR>
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<FONT COLOR="RED" SIZE="3" FONT="Arial">
<A ID="intrebarea1">1. Ce sunt legaturile?</A></FONT><BR>
Legaturile sunt cuvinte sau expresii care permit vizitatorului unei pagini web sa
acceseze o alta pagina, sa descarce un fisier, sa trimita un e-mail, etc. In acest
sens, oferim membrilor site-ului acces GRATUIT la cursuri online interactive,
tutoriale in care poti invata sa faci aproape orice, teste online prin care iti poti
verifica cunostintele din diverse domenii, jocuri educative si referate pentru scoala.
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<FONT COLOR="GREEN" SIZE="3" FONT="Arial">
<A ID="intrebarea2">2. Ce face o legatura in pagina web?</A></FONT><BR>
Asigura navigarea usoara in cadrul aceleiasi pagini, sau intre pagini diferite.
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<FONT COLOR="LIME" SIZE="3" FONT="Arial, Times New Roman">
<A ID="intrebarea3">3. E greu sa introduc legaturi in pagina?</A></FONT><BR>
Legaturile se introduc foarte usor, cu ajutorul etichetei specifice insotita de
atribute
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
</BODY>
</HTML>

2.4.3.Crearea unei legături pentru e-mail


Nu toate legăturile trebuie sa conducă spre o pagină web sau spre o secțiune a acesteia.
Cel mai obișnuit tip de legătură non-web este legătura pentru e-mail. În cazul acestei legături,
utilizatorului care apasă pe legătura pentru e-mail i se deschide o fereastră pe care o poate folosi
pentru a trimite un mesaj pe adresa de e-mail asociată paginii web.
Acest tip de legătură mai poartă și numele de legătură mailto, datorită cuvântului mailto
din interiorul etichetei <A HREF= „mailto;Adresa de e-mail”>.
Fișierul legaturi mailto.html:
<HTML>
<HEAD>
<TITLE>Legaturi pentru e-mail</TITLE>
</HEAD>
<BODY>
acesta este continutul paginii
<A HREF = "http://www.edu.ro">edu.ro</A>
<P>pentru a cauta alte resurse educationale puteti folosi <A HREF =
"http://www.google.ro">google</A>
</P>
Mai multe detalii obtineti prin <A HREF="mailto:dana_a23@yahoo.com">trimite
mesaj</A><BR>
</BODY>
</HTML>

19
2.5. Imagini
Inserarea unei imagini într-o pagină web se face cu ajutorul etichetei <IMG SRC =
“nume_fișier” >.
Pentru formatarea imaginilor afișate într-o pagină web, se pot folosi următoarele atribute
în interiorul etichetei <IMG SRC = “nume_fișier”>. Acestea sunt:
 specificarea înălțimii și lățimii imaginii se face cu atributele: HEIGHT=“a” și
WIDTH =“b”,, unde a este înălțimea și b este lățimea imaginii exprimate în
pixeli. Se mai folosește și atributul WIDTH =“c%”, unde c% reprezintă
procentul din fereastra browser-ului care va fi ocupat de lățimea imaginii.( <IMG
SRC=“nume_fișier” HEIGHT=“a” WIDTH=“b” >; <IMG
SRC=“nume_fișier” WIDTH =“c%”>.
 alinierea textului și imaginii ( textul poate fi aliniat în raport cu imaginea) se face
cu atributul ALIGN, care poate avea următoarele valori: top – text aliniat cu
marginea superioară a imaginii; bottom – text aliniat cu marginea de jos a
imaginii; middle – text aliniat la mijlocul imaginii; left – imaginea apare în partea
stângă a ferestrei browser-ului, iar textul încadrează imaginea în dreapta; right -
imaginea apare în partea dreaptă a ferestrei browser-ului, iar textul încadrează
imaginea în stânga.( <IMG SRC = “nume_fișier” ALIGN =“top” >; <IMG
SRC = “nume_fișier” ALIGN =“left” > , etc.).
 stabilirea grosimii (în pixeli) a unui chenar în jurul imaginii: <IMG SRC = “nume_fișier”
BORDER =“x” >, unde x este grosimea chenarului
În cazul alinierii textului și imaginii pe același rând., pentru ca textul să nu atingă
imaginea se folosesc atributele: HSPACE =”h”, pentru a crea un spațiu în stânga și în dreapta
imaginii, si VSPACE =”v”, pentru a crea un spațiu (o margine) deasupra și dedesubtul imaginii.
( <IMG SRC = “nume_fișier” HSPAE=“v” VSPACE =“v” >).
Există situații când textul este situat in partea stângă sau dreaptă a imaginii inserate, cu
ajutorul atributelor ALIGN= „left” și ALIGN=”right”, și se dorește întreruperea textului și
reluarea lui pe rândul imediat următor imaginii. Acest lucru este posibil prin folosirea
etichetelor următoare:
 <BR CLEAR =”LEFT”>, care determină prin inserarea ei, trecerea pe rândul de sub imagine
când marginea din stânga imaginii este goală
 <BR CLEAR =”RIGHT”> care determină prin inserarea ei, trecerea pe rândul de sub imagine
când marginea din dreapta imaginii este goală

20
 <BR CLEAR =”ALL”> care determină prin inserarea ei, trecerea pe rândul de sub imagine
când ambele margini ale imaginii sunt goale.
Fișierul imagini2.html exemplifică o parte dintre folosirea acestor atribute ale etichetei de
inserare a imaginilor.
<HTML>
<HEAD>
<TITLE> imagini si formatare imagini </TITLE>
</HEAD>
<BODY>
inserare imagine<BR>
<IMG SRC ="flori.jpeg"><BR><BR>
inserare imagine cu latime si inaltime<BR>
<IMG SRC ="flori.jpeg" WIDTH ="150" HEIGHT="150"><BR><BR>
dimensiune in procente<BR><BR>
<IMG SRC ="FLORI.JPEG" WIDTH ="25%"><BR><BR>
aliniere sus<BR>
<IMG SRC ="FLORI.JPEG" ALIGN ="TOP" > text text text text<BR><BR>
aliniere dreapta<BR>
<IMG SRC ="FLORI.JPEG" ALIGN ="RIGHT" > text text text text<BR><BR>
aliniere mijloc<BR>
<IMG SRC ="FLORI.JPEG" ALIGN ="MIDDLE" > text text text text<BR><BR>
chenar<BR>
<IMG SRC ="FLORI.JPEG" BORDER ="10"><BR><BR>
alte tipuri de alinieri <BR>
text in stanga imaginii<BR>
<IMG SRC ="FLORI.JPEG" ALIGN ="RIGHT" > testul din stanga imaginii se intrerupe
<BR CLEAR ="RIGHT">
si continua dupa imagine
</BODY>
</HTML>

21
2.6. Tabele

Un alt element care poate fi introdus în pagina web este tabelul. Etichetele de bază
folosite pentru crearea unui tabel sunt <TABLE> și </TABLE>. Toate celelalte etichete
folosite la construirea unui tabel se încadrează între acestea.
Pentru ca marginile tabelului să fie vizibile se folosește eticheta <TABLE
BORDER=”n”>, n fiind lățimea marginii tabelului.
Adăugarea unui rând nou într-un tabel se face cu ajutorul etichetelor <TR> și </TR>
între etichetele <TABLE> și </TABLE>; acest rând nou creat poate fi împărțit în o coloane,
plasând etichetele <TD> și </TD> între etichetele <TR> și </TR>. Introducerea de date în
tabel se face simplu, scriind textul sau expresia dorită între etichetele <TD> și </TD>
corespunzătoare fiecărei celule. Între etichetele care definesc celulele, se pot plasa: texte,
etichete de formatare a textului( <B> și </B> , <I> și </I>, etc. ) , legături, liste, imagini.
Etichetele <TH> și </Th> se folosesc pentru crearea antetului tabelului. Ele au același
rol ca si <TD> și </TD> , cu mențiunea ca textul sau numerele cuprinse între ele sunt scrise
îngroșat și sunt aliniate centrat.
Titlul unui tabel se creează cu etichetele <CAPTION> </CAPTION>. Alinierea
titlurilor se face cu ajutorul atributului ALIGN, cu valorile top – sus sau bottom – jos.
Tot cu ajutorul atributului ALIGN se face alinierea conținutului celulelor. Alinierea
poate fi: orizontală, caz in care valorile pentru ALIGN pot fi feft (stânga), right (dreapta),
center (centru), sau verticală, cu următoarele valori pentru ALIGN: top (sus), middle (la
mijloc), bottom (jos).
Pentru extinderea textului pe mai multe rânduri sau coloane, etichetele TD și TH folosesc
atributele COLSPAN=n, unde n reprezintă numărul de coloane pe care se extinde textul sau
ROWSPAN=m, unde m este numărul de rânduri pe care se extinde textul
Alte atribute pentru tabele (și pentru celule) sunt:
 <TABLE BGCOLOR=„culoare”> / <TD BGCOLOR= „culoare”> pentru
stabilirea culorii de fundal;
 <TABLE WIDTH = „x%”>/ <TD WIDTH= „x%”>/ <TABLE WIDTH =”y”>/
<TD WIDTH =”y”> unde x% procentul din lățimea ferestrei sau a tabelului și y
– numărul de pixeli; pentru înălțime se folosește atributul HEIGHT;
 <TABLE CELLSPACING=” x”> stabilește ca între celulele tabelului spațierea
sa fie x;
22
 <TABLE CELLPADDING = „y”> unde y este spațiul dintre conținutul celulelor
și marginile acestora.
Fișierul tabele.html
<HTML>
<HEAD>
<TITLE> Tabele</TITLE>
<BODY>
<TABLE BORDER="2" CELLSPACING ="10" WIDTH ="60%">
<CAPTION ALIGN="top"> Tabel exemplu </CAPTION>
<TR BGCOLOR="yellow">
<TD ALIGN ="left" WIDTH ="33%"> LUNI</TD>
<TD ALIGN ="center" WIDTH ="33%"> MARTI</TD>
<TD ALIGN ="right" WIDTH ="33%"> JOI</TD>
</TR>
<TR BGCOLOR="red">
<TD COLSPAN ="3" ALIGN ="center"> ore libere</TD>
</TR>
<TR BGCOLOR="lime">
<TD ALIGN ="left"
HEIGHT="255"> 4</TD>
<TD ALIGN ="left"
HEIGHT="255"> 6</TD>
<TD ALIGN ="center"
HEIGHT="255" > 3</TD>
</TR>
</TABLE>
</BODY>
</HTML>

2.7. Formulare

Se poate spune că un formular este echivalentul unei casete de dialog într-o pagină web.
Scopul lui este acela de a colecta informații diverse de la utilizator, de a le transmite spre
prelucrare unui server web și de a adăuga elemente de interactivitate paginii.
Formularele pot fi create cu etichetele <FORM> și </FORM>; Eticheta <FORM>
include întotdeauna câteva atribute suplimentare, care spun serverului web cum să proceseze
formularul. Formatul general este:
< FORM ACTION =”url” METHOD = „metoda”> … </ FORM>
Atributul ACTION spune browser-ului unde se trimit datele formularului, iar
METHOD spune cum să trimită datele din formular la adresa URL specificată prin atributul
ACTION. Există doua valori ale atributului METHOD: GET și POST (cea mai obișnuită este
POST).
Un formular poate să conțină o combinație e două sau mai multe dintre următoarele
elemente:
a) butoanele SUBMIT și RESET

23
b) casete text pe un rând sau pe mai multe rânduri
c) casete de validare
d) butoane radio
e) liste de selecție
a) Butoanele Submit și Reset - butonul Submit validează trimiterea informațiilor
din formular, iar butonul Reset este un buton de anulare, care șterge toate datele
introduse în formular; se creează cu ajutorul etichetei <INPUT>. Atributul
TYPE al acesteia va stabili tipul butonului. TYPE poate avea valorile submit
pentru buton de validare și reset pentru buton de anulare. Atributul VALUE
stabilește textul care apare inscripționat pe butonEticheta <INPUT> se plasează
în interiorul etichetelor<FORM> și </FORM>.
< FORM ACTION =”url” METHOD = „post”>
<INPUT TYPE=”submit” VALUE =” OK”>
</ FORM>
b) Casetele text se introduce tot cu eticheta <INPUT>. Ca atribute se folosesc
TYPE=„text” care indică tipul casetei și NAME =”nume câmp”, iar mume câmp
este numele asociat câmpului și care are rolul de a ghida utilizatorul în
completarea formularului. Mărimea casetei se stabilește cu atributul SIZE, iar
limitarea textului introdus cu atributul MAXLENGHT;
Caseta text pe mai multe rânduri se face cu ajutorul etichetelor <TEXTAREA>
</TEXTAREA>; eticheta <TEXTAREA> va avea următoarele atribute:
NAME – numele casetei, ROWS – numărul total de rânduri afișate, COLS –
numărul total de coloane, WRAP – determină browser-ul să încadreze textul pe
rândul următor când ajunge la marginea dreaptă a casetei;
c) Casetele de validare se creează cu eticheta <INPUT> cu următoarele atribute:
TYPE= „checkbox”, NAME=”nume câmp” și CHECKED care poate avea
valorarea on (pentru validare implicită). Valoarea ”nume câmp” este unică pentru
fiecare câmp.
d) Butoanele radio se introduc într-o manieră asemănătoare, cu
eticheta <INPUT> cu următoarele atribute: TYPE=„radio”, NAME=”nume
câmp” și VALUE =„valoare”; la „nume câmp” se va trece același nume pentru
toate butoanele pe care dorim sa le grupăm. “Valoare” este un text unic, care
specifică valoarea opțiunii, atunci când este selectată. Opțional se poate folosi

24
atributul CHECKED la unul dintre butoane, pentru ca browser-ul să activeze în
mod implicit opțiunea respectivă.
e) Listele de selecție se creează cu etichetele <SELECT> </SELECT>; eticheta
<SELECT> va fi însoțită de următoarele atribute: NAME=”nume câmp”,
SIZE=” număr elemente” (în cazul în care atributul SIZE se exclude, lista
obținută va fi o listă derulantă)
În interiorul celor două etichete <SELECT> </SELECT> se găsesc etichetele
<OPTION> </OPTION>, folosite pentru a crea fiecare element al listei.
<SELECT NAME = „lista1” SIZE =”3”>
<OPTION>primul element </OPTION>
<OPTION> al doilea element </OPTION>
<OPTION> al treilea element </OPTION>,
</SELECT>
Fișierul formular.html exemplifică construirea unui formular vu mai multe elemente

<HTML>
<HEAD>
<TITLE> formulare</TITLE>
</HEAD>
<BODY>
Exemple de formulare
<HR WIDTH="4" COLOR="red">
<FORM ACTION ="pagina_web" METHOD="post">
Scrieti prenumele <INPUT TYPE="text" NAME="prenume" SIZE="25"><BR><BR>
Scrieti numele <INPUT TYPE="text" NAME="nume" SIZE="25"><BR><BR>
Care este mancarea preferata?<BR>
Alegeti una sau mai multe optiuni din cele de mai jos:<BR>
<INPUT TYPE="checkbox" NAME="fastfood"> pizza<BR>
<INPUT TYPE="checkbox" NAME="garnitura" CHECKED> cartofi prajiti<BR>
<INPUT TYPE="checkbox" NAME="dulciuri"> tort de ciocolata<BR>
<INPUT TYPE="checkbox" NAME="supa"> ciorba de fasole<BR>
<INPUT TYPE="checkbox" NAME="fel principal"> friptura la tava<BR>
Care este ora la care luati pranzul?<BR>
<INPUT TYPE="radio" NAME="orapranz" VALUE="12"> 12<BR>
<INPUT TYPE="radio" NAME="orapranz" VALUE="13"> 13<BR>
<INPUT TYPE="radio" NAME="orapranz" VALUE="15"> 15<BR>
<INPUT TYPE="radio" NAME="orapranz" VALUE="nu am ora fixa"> nu am ora fixa<BR>
Alegeti o optiune pentru locul unde mancati<BR>
<SELECT NAME="loc" SIZE="4">
<OPTION>acasa</OPTION>
<OPTION>in oras</OPTION>
<OPTION>la prieteni</OPTION>
<OPTION>oriunde mi se ofera</OPTION>
</SELECT><BR><BR>
Daca aveti comentarii, le puteti scrie mai jos:<BR>
<TEXTAREA NAME="comentarii" ROWS="10" COLS="50" WRAP>
</TEXTAREA><BR><BR>
<INPUT TYPE="submit" VALUE="TRIMITE">
<INPUT TYPE="reset" VALUE="ANULEAZA">
</FORM>
<?BODY>
</HTML>

25
2.8. Cadre
Cadrele sunt acele elemente cu ajutorul cărora se poate împărți pagina în secțiuni
independente.
Etichetele cu ajutorul cărora se creează cadrele sunt <FRAMESET> și
</FRAMESET>, în interiorul cărora se va folosi câte o etichetă <FRAME> pentru fiecare
cadru care va fi creat.
Cadrele pot împărți pagina pe orizontală sau pe verticală De asemenea, cadrele nou create
pot fi împărțite fiecare, la rândul lor, în alte cadre.
Pentru împărțirea paginii în cadre orizontale se folosește, pentru eticheta
<FRAMESET>, atributul ROWS= „mărime1, mărime2….” , unde mărime1, mărime2… sunt
numere care spun browser-ului ce dimensiune să aloce fiecărui cadru. Dimensiunile cadrelor
pot fi exprimate și în procente.
Pentru împărțirea în cadre verticale, atributul ROWS se înlocuiește cu COLS.
În cazul folosirii cadrelor la construirea paginii web, se vor folosi două tipuri de pagini
web:
 pagini de conținut, adică pagini web obișnuite;
 pagini de configurare a cadrelor.
Pagina de configurare a cadrelor nu are o secțiune BODY, este acea pagină în care se
introduc etichetele de creare a cadrelor; de fapt, orice alte etichete ar fi scrise în această pagină,
ele vor fi ignorate de browser, care va interpreta doar etichetele referitoare la cadre.

26
Pentru afișarea de conținut în diferitele secțiuni ale unei pagini web, fiecare etichetă
<FRAME> care definește un cadru, va avea un atribut SRC, care, prin valoarea lui, determină
pagina web care va fi afișată în cadrul respectiv: <FRAME SRC=”url”> (url reprezint[ adresa
paginii)
Ca o concluzie, pentru o pagină web împărțită prin cadre, trebuie să se construiască un
număr de pagini egal cu numărul de cadre din pagina inițială plus o pagină de configurare a
cadrelor.
Fișierul configurare.html:
<HTML>
<HEAD>
<TITLE>pagina cu cadre</TITLE>
<HEAD>
<FRAMESET ROWS="40%, 10%, 60%">
<FRAME SRC="antet.html" NAME="sus">
<FRAME SRC="continut.html" NAME="mijloc">
<FRAME SRC="continut1.html" NAME="jos">
</FRAMESET>
</HTML>
Fișierul antet.html:
<HTML>
<HEAD>
<TITLE>pagina cu cadre</TITLE>
<HEAD>
<BODY>
<P ALIGN="center" COLOR="red" SIZE="9">
Acesta este textul alisat in cadrul
superior</P>
<A HREF="formulare.html" TARGET="jos">
formulare</A><BR>
<A HREF="imagine_flori.html" TARGET="jos">
imagine</A><BR>
</BODY>
</HTML>
Fișierul continut.html:
<HTML>
<HEAD>
<TITLE> continut</TITLE>
</HEAD>
<BODY>
<P ALIGN="center" SIZE="25">CONTINUTUL SE SCHIMBA IN FUNCTIE DE LEGATURA DIN
ANTET!</P>
</BODY>
</HTML>
Fișierul continut1.html
<HTML>
<HEAD>
<TITLE> continut</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>

27
2.9..CSS (Cascading Style Sheets).

Pentru a putea gestiona cât mai eficient stilurile, a fost pus la dispoziţia programatorilor
de pagini web un limbaj prin care se poate realiza acest lucru. Acest limbaj este cunoscut sub
numele de CSS (actualmente, vorbim de versiunea CSS2). Legătura dintre HTML şi CSS se
realizează prin intermediul tag-ului <STYLE>...</STYLE> care trebuie aşezat între <HEAD>
şi </HEAD>.
Folosind aceşti identificatori în cadrul unui <STYLE>...</STYLE>, putem face ca
toate elementele de acelaşi fel din cadrul unui document să arate la fel. Astfel suntem scutiţi de
a scrie o grămadă de cod care s-ar repeta în cazul fiecărui element de acelaşi fel.
STYLE
<HEAD>
<TITLE>Utilizare STYLE in HEAD</TITLE>
<STYLE>
P {
background:yellow;
color:blue;
font-family:"Comic Sans MS";
font-size:14pt;
}
HR {
text-align:left; width:50%; height:5px; color:red;
}

28
3. LIMBAJUL PHP

3.1. Noțiuni de bază

3.1.1. Noțiuni elementare de sintaxă PHP: etichete, instrucțiuni, afișarea textului,


comentarii
Există trei diferențe principale între un document standard HTML și un document PHP:
 scripurile PHP trebuie salvate cu extensia .php;
 codul PHP se delimitează prin etichetele <?php și ?>;
 scripturile PHP trebuie rulate pe un server Web în care este instalat limbajul PHP.
Codul PHP este format din instrucțiuni, comenzi date către interpretor, în urma cărora
se execută ceva. Cel mai frecvent, PHP este folosit pentru a trimite browser-ului informații sub
formă de text simplu și etichete HTML. Pentru această operație, se vor folosi instrucțiunile de
afișare (funcțiile print( ) , echo( ) și printif( ); în PHP funcțiile sunt urmate de paranteze, între
care se scriu argumentele funcției, sau în locul parantezelor se pot folosi ghilimelele). Funcțiile
echo și print sunt echivalente, diferența dintre ele fiind aceea că echo afișează mai multe date,
fiecare puse între ghilimele și separate prin virgulă, iar print afișează doar o singură dată.
Fișierul afisare4.php
<?php
echo"acesta este un exemplu";
print"al";
print "treilea";
print"exemplu";
?>
Se observă că textul este afișat pe un singur rând, iar singurele spații sunt cele trecute
între ghilimelele de la prima funcție echo. Acest lucru se întâmplă deoarece codul PHP afișează
doar caracterele care i-au fost indicate. Pentru a afișa textul „altreileaexemplu” pe un rând nou
se folosește un caracter separat, neprintabil, dar care controlează modul de afișare pe ecran.
Acesta este caracterul \n. Pentru a adăuga spații intre cuvinte, acestea se introduc în interiorul
ghilimelelor.
Fișierul afisare5.php:
<?php
echo"acesta este un exemplu";
print"\n";
print"al";
print " treilea ";
print" exemplu ";
?>

29
Prin folosirea lui \n, PHP transmite browser-ului textul afișat pe două rânduri, dar,
deoarece pagina este interpretată ca HTML, browser-ul ignoră acest caracter. Pentru a afișa
textul pe două rânduri, afișăm o etichetă <br> după primul rând, astfel:
Fișierul afisare6.php:
<?php
echo"acesta este un exemplu";
print"\n";
print"<br>";
print"al";
print " treilea ";
print" exemplu ";
?>
Se observă din exemplele de mai sus ca fiecare instrucțiune trebuie terminată cu
simbolul ;, lipsa acestuia generând o eroare.
Comentariile sunt porțiuni de cod care nu se execută și sunt folosite pentru explicații.
Comentariile nu afectează execuția unui script și pot fi șterse din cod fără nici un efect. Ele se
introduc cu următoarele simboluri: //, # sau /* …..*/, ultimul folosindu-se atunci când
comentariul se întinde pe mai multe rânduri.
Fișierul afisare7.php
<?php
echo"acesta este un exemplu";
//acesta este un comentariu
print"\n";
#si acesta la fel
/* am introdus eticheta <br> pentru
ca sa afisez textul
pe 2 randuri*/
print"<br>";
print"al";
print " treilea ";
print" exemplu ";
?>
3.1.2.Tipuri de variabile
Programele de calculator manipulează datele, care reprezintă informații. Programele
PHP folosesc doua categorii principale de date: numere și șiruri. Aceste două mari categorii de
date: numere si șiruri, formează opt tipuri principale de variabile : Boolean, Integer, Float,
String, Array, Object, Resource, Null. În mod normal tipul variabilelor nu este specificat
explicit; acesta va fi evaluat de către interpretorul PHP la momentul executării scriptului).
1. Tipul boolean
Variabilele de tipul boolean pot lua doar doua valori : FALSE sau TRUE
2. Tipul integer
Variabilele integer reprezintă numerele întregi, ele pot fi specificate în format zecimal,
hexazecimal sau octal. Numerele întregi reprezintă toate numerele fără parte fracționară
pozitive și negative, plus zero. (Exemple: 125, 3, -27, 0.)

30
3. Tipul float
Reprezintă variabile de tip real [numerele cu virgulă. Exemplu 27.51
4. Tipul string
Reprezintă o înșiruire de caractere, fiecare caracter este memorat pe 1 byte; setul de
caractere este limitat la 256 valori distincte. Dimensiunea șirurilor poate fi oricât de mare.
Șirurile pot conține orice caracter. Ca atare, șirurile sunt utile pentru stocarea datelor care nu
pot fi calculate, precum nume, fraze si adrese.
5. Tipul array
Reprezintă o matrice (un vector de valori); în matrice, fiecărui element i se asociază
cheie.
6. Tipul object
Reprezintă de fapt instanța unei clase declarate în PHP. O clasă este o structură care
conține variabile membru și funcții membru.
7. Tipul resource
Este un tip special de variabilă care păstrează o legătură spre resurse externe.
8. Tipul NULL
Reprezintă variabilele care nu au încă atribuită o valoare. O variabilă se considera a avea
valoarea Null dacă:
 este setată explicit prin atribuirea valorii NULL
 nu a fost asignată încă o valoare acestei variabile
 variabila a fost ștearsă prin funcția unset();
Tipul unei variabile poate fi aflat prin folosirea funcției gettype(), care va returna un sir
ce conține tipul variabilei cercetate.
3.1.3.Variabile. Constante. Expresii. Operatori
O variabilă poate fi cel mai bine asemănată cu un container de date. După stocarea
datelor într-o variabilă, adică după atribuirea unei valori pentru o variabilă, aceasta poate fi
modificată, transmisă prin poșta electronică, afișată în browser-ul Web, stocată într-o bază de
date, etc.
Variabilele din PHP au un caracter flexibil, aceasta însemnând că se pot insera date într-
o variabilă, se pot regăsi datele din variabile, se pot plasa date noi în variabila respectivă.
Totodată, variabilele PHP au un caracter temporar, în sensul că există – adică au o valoare –
numai pe durata unui script.

31
Variabilele se deosebesc de celelalte elemente ale limbajului prin caracterul dolar $,
careva fi poziționat înaintea numelui variabilei. Numele variabilei trebuie să înceapă cu o literă
(A-Z sau a-z), sau un caracter de subliniere_ . Numele nu poate începe cu o cifră.
Declararea variabilelor se realizează în același timp cu inițializarea lor (cu atribuirea
unei valori de început). Atribuirea unei valori se realizează cu ajutorul instrucțiunii de atribuire
ce are forma <nume variabilă> = <valoare>;
De asemenea, se poate atribui valoarea unei variabile către o alta variabila, prin scrierea
unei instrucțiuni de atribuire astfel:
$var1 = $var;
caz în care valoarea variabilei $var devine valoarea variabilei $var1. (orice modificare făcută
asupra lui $var se va propaga automat si asupra variabilei $var1.
Exemple de declarare de variabile:
variabile numerice
$var = 1;
$var1 = 0;
variabile text (stringuri)
$text = "luni";
$text1 = 'joi';
variabile logice (boolean)
$a = true;
$b = false;
matrici (vectori)
$matrice_goală = array();
$matrice1 = array( 10,20,45,13 );
$matrice_asociativă = array(
'luni' => 'ziua1',
'marti' => 'ziua2',
'miercuri' => 'ziua3'
);
O matrice asociativă se diferențiază de una simplă prin faptul ca are chei alfanumerice
(cuvinte), în timp ce cheile matricei simple sunt numere.
PHP face deosebire între literele mici și mari din numele variabilelor, astfel ca $var1 și
$Var1 sunt două variabile diferite.
Variabilele pot fi șterse astfel:

32
unset ($variabila);
$variabila =null;
Variabilele se pot afișa, după atribuirea de valori, cu oricare dintre instrucțiunile de
afișare print sau echo:
$var1=”salut”
$var3=”albastru”
Pentru afișare avem:
print $var1
print $var3
echo $var1, $var3
Există două instrucțiuni de afișare detaliată a conținutului variabilelor: print_r()
(afișează componentele variabilei, se folosește în cazul vectorilor), și var_dump() (specifică
tipul de dată conținut de variabilă și lungimea acesteia; se poate folosi pentru orice tip de
variabilă)
Fișierul afisare_var.php
<?php
$var1 = 123;
print "\n folosesc print_r: ";
print_r($var1);
print " <br> \n folosesc var_dump: ";
var_dump($var1);
$var2 = "test";
print " <br> \n folosesc print_r: ";
print_r($var2);
print "<br> \n folosesc var_dump: ";
var_dump($var2);
$var3 = array('aaa', 'bbb', 'ccc');
print "<br> \n folosesc print_r: ";
print_r($var3);
print " <br> \n folosesc var_dump: ";
var_dump($var3);
?>
Limbajul PHP permite referirea la numele unei variabile printr-o altă variabilă, operație
numită dublă indirectare. Concret, aceasta înseamnă că numele primei variabile îi este atribuit
variabilei a doua, care va avea aceeași valoare cu prima variabilă
Exemplu:
$variabila_a =”albastru”
$variabila_b= “variabila_a”
La executarea instrucțiunii print $$variabila_b se va afișa în browser valoarea
variabilei variabila_a, albastru.( instrucțiunea poate fi scrisă: print${variabila_b}
Se poate verifica dacă o variabilă este definită cu ajutorul a două funcții:
 isset() – verifică dacă variabila a fost definită

33
 empty() – verifică dacă a fost definită variabila și dacă are o valoare considerată
vidă
fișierul verificare_definire.php
Un alt aspect legat de variabile este acela al folosirii operatorului {}. Acesta se folosește
atunci când anumite variabile trebuie procesate înaintea altora sau înaintea altor instrucțiuni.
Fișierul acolade.php
<?php
$ziua = array(
'1'=>'luni',
'2'=>'joi',
'3'=>'duninica'
);
print"{$ziua ['3']} este zi libera!";
?>
În PHP există și variabile numite "variabile predefinite" care rezidă în nucleul
PHP, sunt alocate automat de către modulul PHP, și sunt accesibile în program.
$GLOBALS – conține referințe la variabilele globale disponibile în scriptul curent.
$_SERVER – variabile definite de server sau relative la contextul în care se execută
scriptul curent
$_GET – variabile furnizate scriptului prin adresa URL
$_POST – variabile furnizate scriptului prin metoda HTTP POST (in general prin
formulare)
$_COOKIE – variabile furnizate scriptului prin HTTP cookie
$_FILES – furnizează scriptului fișierele uploadate
$_SESSION – variabile care sunt înregistrate în sesiunea scriptului
Variabilele de mediu sunt folosite pentru stocarea opțiunilor și a parametrilor care
personalizează mediul de aplicație. Aplicațiile pot obține accesul la valorile variabilelor de
mediu și în funcție de acestea își pot ajusta comportamentul.
DOCUMENT_ROOT Calea care constituie rădăcina arborelui catalogului cu
documente al serverului Web.
GATEWAY_INTERFACE Versiune a protocolului CGI folosit de serverul web
HTTP_ACCEPT Conținutul antetului HTTP Accept
HTTP_ACCEPT_CHARSET Conținutul antetului HTTP Accept-Charset:, care
specifică seturile de caractere înțelese de client.
HTTP_ACCEPT_ENCODING Conținutul antetului HTTP Accept-Encoding:, care
specifică tipurile de conținuturi înțelese de client.
HTTP_ACCEPT_LANGUAGE Conținutul antetului HTTP Accept-Language:,
care specifică limbajele preferate de client.

34
HTTP_CONNECTION Conținutul antetului HTTP Connection:, care indică opțiunile
solicitate de client.
HTTP_HOST Conținutul antetului HTTP Host:, care indică numele de gazdă, folosit
de client la prezentarea cererii.
HTTP_REFERER Adresa URL a paginii Web care a trimis browserul clientului la
pagina curentă.
HTTP_USER_AGENT Conținutul antetului HTTP User-Agent, care indica
browserului clientul și versiunea acestuia.
PATH Calea de execuție asociată cu mediul serverului.
QUERY_STRING Șirul de interogare, dacă există, care a însoțit cererea.
REMOTE_ADDR Adresa IP a clientului
REMOTE_HOST Numele de gazdă al clientului.
REMOTE_PORT Adresa portului clientului de unde a pornit cererea.
REQUEST_METHOD Metoda de cerere HTTP folosită; de exemplu, GET, POST,
PUT sau HEAD
REQUEST_URI URI folosit pentru accesul la pagina curentă. URI este alcătuit dintr-
un URL și un șir opțional de interogare.
SCRIPT_FILENAME Numele de cale absolut al scriptului curent.
SCRIPT_NAME Adresa URL a scriptului curent.
SERVER_ADMIN Adresa de e-mail a administratorului serverului Web.
SERVER_HOST Numele de gazdă asociat serverului Web care prelucrează cererea.
SERVER_PORT Port folosit de serverul Web pentru comunicații.
SERVER_PROTOCOL Numele și versiunea protocolului prin intermediul căruia s-a
executat cererea
SERVER_SIGNATURE Șirul care identifică versiunea serverului Web și numele de
gazda folosit pentru prelucrarea cererii.
SERVER_SOFTWARE Șirul care identifică programul server Web și versiunea
acestuia.
Șirurile de caractere sunt bucăți de text bine delimitate, folosite în diferite scopuri de către
PHP. Delimitarea lor se poate face prin:
 ghilimele duble: șirurile astfel delimitate au particularitatea că permit interpretarea
variabilelor și caracterelor speciale din interiorul lor; variabilele din interiorul șirului
sunt înlocuite cu valoarea lor, iar caracterele speciale pot fi afișate prin folosirea

35
caracterului \ (backslash) înaintea caracterului special. Caracterul backslash se mai
numește și escape character.
 ghilimele simple: acestea nu permit nici interpretarea variabilelor nici afișarea
caracterelor speciale din interiorul șirului.
 Notația specială <<<: șirurile marcate astfel se comportă la afișare ca și cele delimitate
de ghilimelele duble.
Constantele sunt acele entități care, pe parcursul execuției unui program sau a unei
instrucțiuni, nu-și modifică valoarea. Ele se definesc folosind funcția define(), cu următoarea
sintaxă: define(‘nume_constanta’,’valoare_constanta’ ).
Exemple: define (’ PRENUME’, ‚Ana’)
define ( ’VARSTA’, ’25’)
Când sunt folosite constantele, se scrie doar numele acestora, fără ghilimele.
Instrucțiunea echo ” ma numesc ”, PRENUME, “ si am ”, VARSTA, “ DE ANI ” ; va afișa: ma
numesc Ana si am 25 de ani.
Expresii
În PHP, orice poate fi evaluat la o valoare este considerat expresie. Cele mai simple
expresie sunt șirurile de caractere sau numerele, care au o valoare, iar aceasta din urmă poate fi
folosită în operații.
Expresiile pot fi considerate fundamentul limbajului PHP. Ele pot fi folosite în atribuiri,
ca parametrii ai funcțiilor sau pentru specificarea condițiilor din structurile de control.
Operatorii - sunt simboluri specifice care realizează o acțiune specifică în cadrul unei
expresii. Sunt elemente de limbaj care se aplică expresiilor și determină apariția unor expresii
noi. Dacă expresiile componente au tipuri diferite, operatorii determină conversia datelor
componente. Regula de conversie diferă de la un tip de date la altul și de la un operator la altul.
Operatorii disponibili în PHP:
Operatori aritmetici
 adunare $a + $b
 scădere $a - $b
 înmulțire $a * $b
 împărțire $a / $b
 restul împărțirii lui $a la $b $a % $a
Operatori de comparare
 egal $a = = $b
 identic $a = = = $b ($a și $b au aceeași valoare și același tip)

36
 diferit
 $a != $b
 $a <> $b
 ne-identic $a !== $b
 strict mai mare $a > $b
 strict mai mic $a < $b
 mai mic sau egal $a <= $b // mai mic sau egal
 mai mare sau egal $a >= $b
Operatorul ternar ? este un operator care are 3 termeni și a cărui evaluare returnează o
valoare. Sintaxa lui este următoarea:
(condiție ? adevărat : fals )
unde adevărat, fals și condiție nu sunt instrucțiuni ci expresii (variabile, constante, ‚iruri de
caractere, etc) iar operatorul returnează o valoare și nu o variabilă. Operatorul verifică dacă este
adevărată condiție, si afișează una dintre cele două expresii (adevărat sau fals)
Exemplu: instrucțiunea print ( 1 = = 2 ? 'egal' : 'ne-egal' ); va afișa ne-egal expresia ne-egal în
urma comparării celor două valori, 1 și 2.
Operatori de incrementare/decrementare
Incrementare înseamnă creșterea valorii, de obicei cu o unitate, iar decrementarea este
operația inversă. În PHP incrementarea/decrementarea se pot face cu ajutorul unor operatori
specifici:
++ operator de incrementare ($a=1; $a++=$a +1 =2)
-- operator de decrementare ($a=5; $a--=$a -1=4)
Acaști operatori pot fi scriși după sau înainte de variabilă. Diferența este următoarea: când
operatorul apare înainte de variabilă, efectuează prima dată incrementarea/decrementarea și
apoi returnează valoarea iar când se poziționează după variabilă, returnează valoarea inițială și
apoi se crește cu o unitate
Operatori pentru șiruri de caractere
În aceasta categorie sunt incluși 2 operatori ".=" si ".". Punctul (.) este operatorul de
concatenare (legare) stringuri.
Instrucțiunea: print "astazi " . " este " . "joi."; afișează astazi este joi
Alți operatori
Operatori logici:
 și(and) &&
 sau (or) ||

37
 nu (not) !
Operatori pentru vectori: asemănători celor de comparare, doar că se aplica vectorilor,
operatorul de uniune (+) leagă doi sau mai mulți vectori
Operații cu șiruri.
 determinarea lungimii șirului: strlen( sir )
 căutarea unei secvențe într-un șir: strstr( sir, ‘car’), strisir(sir,‘car’).
 afișarea unui subșir: substr(sir, start) și substr(sir, start, lung) afișează toate
subșirurile de la indexul start/ afișează subșirurile care încep de la indexul start
cu o lungime determinată de parametrul lung.
 transformarea șirului
înlocuirea unor secvențe
str_replace( "secv1", "secv2", sir);
schimb tipul literelor (mari, mici)
strtoupper( sir );
strtolower( sir );
ucfirst( sir ); prima literă din șir mare
ucwords( sir ); prima literă a fiecărui cuvânt din șir mare
 împărțirea șirului
explode('sep', "sir") - creaza o matrice cu părțile din "sir" separate prin "sep".
Pentru a trece de la o matrice la un șir se folosește funcția implode() sau join()
 concatenarea șirului se face cu operatorul .
 compararea șirurilor: strcasecmp(sir1, sir2); strncasecmp(sir1, sir2, n);
strcmp(sir1, sir2); strncmp(sir1, sir2, n) –primele două funcții compară șirurile
fără a face diferența între litere mari și mici; următoarele două compară șiruri
ținând cont de diferența dintre litere mari și mici; n reprezintă nr de caractere
care vor fi comparate
Acestea sunt o parte dintre cele mai folosite funcții utilizate pentru prelucrarea șirurilor.

3.2. Structuri de control


Într-un limbaj de programare, instrucțiunile se execută una după alta, succesiv. Există
însă anumite situații care instrucțiunile pot modifica ordinea de execuție a liniilor de cod. Aceste
situații sunt descrise în structurile de control.
În PHP avem următoarele structuri de control: structura alternativă(if și variantele acesteia),
structura de selecție multiplă (svitch), structuri repetitive (for, while, do…while), structuri de

38
întrerupere a fluxului (breack, continue, return), structura de salt necondiționat (goto), directive
de includere (include, require) și directiva declare.
3.2.1.Structuri condiționale
3.2.1.1 Instrucțiunile if, if…else
Este folosită pentru a executa o secvență de cod în funcție de valoarea de adevăr a unei
condiții. Sintaxa instrucțiunii este:
if (condiție){ instrucțiune1;
if (condiție) instrucțiune;
instrucțiune2;
}
Instrucțiunea care urmează după condiție poate fi o instrucțiune simplă sau un bloc de
instrucțiuni. În cazul unui bloc de instrucțiuni, acestea se vor pune obligatoriu între{ }; de
asemenea, este necesar ca fiecare instrucțiune să se termine cu simbolul;.
Fișierul if1.php
<?php
if(2<3)
print "3 este mai mare!";
?>

Există și cazul în care trebuie specificată o instrucțiune care se execută atunci când
condiția nu este adevărată; atunci se folosește instrucțiunea if – else, cu următoarea sintaxă:
if (condiție) {
instrucțiune1;
if (condiție)
instrucțiune2;
instrucțiune1;
}
else
else{
instrucțiune2;
instrucțiune3;
instrucțiune4;
}
Fișierul if_else.php:
<?php
$a=4
$b=15
if($a>$b)
print "$a este mai mare!";
else
print "$b este mai mare";
?>
3.2.1.2.Instrucțiunea de selecție multiplă switch încearcă să stabilească o identitate între
valoarea variabilei sale și valoarea asociată unei instrucțiuni case. Se vor executa instrucțiunile
asociate primei instrucțiuni "case" pentru care identitatea respectivă este valabilă.
Dacă valoarea variabilei din instrucțiunea switch nu corespunde nici uneia din valorile
asociate instrucțiunilor case, se vor executa instrucțiunile asociate instrucțiunii default, dacă
exista o asemenea instrucțiune (nu este obligatorie).

39
Fiecare instrucțiune case din cadrul unei instrucțiuni switch poate să se încheie cu o
instrucțiune break; instrucțiunea break determină încheierea execuției instrucțiunii switch, sare
peste case-urile rămase și se execută codurile care există după switch.
Sintaxa instrucțiunii este:
switch( $variabilă) {
case „valoare1”:
instrucțiuni1;
break;
case „valoare2”:
instrucțiuni2;
break;
default:
instrucțiune3;
}
Fișier switch.php:
<?php
$numar=59;
switch($numar) {
case(11):
echo "numarul ", $numar, " este mic";
break;
case(59):
echo "numarul ", $numar, " este mediu";
break;
case(312):
echo "numarul ", $numar, " este mare";
break;
default:
echo "Acesta nu este un cod valabil";
}
?>
3.2.2.Structuri repetitive
3.2.2.1.Instrucțiunea for-este proiectată pentru a un anumite instrucțiuni pentru un
număr determinat de iterații. Sintaxa instrucțiunii este:
for (expresie inițială; condiție; expresie de închidere) { instrucțiune;
}
Expresia inițială se execută o singură dată, la prima apelare a ciclului. Apoi se folosește
condiția pentru a se determina dacă instrucțiunile se vor executa sau nu. Expresia de închidere
se execută de fiecare dată când condiția are valoarea adevărat, dar numai după ce instrucțiunile
au fost executate
Fișier for.php:
<?php
$suma = 0;
for ($n=1; $n<=3; $n++) {
$suma += $n;
echo "<br> Suma= $suma!";
}
?>

40
3.2.2.2. Instrucțiunea while – execută o instrucțiune sau un bloc de instrucțiuni atâta
timp cât o condiție e adevărată.. Ca și instrucțiunea for, verifică valoarea condiției înainte de
fiecare iterație. Sintaxa ei este:
while( condiție) {instrucțiune1;
Instrucțiune2;
}
Fișierul while.php:
<?php
$n = 0;
$suma = 0;
while ($n <= 10) {
$suma = $suma +$n;
$n++;
}
echo "Suma este $suma";
?>
Principala diferență între instrucțiunea for și instrucțiunea while constă în faptul că
aceasta di urmă nu include un sistem de stabilire a condițiilor inițiale sau a expresiei de
închidere.
3.2.2.3 Instrucțiunea do…while garantează că instrucțiunile se execută cel puțin o dată,
înainte de verificarea condiției. Apoi, in funcție de valoarea de adevăr a condiției, instrucțiunile
se execută în continuare sau nu se mai execută. Sintaxa:
do { instrucțiuni;
}
while(condiție;)
fișierul do_while.php
<?php
$n = 0;
$suma = 0;
do {
$suma = $suma +$n;
$n++;
} while ($n <= 10);

echo "Suma= $suma";


?>
PHP include numeroase construcții de limbaj care nu sunt funcții, dar care au un anumit
rol în executarea scripturilor. Acestea sunt break, exit, die și contiunue. Break determină
ieșirea din structura curentă. Continue este similară cu break, aceasta încheie iterația curentă a
unui ciclu, eventualele instrucțiuni din ciclu nu vor fi executate, iar starea ciclului va fi verificată
din nou, pentru a se vedea dacă acesta trebuie continuat. Exit și die sunt versiuni mai puternice
ale lui break; în loc să părăsească structura curentă, cele două construcții determină sistarea
execuției scriptului PHP, liniile de program care urmează după o construcție exit sau die nu
sunt niciodată executate.

41
3.3. Formulare
Formularele sunt întâlnite în orice aplicație web (paginile de login, contact sau
înregistrare) și sunt esențiale în folosirea internetului.
Formularele sunt acele elemente ale paginii web prin intermediul cărora utilizatorii
paginii trimit date către server (comentarii, mesaje, date de înregistrare, etc.). Datele astfel
transmise pot fi prelucrate folosind PHP: pot fi salvate într-o bază de date, potfi trimise prin e-
mail, rezultatul prelucrării poate fi afișat pe o pagină.
Pentru a putea introduce date într-o pagină web este necesară existența unui formular
În HTML, formularele se definesc cu ajutorul etichetelor <FORM> </FORM> , care
trebuie sa aibă specificate obligatoriu 2 atribute: "action" si "method". Action reprezintă
locația unde vor fi transmise datele, reprezentată prin numele fișierului ce va prelucra cererea
(de regulă un fișier PHP). Acest atribut poate fi gol, specificând că datele vor fi transmise către
același script ce afișează formularul (fișierul curent). Method specifică metoda de acces.
Metodele de acces reprezintă modul în care cerințele pentru o pagina web și alte
informații aferente sunt transmise de la browser la serverul web. Cel mai des folosite în
dezvoltarea paginilor web sunt:
GET - este metoda folosită implicit de browsere pentru a trimite cereri către servere (în
engleza "get data"). Majoritatea paginilor pe care le vizualizam pe internet sunt obținute în urma
unei cereri GET. Odată cu cererea se pot transmite și mici bucăți de informații către server,
transmise de către utilizatori într-un formular Metoda GET trimite toate informațiile adunate ca
parte a adresei URL; aceste informații sunt vizibile pentru utilizator.
POST - este folosită pentru a transmite informații către server (în engleza "post data").
Referitor la cantitatea de date care să fie transmisă de la client (browser) la serverul web, POST
transmite o cantitate mai mare de date decât GET, fiind standardul de transmitere a datelor.
Informațiile transmise prin metoda POST sunt invizibile pentru utilizator
În general datele din formular sunt preluate de scriptul PHP prin următoarea formulă:
$_GET['nume'] - daca este folosit method="get"
$_POST['nume'] - daca este folosit method="post"
- unde ‘nume’ este valoarea atributului name al elementului din formularul HTML.
3.3.1. Formulare GET
Afișarea datelor introduse în formular:
Fișierul formular1.html preia datele de la vizitatorul paginii:
<html >
<head>
<title> formular1 </title>
</head>
<body>
42
<form action="formular1.php" method="GET">
Nume:<input type="text" name="nume" />
<br />Email:<input type="text" name="email" />
<br />Parola:<input type="password" name="parola" />
<br /><input type="submit" name="submit" value="Trmite datele" />
</form>
</body>
</html>
Fișierul formular1.php afișează datele trimise de utilizator
<?php
$nume = $_GET['nume'];
$email = $_GET['email'];
$parola = $_GET['parola'];

echo "Nume = $nume";


echo "<br />E-mail = $email";
echo "<br />Parola = $parola";
?>
3.3.2. Formulare POST
<?php
<form action="formular1.php" method="POST">
Nume:<input type="text" name="nume" />
<br />Email:<input type="text" name="email" />
<br />Parola:<input type="password" name="parola" />
<br /><input type="submit" name="submit" value="Trmite datele" />
</form>
$nume = $_ POST ['nume'];
$email = $_ POST ['email'];
$parola = $_ POST ['parola'];
echo "Nume = $nume";
echo "<br />E-mail = $email";
echo "<br />Parola = $parola";

3.4. Utilizarea matricelor


Numerele și șirurile sunt variabile scalare, adică la un anumit moment pot avea o singură
valoare O matrice(array sau "tablou"), este o colecție de valori, reunite într-o singură variabilă
de redefinire; valorile individuale ale acestei colecții se numesc elementele matricei.
Pentru fiecare element al unei matrice putem vorbi despre două elemente: cheia (sau
indicele, care arată poziția elementului în cadrul matricei) și valoarea elementului.
În general, referirea la o matrice este asemănătoare cu referirea la orice variabilă, numele
acesteia începând tot cu semnul $; în schimb, referirea la elementele matricei se face incluzând
cheia acestuia între paranteze drepte ($matrice[2] se referă la elementul cu indicele 2 al matricei
$matrice)
Matricele pot fi create folosind două metode:
1. utilizând direct instrucțiunile de atribuire
2. folosind funcția array()
1. Crearea de matrice folosind funcția de atribuire: fiecărui element al matricei i se
atribuie o valoare și o cheie. De exemplu:

43
$materia[1] = "geometrie"; - creează o matrice cu numele "$materia" și un element cu valoarea
"geometrie" identificat prin cheia "1"; pentru a adăuga în matrice o a doua valoare, se folosește
din nou instrucțiunea de atribuire: $materia[2] = "fizică";
Instrucțiunea $materia[] = “chimie” va adăuga elementul chimie având indicele imediat
următor ultimului element din matrice.
Într-o matrice, cheile pot fi atât numere cât și șiruri de caractere, cuvinte. O matrice care
va stoca materia preferată a celor 3 elevi premianți din clasă se creează astfel:
$materie_preferată[Andrei] = "istorie";
$materie_preferată [Irina] = "matematică";
$materie_preferată [Ana] = "engleză";
2.Crearea de matrice folosind funcția array() - sintaxa funcției este:
$nume_matrice(‘element1’, ‘element2’, ‘element3’);.
Dacă nu se specifică un indice pentru elemente, primul element va primi automat
indicele 0, al doilea va primi indicele 1, etc. Se poate atribui indicele pentru fiecare element în
momentul creării matricei, astfel:
$nume_matrice(1= >‘element1’, 2=>‘element2’, 3=>‘element3’);.
Exemple:
$materia(‘geometrie’, ‘fizică’, ‘chimie’);
$materia(1= >‘geometrie’, 2=>‘fizică’, 3=>‘chimie’);
$materia_preferată(Andrei=>’istorie’, Irina=>’matematică’,Ana=>’engleză’);
O altă formă de scriere a matricii:
$materia_preferată(
Andrei=>’istorie’,
Irina=>’matematică’,
Ana=>’engleză’
);
Matrice multidimensională: este acel tip de matrice ale cărei elemente sunt alte matrice.
De exemplu, matricea $alimente va avea ca elemente alte matrice, cu tipuri de alimente:
$lactate = array (‘unt’, ‘lapte’, ‘cașcaval’);
$fructe = array (’mere’, ’zmeură’, ’cireșe’, ’prune’);
$dulciuri = array (‘ciocolată’, ‘biscuiți’ );
$mezeluri = array(’salam’, ’cabanos’, ’ cârnati’);
$alimente = array(
‘fructe’ = > $fructe
‘lactate’ => $lactate
‘dulciuri’ => $dulciuri
‘mezeluri’ => $mezeluri

44
);
Pentru a indica un element dintr-o matrice multidimensională, indicii acesteia trebuie incluși in
paranteze drepte (ex: pentru a indica elementul ciocolată –$alimente[‘dulciuri’[‘ciocolată]]);
Accesul la datele dintr-o matrice
Indiferent de modul de creare a matricei, accesul la un element sau la valoarea unui
element se face prin intermediul indicelui/cheii asociate elementului.
De exemplu pentru matricea x:
$x = array(1=>10, 2=>100, 3=>1000);
se obține acces la valoarea asociată indicelui 2 prin intermediul următoarei instrucțiuni:
print “valoarea elementului cu indicele 2 este $x[2]”;
sau
$y = $x[2];, prin care i se atribuie variabilei y valoarea elementului cu indicele 2
se poate modifica valoarea asociată indicelui 2 astfel: $x[2]=200;
Cea mai rapidă și sigură modalitate de a avea acces la toate valorile unei matrice este
parcurgerea acesteia folosind funcția foreach(). Sintaxa funcției este:
foreach(matrice as$cheie=>$valoare)
{instructiuni};
Fișierul matrice1.php afișează materiile preferate ale celor 3 elevi:
<?php
$materia_preferata = array(
Andrei=>"istorie",
Irina=>"matematica",
Ana=>"engleza");
foreach ($materia_preferata as $index => $materia) {
echo "<br />$index =>$materia";
}
?>

O matrice ale cărei indici sunt valori întregi consecutive se numește matrice numerică
sau secvențială. Dacă se cunoaște valoarea minimă a indicelui unei matrice secvențiale, aceasta
poate fi parcursă și cu un ciclu for; pentru a forma condiția ciclului se folosește funcția count(),
care returnează numărul de elemente dintr-o matrice.
Fișierul matrice2.php afișează indicele și valorarea fiecărui element al matricei $fructe:
<?php
$fructe = array(
0=>"mere",
1=>"zmeura",
2 =>"cirese",
3 =>"prune");
$nr = count($fructe);
for ($i = 0; $i < $nr; $i++) {
echo "<br />$i => $fructe[$i]";
}
?>
variabila $nr folosește funcția count() pentru a obține numărul de elemente din matrice.

45
Sortarea matricelor – o matrice poate fi sortată după chei(indici) sau după valori,
datorită faptului că este formată din perechi de chei și valori. PHP folosește următoarele funcții
pentru sortarea matricelor:
sort() – sortează matricea după valori, fără corespondență cheie-valoare;
rsort() – sortează matricea după valori în ordine descrescătoare, fără corespondență
cheie-valoare;
asort() – sortează matricea după valori, cu corespondență cheie-valoare;
arsort() – sortează matricea după valori în ordine descrescătoare, cu corespondență
cheie-valoare;
ksort()() – sortează matricea după chei, cu corespondență cheie-valoare;
krsort() – sortează matricea după chei în ordine descrescătoare, cu corespondență cheie-
valoare;
fișierul matrice3.php afișează elementele matricei note, care are ca indici numele
elevilor și ca valori notele acestora:
Transformarea unui șir într-o matrice și a unei matrice într-un șir
În limbajul PHP există două funcții pentru conversia între șiruri și matrice. Acestea pot
fi utile în situații cum sunt: transformarea matricelor în șiruri pentru a fi stocate într-o bază de
date sau pentru a fi adăugate la un URL; transformarea șirurilor în matrice, pentru a converti
un câmp de text delimitat prin virgulă în părți separate.
Pentru a transforma un șir într-o matrice se folosește funcția explode(), cu următoarea
sintaxa :
$matrice = explode(’separator’, $sir);
unde separatorul poate fi orice caracter; care definește unde se termină un element din matrice
și unde începe următorul. De obicei se folosesc virgule, spațiile libere sau tabulatori ca
separatori..
Pentru a transforma o matrice într-un șir se folosește funcția implode(), cu următoarea
sintaxa :
$sir = explode(’separator ’, $matrice);
fișierul
Iata un exemplu:
<?php
$sir = "mere prune cirese dude";
$matrice = explode(" ",$sir);
foreach($matrice as $key=>$fruct) {
echo "<br />Cheie = $key Valoare = $fruct";
}
?>

46
Fișierul
<?php
$matrice = array("Rares", "Avram", "Cristian", "Dan");
sort($matrice);
$sir = implode(" - ",$matrice);
echo "<br />Sirul rezultat : \"$sir\"";
?>

3.5 Cookie-uri și sesiuni


Cookie-urile constituie o metodă prin care serverul poate salva informații despre
utilizator în sistemul de calcul al acestuia, astfel încât utilizatorul să poată fi recunoscut de
server pe parcursul vizitei curente sau a mai multor vizite. De obicei cookie-urile sunt folosite
pentru a identifica utilizatorii sau a păstra urma vizitelor pe un site.
Un cookie poate conține o cantitate limitată de informație iar durata de viată poate fi
limitată (la un anumit număr de zile, la închiderea sesiunii de lucru, etc) sau nelimitată (până la
ștergerea lor).Cookie-urile pot fi șterse de utilizator, sau pot fi blocate de către browser.
Cel mai important lucru care trebuie reținut în legătură cu cookie-urile este că ele trebuie
trimise din server către client înaintea oricărei alte informații, altfel va fi generat un mesaj de
eroare și cookie-ul nu va fi trimis.
Cookie-urile sunt trimise cu ajutorul funcției setcookie(), cu următoarea sintaxă:
setcookie(numeCookie, valoare, expirare)
unde 'numeCookie' specifică numele variabilei cookie, 'valoare' specifică valoarea
variabilei, iar 'expirare' indică momentul expirării cookie-ului; după ora specificată, cookie-ul
nu mai este accesibil.
Momentul expirării se specifică în general folosind funcția time(), care returnează
intervalul de timp (exprimat în secunde) scurs de la 1 ianuarie 1970. Se poate adăuga o valoare
de tip decalaj (offset), care specifică intervalul de timp pe durata căruia cookie-ul trebuie sa fie
accesibil.
Folosind aceasta funcție se pot transmite mai multe cookie-uri succesiv; protocoalele
Web limitează însă la maximum 20 numărul cookie-urilor ce pot fi trimise aceluiași utilizator.
Pentru a șterge un cookie se creează altul cu același nume, dar cu data de expirare
înaintea celei curente.
Pentru a citi (recupera) valoarea unui cookie, se utilizează conținutul unui
masiv asociativ special, predefinit, al limbajului PHP, numit $HTTP_COOKIE_VARS[..].
Fiecare componentă a sa are ca indice numele unui cookie, iar ca valoare, reține valoarea
variabilei respective.

47
Ex: setcoockie(culoare_font, “blue”, time()+3600) creează un cookie cu numele
culoare_font, cu valoarea “blue”, care expiră într-o oră; instrucțiunea setcoockie(culoare_font,
“blue”, time()-3600) șterge cookie-ul.
<?php
# crearea unui cookie de test care expira la sfarsitul sesiunii de lucru
setcookie("Test", 'acesta este un test');
# crearea unui cookie care expira intr-o ora
setcookie("Test2", 'o ora', time()+3600);
# vizualizarea cookie-urilor
if( isset( $_COOKIE[ 'Test' ] ) ) {
echo 'Test: ', $_COOKIE[ 'Test' ], '<br>';
}
if( isset( $_COOKIE[ 'Test2' ] ) ) {
echo 'Test2: ', $_COOKIE[ 'Test2' ], '<br>';
}
# stergerea unui cookie: alegand o data de expirare din trecut
setcookie("Test2", 'o ora', time()-3600); // timpul de expirare a trecut, deci cookie-ul
// nu va mai fi valid si va fi sters de catre browser
?>
Sesiunile sunt o funcționalitate prin care anumite informații sunt menținute de la o
pagina la alta; durata unei sesiuni este determinată de durata accesării unui site de către
utilizator(se încheie odată cu închiderea browser-ului).
În PHP o sesiune reprezintă perioada de timp în care mai multe scripturi PHP, accesate
la momente diferite de timp, pot stoca și folosi informații comune.
Pentru a crea, accesa și șterge o sesiune se folosește funcția session_start().
Când un script apelează funcția session_start() pentru prima data într-o sesiune de
lucru, se transmite un cookie către browser-ul clientului; datorită acestui motiv este necesar ca
funcția session_start() să fie apelată înaintea oricărei instrucțiuni sau cod HTML. Cookie-ul
transmis conține un identificator ce poartă numele de Session ID, pe baza căruia se poate face
distincție intre sesiunea curentă și alte sesiuni ale altor utilizatori ce accesează site-ul in acel
moment.
Dacă browserul utilizatorului nu acceptă cookie-uri, identificatorul de sesiune va fi
transmis printr-un parametru GET, cu numele PHPSESSID și o valoare de genul
4bcc48dc87cb4b54d63f99da23fb41ef.
La accesarea următoare a aceleiași pagini, sau a alteia din cadrul aceluiași site,
identificatorul de sesiune este transmis de către browser (ca orice cookie existent in browser) și
astfel, orice script PHP are acces la Session ID-ul creat inițial, fiind capabil să acceseze
sesiunea corectă. Deci session_start() are doua roluri: sa creeze o sesiune nouă sau sa continue
o sesiune existentă, identificată printr-un Session ID.

48
Funcții principale de manipulare a sesiunii: sunt prezentate mai jos. Exista o functie
session_id() - care returneaza Session ID-ul curent (se poate folosi constanta globală
SID).
session_write_close() - permite închiderea sesiunii in scriptul curent (Datele rămân
salvate și pot fi accesate din nou după apelarea funcției session_start().
Salvarea datelor pe sesiune se face prin intermediul vectorului super-global
$_SESSION. Citirea datelor persistate se poate realiza tot prin intermediul $_SESSION.
Exemplu de transmitere a unei informații de la o pagină la alta folosind o sesiune:
Se folosesc două fișiere alfa.php și beta.php pentru a putea păstra textul de la o accesare
la alta; în primul fișier se stochează date pe sesiune, care vor fi citite de pe sesiune în al doilea
fișier.
alfa.php
<?php
session_start();
$_SESSION[ 'text' ] = 'Mesaj de pe prima pagina';
echo '<a href="b.php">Mergeti la pagina urmatoare</a>';
?>
beta.php
<?php
session_start();
echo $_SESSION[ 'text' ]; // afisam informatia
?>
după accesarea paginii alfa.php există o sesiune creată ce are stocata variabila text.
Scriptul din beta.php accesază sesiunea tot prin session_start și va citește datele.
3.6. Funcții
Funcțiile sunt blocuri de cod PHP (secvente de cod) bine delimitate și identificate
printr-un nume, ce execută un set de operații.
În PHP există funcții predefinite ( print, empty, etc) care pot fi folosite în orice moment,
fără vreo acțiune speciala și funcții definite de utilizator, care trebuie declarate înainte de
folosire. Funcțiile pot fi executate de mai multe ori in cadrul unui script prin simpla apelare a
numelui lor.
Sintaxa unei funcții definite de utilizator este:
function nume_funcție(){
instrucțiuni;
}
După crearea funcției, acțiunile ei vor fi executate de fiecare dată când aceasta este
apelată. Apelarea unei funcții se face prin numele acesteia.
Fisierul max.php afișează numărul cu valoarea cea mai mare prin apelarea funcției
maxim().

49
max.php max2.php
<?php <?php
function maxim(){ function maxim(){
$a=12; $a=12;
$b=23; $b=23;
if($a>$b) if($a>$b)
print$a; print$a;
else else
print$b; print$b;
} }
print maxim() call_user_func('maxim')
?> ?>
În cazul funcțiilor se poate folosi și instrucțiunea call_user_func() atunci când numele
funcției este furnizat de o variabilă (fișierul max2.php).
La funcțiile definite de utilizator trebuie ținut cont de faptul că variabilele definite în
afara funcțiilor nu sunt disponibile în interiorul lor. Astfel, dacă în fișierul max.php variabilele
$a, $b ar fi fost declarate înaintea funcției, se afișează un mesaj de eroare Undefined variable.
Variabilele definite în interiorul funcțiilor sunt variabile locale nu sunt disponibile în
afara acestora. Variabilele definite în afara funcțiilor pot fi referite de funcții prin folosirea
instrucțiunii global$variabilă;, înaintea instrucțiunilor care le folosesc. Se pot specifica mai
multe variabile globale în cadrul unei singure instrucțiuni global: global $a, $b, $Vector;
max3.php <?php
<?php $a=12;
$a=12; $b=23;
$b=23; function maxim(){
function maxim(){ global$a;
if($a>$b) global$b;
print$a; if($a>$b)
else print$a;
print$b; else
} print$b;
print maxim() }
?> print maxim()
?>

De multe ori este nevoie ca o funcție să preia date de intrare și să le prelucreze. Datele
de intrare pe care le preia o funcție se numesc argumente sau parametrii.
Pentru ca o funcție sa poată prelua parametrii, aceasta trebuie sa îi declare intre
parantezele rotunde: function Nume_funcție($x, $y)
{instrucțiuni}
unde $x și $y sunt argumentele sau parametrii funcției.

50
max5.php
<?php
function maxim($a, $b){
if($a>$b)
print$a;
else
print$b;
}
print maxim(36,7) La apelul funcției se folosesc 2
print"<br>"; parametrii numerici, 35 și 7
$x=1;
$y=8; La al doilea apel, parametrii sunt două
print maxim($x, $y); variabile locale $x și $y
?>
Există situații în care este util ca funcțiile să returneze o valoare; majoritatea funcțiilor
predefinite fac lucrul asta; spre exemplu empty returnează TRUE sau FALSE în funcție de
starea și conținutul unei variabile transmise ca parametru.
Funcțiile definite de utilizator pot returna o valoare, cu ajutorul instrucțiunii return.
<?php
function maxim( $a, $b ){
if( $a > $b )
return $a;
else
return $b;
}
print maxim( 36, 7 );
print"<br>";
$x = 1;
$y = 3;
print maxim( $x, $y );
print"<br>";
$a=4;
print maxim( $a, maxim($x, $y) );
?>
Deoarece funcția maxim în acest caz returnează o valoare, ea poate fi folosită și ca
argument pentru o altă funcție.
O facilitate avansată oferita de limbajul PHP este folosirea valorilor predefinite pentru
parametrii funcțiilor. Aceasta permite ca o funcție să nu fie apelată cu toți parametrii ei, urmând
ca pentru valorile care lipsesc sa fie folosite valorile predefinite. Funcția minim() definita mai
sus poate fi rescrisa în felul următor:
<?php Dacă funcția nu este apelată cu
parametrii, folosește valorile
function maxim($a = 1, $b = 2) { stabilite la declarare, $a=1 și $b=2;
if( $a < $b ) return $b; dacă e apelată cu o parte din parametrii,
else return $a; cei care lipsesc la apel sunt înlocuiți
} cu valorile de la declarare
print maxim(); Se folosesc $a=1 și $b=2
print"<br>";
print maxim(7); Se folosește $b=2
print"<br>";
print maxim(7,8); Sunt declarați cei 2 parametrii valorile
?> numerice 7 și 8

Fișierul meniu_data.php generează un meniu derulant cu anul, luna și ziua pentru un


formular:
<?php
function creare_meniu(){

51
$luni = array( 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul',
'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
print "<select>";
for( $i = 0; $i < 12; $i++ ) {
print"<option>{$luni[ $i ]}</option>\n";
}
print"</select>";
print"<select>";
for($day=1; $day<=31; $day++){
print"<option> $day </option>";
}
print"</select>";
$primul_an = date('Y');
print "<select name = 'anul'>";

for ($Y = $primul_an; $y <=($primul_an +10); $Y++){


print "<option> $Y </option>";
$anul++;
}
print"</select>";
}
print "<form action=' ' method='POST'>";
creare_meniu();
print"</form>";
?>

3.7.MySQL șiPHP - Noțiuni de bază


O bază de date este o colecție de tabele compuse din linii și coloane, care stochează
informații în vederea furnizării ulterioare în funcție de solicitarea primită. Bazele de date sunt
create, actualizate și citite utilizând limbajul SQL (Structured Query Language – limbaj de
interogare structurat).
MySQL este cel mai popular limbaj de baze de date folosit cu PHP. Utilizarea PHP în
lucrul cu MySQL se reduce la trimiterea comenzilor SQL către serverul MySQL.
Comenzile SQL de bază sunt:
CREATE creează o baza de date sau un tabel
DROP șterge o baza de date sau un tabel
INSERT adaugă înregistrări într-un tabel
DELETE șterge înregistrări dintr-un tabel
UPDATE actualizează înregistrările dintr-un tabel
SELECT preia înregistrări dintr-un tabel
create database nume_bază_date; - creează o bază de date cu numele specificat;
use nume_bază_date; - se folosește atunci când se dorește lucrul cu o bază de date specificată
prin nume_bază_date;
drop database nume_bază_date; - ștergerea bazei de date specificate prin nume_bază_date;
show databases; - listează bazele de date existente;
Pentru a crea un tabel într-o bază de date se folosește următoarea instrucțiune:
create table nume_tabel
52
(nume_coloană1 tip_date [specificatori],
nume_coloană2 tip_date [specificatori],
...
nume_coloanăn tip_date [specificatori] );
ex: pentru a crea un tabel cu numele “utilizatori” cu următoarele coloane: id, nume, parolă, se folosește
instrucțiunea: create table utilizatori (in int(2),nume char(30),parola(30);
Pentru a introduce date in tabel se folosește instrucțiunea:
insert into nume_tabel values(valoare1,valoare2,...,valoaren); Ex: insert into utilizatori
values(1, ana, albastru);
Instrucțiunea select * from nume_tabel; selectează toate înregistrările din tabel; pentru
o selectare mai specifică, instrucțiunea cuprinde numele coloanelor din care se vor selecta date:
select nume_coloana1,...,nume_coloanak from tabel;
Afișarea numelor tabelelor din baza de date se face astfel:
show tables [from nume_bază_date];
iar pentru afișarea detaliată a unui tabel (numele coloanelor, tipurile lor) se folosesc
instrucțiunile:
describe nume_tabel;
show columns from nume_tabel;
Tipuri de date în MySQL.
MySQL folosește tipuri de date principale:
 șiruri de caractere;
 numerice;
 dată, oră
și două secundare:
 liste predefinite
 date binare
care sunt prezentate în Anexă.
Operatori
MySql folosește operatori aritmetici, de comparare, logici, logici pe biți, de deplasare
pe biți. O listă cu principalii operatori și semnificația lor se găsește în Anexă la pag.2.
Pe lângă aceștia există și operatori specifici MySql:
• is null, is not null – testează dacă o valoare este sau nu null
• in, not in– testează dacă o valoare aparține sau nu unei mulțimi

53
• like, not like– testează dacă un șir de caractere are o anumită formă: dacă este
prefixat respectiv post fixat sau nu de un anumit subșir, dacă acesta conține un anumit subșir.
Forma sub care se utilizează este string like şablonrespectiv string not like sablon. Șablon
este tot un string, în care se folosesc următoarele caractere speciale: ’%’ pentru un număr
neprecizat de caractere necunoscute, respectiv ’_’ pentru un singur caracter neprecizat.
• between min and max – testează dacă o valoare se găsește în intervalul închis
cu capetele min, respectiv max.
• case .. when .. then .. else ..– are două forme sub care se poate aplica:
- forma 1: - forma 2:
case v case
when v1 then val1 when cond1 then val1
... ...
when vn then valn when condn then valn
else valn+1 else valn+1
end end

Se evaluează v, și dacă se produce vreuna dintre Se evaluează condițiile în ordinea scrierii. Prima care
valorile v1 .. vn se va întoarce valk corespunzătoare, este adevărată va întoarce valoarea valk corespunzătoare.
iar dacă nu se va întoarce val n+1 Dacă nici una nu este adevărată, se va întoarce val n+1

În MySQL variabilele se specifică prin @identificator, unde identificator respectă


aceleași reguli sintactice ca și în alte limbaje de programare; Atribuirea unei valori se face cu
operatorul ':='.
Funcţii specifice MySQL:
• if(exp1,exp2,exp3) – dacă exp1 este nenulă (adevărată) funcția returnează exp2, în
caz contrar returnează exp3.
• ifnull(exp1,exp2)– dacă exp1 este nenulă, returnează chiar pe ea. Dacă nu, returnează
exp2.
Alte funcții folosite de MySQL se găsesc în Anexa

Cheie primară și cheie unică.


Cheia primară este constituită dintr-unul sau mai multe câmpuri și îndeplinește
următoarele condiții:
- valorile din coloana cheii primare trebuie să fie distincte. În cazul în care cheia este
alcătuită din mai multe câmpuri, pentru a avea două chei distincte este necesar ca acestea
(cheile) să fie diferite pentru cel puțin o coloană dintre ele.
- câmpul (câmpurile) care alcătuiește (alcătuiesc) cheia primară trebuie să aibă o
lungime fixă.
Rolul cheii primare este să asigure accesul foarte rapid la o anumită înregistrare
54
Pentru a preciza faptul că o anumită coloană este cheie primară, atunci când definim
tabela, folosim specificatorul primary key.
Cheia unică este constituită dintr-un singur câmp. Se folosește atunci când, într-o
anumită coloană, fie ea participantă la cheia primară, dorim să avem doar valori distincte. La
fel ca și la cheia primară, putem avea cheie unică doar pentru coloanele de lungime fixă
Specificatorul de cheie unică este unique key.
Sortarea datelor se face tot cu ajutorul interogărilor; într-o interogare ale căror date
dorim să le sortăm, specificăm, la sfârșitul comenzii, clauza:
order by expresie1[desc], expresie2[desc],...
Filtrarea datelor se face tot cu ajutorul interogării „select„: prin specificarea clauzei
where condiţie se vor afișa doar acele linii ale tabelei pentru care condiția este evaluată ca fiind
adevărată.
Clauza poate fi utilizată în acelaşi timp cu clauza order by care realizează sortarea, dar
trebuie specificată mai întâi clauza where, și abia apoi clauza order by.
select * from nume_tabel where nume_col order by expresie1[desc],;
Actualizarea datelor - modificarea datelor din tabele sau modificarea structurii/
numelui tabelei.
a) pentru actualizarea datelor: pentru inserarea unei noi linii în tabel, se folosește
instrucțiunea:
insert into nume_tabel[(nume_coloană1,...,nume_coloanăn)]values(expr1,...,exprn)
b) pentru modificarea datelor se utilizează următoarea instrucțiune:
update nume_tabel set coloană1=exp1,..,coloanăn=expn [where condiţie]
c) pentru ştergerea uneia sau a mai multor linii ale unui tabel se utilizează instrucțiunea:
delete from nume_tabel where [conditie]; (în absenţa clauzei where vor fi șterse toate
liniile tabelei)
d) pentru redenumirea unei tabele:
rename table nume_vechi to nume_nou;
e) pentru ştergerea unei coloane, chiar dacă aceasta conține date:
alter table nume_tabel drop column nume_coloană;
f) pentru adăugarea (inserarea) unei coloane noi, cu un anumit tip de date, se utilizează
instrucțiunea:
alter table nume_tabel add nume_coloană_nouă tip_coloană nouă
[after coloană_existentă]sau[first]

55
dacă nu este prezentă vreuna dintre clauzele after sau first, coloana cea nouă se va
adăuga la sfârșit. Dacă este prezentă cel puțin vreuna, atunci coloana cea nouă se va insera după
coloana identificată de coloană_existentă dacă folosim clauza after... respectiv la început
(înainte de toate celelalte coloane) dacă folosim clauza first.
Exploatarea bazelor de date MySQL prin intermediul limbajului PHP.
Pentru a face funcțional suportul de conectivitate a limbajului PHP către bazele de date
MySQL, este necesară utilizarea bibliotecii mysql. În primul rând, din interiorul unui script
PHP trebuie realizată conectarea la baza de date cu ajutorul instrucţiunii:
$resursă=mysql_connect(”localhost”, ”utilizator”, ”parola”);
Referirea la conexiunea creată se va face ulterior prin variabila $resursă; dacă a nu se
stabilește o conexiune, variabila $resursă va avea valoarea null.
După crearea conexiunii baza de date trebuie selectată:
mysql_select_db(nume_bază_date);
Plasarea unei comenzi (interogări) asupra bazei de date selectate se face prin
instrucțiunea:
$resursă1=mysql_query(string_ce_conţine_comanda_MySQL);
Dacă interogarea a funcționat corect, funcția va întoarce o valoare diferită de 0. În caz
contrar, întoarce valoarea 0. Variabila $resursă1 este cea care va permite, în continuare,
obținerea rezultatului efectiv al interogării.
În cazul oricărei erori, perechea de funcţii mysql_errno(); respectiv mysql_error();
returnează codul (numărul) ultimei erori generate, respectiv mesajul asociat acesteia.
Închiderea conexiunii către baza de date MySQL se face prin comanda:
mysql_close(resursă_conexiune);
Obținerea datelor întoarse de interogare se face prin intermediul resursei întoarse de
comanda mysql_query. Funcțiile cele mai folosite sunt:
 mysql_num_rows(resursa) – returnează numărul de linii (rânduri) ale tabelei rezultate
în urma interogării;
 mysql_num_fields(resursa) – returnează numărul de câmpuri (coloane) ale tabelei
rezultate în urma interogării;
 mysql_field_name(resursa,k) – returnează numele câmpului (coloanei) al k-lea al
tabelei. Coloanele sunt numerotate de la 0;
 mysql_fetch_array(resursă) – întoarce rândul (linia) curentă, sub forma unui șir
(vector) din interogarea specificată de resursă, mutând pointerul intern pe următoarea
linie (rând) al interogării. Dacă liniile interogării s-au terminat, va întoarce fals.

56
4. ORGANIZAREA ŞI DESFĂŞURAREA CERCETĂRII

4.1. Ipoteza de lucru și obiectivele

Ipoteza de lucru: în liceele tehnologice, disciplina Tehnologia Informației și


Comunicării se axează pe studierea aplicațiilor Office și realizarea de proiecte care se bazează
pe aceste aplicații. Doar în semestrul al doilea al clasei a IX-a se studiază noțiuni de HTML.
În decursul timpului petrecut la catedră am observat interesul evident și din ce în ce mai
mare al elevilor în legătură cu internetul, inclusiv cu modalitățile de creare a unor pagini web
personale sau site-uri. Datorită acestui fapt a luat naștere cercul de T.I.C., care si-a propus ca
prin activitățile desfășurate, să satisfacă această dorință a elevilor.

Scopul: realizarea unei aplicații web dinamice, particularizată printr-o aplicație


specifică: realizarea site-ului școlii, precum și realizarea unui șablon pentru alte tipuri de site-
uri.

Obiectivele cercetării:
 stabilirea nivelului inițial de pregătire al elevilor, prin intermediul unor teste
inițiale
 justificarea studierii unui limbaj de programare web , prin intermediul unui
opțional, determinat de interesul elevilor în acest domeniu. În conformitate cu
principiul activizării promovat de educația școlară actuală, cercetarea de față își
propune să demonstreze că, prin studierea unei discipline care prezintă interes.
și prin utilizarea unor metode moderne de educație, va fi trezit și menținut
interesul elevilor față de procesul de învățământ, ceea ce va conduce la
îmbunătățirea rezultatelor acestora.
 evidențierea efectelor produse după acumularea cunoștințelor

57
4.2. Metodica cercetării

Tipul cercetării: pentru această lucrare am ales cercetarea aplicativă. S-a desfășurat la
Liceul Tehnologic „Mihai Novac” Oravița, pe elevii care fac parte din cercul de T.I.C., în anul
școlar 2013 – 2014.

Metode și tehnici de cercetare


În alegerea metodelor de cercetare am avut în vedere următoarele:
 utilizarea de metode obiective de cercetare, adică metode prin care să poată fi
observate, înregistrate și măsurate reacțiile subiectului la acțiunea directă sau
indirectă a diferiților stimuli externi;
 utilizarea de metode care să facă posibilă abordarea sistematică a
fenomenului investigat;
 folosirea unui sistem complementar de metode, care să permită
investigarea fenomenului, atât sub aspectul manifestării sale generale, cât şi
specifice.
Pentru culegerea datelor s-au utilizat metode precum:
 documentarea teoretică și practică am parcurs un bogat material bibliografic
vizând aspecte generale și specifice ale limbajului PHP, care să-mi permită
cunoașterea stadiului în care se află tema abordată și implicațiile ce decurg din
aceasta.
 metoda observației: a fost metoda cea mai utilizată și a vizat comportamentul
elevilor la activități, în vederea sesizării atitudinii acestora în momentul utilizării
diverselor strategii abordate, precum și observarea rezultatelor acestora.
 studierea produselor activității elevilor, respectiv, a lucrărilor practice, testelor,
altor produse realizate de aceștia în urma activităților și care au avut relevanță
pentru atingerea obiectivelor de la crearea aplicațiilor web.
 convorbirea a dus la aflarea informațiilor de la elevi despre preferințele lor
vizavi de activitățile desfășurate.
 diagnosticarea nivelului la care se află elevii s-a făcut prin intermediul testelor
aplicate.

58
Pentru prelucrarea și interpretarea datelor cercetării am utilizat metode precum:
 realizarea unor tabele în care am trecut informațiile obținute în urma aplicării
unor teste de evaluare, sau în urma observărilor efectuate la grupă;
 metoda statistico-matematică statistica matematică este totalitatea schemelor şi
procedeelor de observare și analiză a datelor. Se folosește în vederea exprimării
cantitative a raporturilor calitative și constă în culegerea datelor numerice,
interpretarea și prelucrarea lor statistică. În continuare s-au calculat următorii
indicatori statistici:

a) media aritmetică ( X )este indicatorul statistic cel mai des utilizat la


interpretarea datelor recoltate și care se ia în considerare în toate calculele
ulterioare. Foarte des utilizat, acest parametru este considerat ca fiind o
valoare tipică în aprecierea tendinței centrale a fenomenului studiat. La
calcularea mediei trebuie să ținem seama de faptul că ea poate este puternic
influențată de anumite valori extreme, situație în care își pierde din precizie
și reprezentativitate, motiv pentru care valorile maxime și minime recoltate
trebuie eliminate din calcul. Se calculează după formula:

̅=

unde: ̅ = media aritmetică;

x = suma valorilor individuale;


n = numărul total de cazuri.

b) abaterea standard (S) este unul dintre parametri cei mai reprezentativi ai
variabilității. Se folosește în practica cercetării științifice și este indicatorul
dispersiei. Se calculează după formula:

∑( − ̅)
= ±
− 1

unde:

( xi  x ) = diferența dintre fiecare valoare individuală și media

59
aritmetică sau abaterea valorilor individuale față de
medie;

 = suma rezultatelor

 (x i  x) 2 = suma diferențelor ridicate la pătrat


n = numărul total de cazuri

Distribuția (dispersia) se numește „normală” dacă într-o abatere la stânga și


la dreapta sunt cuprinse peste 68% din cazuri; cu cât dispersia este mai redusă,
cu atât valoarea centrală este mai reprezentativă.
c) metoda reprezentării grafice - se folosește în scopul interpretării vizual-
intuitive a mărimilor măsurate și evidențierea aspectelor urmărite.

4.3.Descrierea grupului asupra căruia s-a efectuat cercetarea

Pentru verificarea ipotezei de lucru și atingerea obiectivelor, mi-am orientat atenția


asupra elevilor înscriși la cercul de Tehnologia Informației și Comunicării. La acest cerc au
participat un număr de 19 elevi din clasele X-XII, de la Liceul Tehnologic „Mihai Novac”
Oravița.
Activitatea cercului s-a desfășurat în cabinetul de informatică al școlii; prezența
participanților a fost între 95 – 100%, și datorită faptului că participarea la activități a fost
benevolă și a avut la bază interesul elevilor pentru activităților desfășurate.
Participanții au avut vârste cuprinse între 15 și 18 ani.

4.4.Organizarea și desfășurarea cercetării

Etapele cercetării:

 etapa constatativă s-a desfășurat la începutul lunii octombrie a anului școlar


2013-2014. În această perioadă au fost aplicate elevilor o serie de teste inițiale,
pentru a se stabili nivelul inițial de pregătire al acestora
60
 etapa experimentală s-a desfășurat în perioada octombrie 2013 - 30 aprilie 2014.
După centralizarea datelor furnizate de testele inițiale am proiectat o serie de
activități prim intermediul cărora să elevii participanți să realizeze obiectivele
acestei cercetări, cu preponderență crearea unei aplicații web dinamice .În
această perioadă s-au actualizat cunoștințele elevilor și de asemenea s-au
acumulat cunoștințe noi, necesare creării aplicației. De asemenea, pe parcursul
fiecărei etape am observat efectul pe care l-au avut acțiunile din această etapă
asupra comportamentului elevilor și asupra rezultatelor, a produselor obținute în
urma activităților desfășurate.
 etapa finală s-a desfășurat în mai 2014.

După aplicarea testelor, s-au centralizat datele furnizate de acestea în tabele


centralizatoare analitice și sintetice, care au facilitat sesizarea eventualelor lacune, a
eficienței mai mari sau mai reduse a strategiilor alese, inițierea unor programe de
compensare sau dezvoltare specifice, prin valorificarea valențelor activ-participative ale
metodei didactice ce a fost aleasă ca factor de progres.

4.4.1.Etapa constatativă

Primul pas în realizarea efectivă a cercetării constă în testarea nivelului cunoștințelor de


HTML a elevilor participanți, fără aceste cunoștințe neputându-se trece la etapa experimentală.
Motivul pentru care în cercetare au fost incluși elevi din clasele X-XII a fost necesitatea
deținerii unui volum minim de cunoștințe HTML de către elevii participanți, pe care aceștia și
le-au însușit în clasa a IX-a.
De asemenea, deoarece un obiectiv al cercetării prezentei lucrări este acela de a
demonstra că, prin studierea unei discipline care prezintă interes. și prin utilizarea unor metode
moderne de educație, va fi trezit și menținut interesul elevilor față de procesul de învățământ,
am aplicat participanților și un chestionar din care să pot observa interesul acestora față de
procesul de învățământ.
Obiectivul acestei etape a fost stabilirea nivelului de cunoștințe teoretice și practice,
cunoștințe necesare pentru trecerea la etapa a doua.
Testele referitoare la cunoștințele de HTML au fost atât teoretice cât și practice.
61
TEST DE EVALUARE 1

1. Care din următoarele etichete reprezintă marcajul de specificare al documentului de


tip hipertext:
a) <Body>
b) <Head>
c) <Html>
2. Care dintre următoarele etichete reprezintă marcajul de specificare al corpului
documentului de tip hipertext:
a) <Head>
b) <Html>
c) <Body>
3. Care din următorii parametrii sunt folosiți pentru colorarea fundalului paginii web:
a) background
b) bgcolor
c) align
4. Care din următoarele etichete sunt folosite pentru formatarea textului (font-ului) stil
îngroșat:
a. <P>
b. <B>
c. <title>
5. Care din următoarele etichete sunt folosite pentru alegerea tipului de font:
a. <Font face=”.....
b. <Hn>
c. <Center>
6. Care din următoarele opțiuni sunt folosite pentru alegerea dimensiunilor fonturilor:
a. color
b. size
c. align

62
7. Pentru a scrie cuvântul "clasa" cu caractere îngroşate şi înclinate (italice) se va folosi
forma:
a) <b><i>clasa</b></i>
b) <bi>clasa</bi>
c) <i><b>clasa</i></b>
8. Atributele etichetei <Font> sunt:
a) Face, color, width
b) Face, BG
c) Face, size, color
9. Eticheta <BR> are ca efect:
a) alinierea unui paragraf
b) trecerea la o linie noua
c) terminarea unui rând

TEST DE EVALUARE 2

1. Eticheta <A HREF = „URL”> creează:


a) afișarea aplecata a textului
b) o hiperlegătură
c) o listă neordonată
d) un titlu în cadrul antetului documentului HTML
2. Eticheta <HR> are ca efect...
a) trasarea unei linii orizontale
b) trasarea unei linii verticale
c) terminarea unui rând
d) definirea unei celule în cadrul unui tabel
3. Eticheta care determina afisarea unui text pe bara de stare a navigatorului este:
a) <TITLE>
b) <TT>
c) nu exista un asemenea marcaj
d) <H6>
63
4. Eticheta <FORM> este folosită pentru a...
a) afişa un text cu strălucire
b) termina rândul în poziţia în care apare
c) trasa o linie verticală
d) pentru a crea un formular
5. Introducerea unui element al unei liste se face prin eticheta...
a) <DT:
b) <BR>
c) <LT>
d) <LI
6. Eticheta <TR > este utilizată pentru...
a) a marca începutul unei pagini
b) a marca începutul unui paragraf
c) a marca crearea unui rând într-un tabel
d) a marca începutul unei secţiuni din document
7. Eticheta <OL> este folosit pentru a defini...
a) o listă numerotată
b) o lista nenumerotată
c) o linie orizontală
d) un obiect înglobat în documentul HTML
8. Stilurile logice...
a) indică navigatorului în mod clar cum să afişeze porţiunea marcată
b) indică navigatorului ce reprezintă porţiunea marcată
c) indică navigatorului tipul de font utilizat la afişarea documentului
d) indică navigatorului ce definiţie de stil să utilizeze la afişarea documentului
9. Marcajul <DFN> este utilizat pentru...
a) a introduce un citat
b) a introduce o definiţie de stil
c) introducerea unei definiţii sau a unui cuvânt ce urmează a fi definit

64
TEST INIȚIAL
LUCRARE PRACTICĂ 1

1. Realizați o pagină web cu următorul conținut:

65
2. Realizați următoarea pagina web

Se respectă următoarele specificații:


Culoare fundal: #FFFFCC
Titlu:
culoare font::#8B008B, dimensiune font: 20 pt
Denumire liste:
culoare font: #9932CC, dimensiune font:15 pt
Elemente liste
culoare font: #FF8C00, dimensiune font: 10 pt
Dimensiune imagine: height=100, width=200

66
TEST INIȚIAL
LUCRARE PRACTICĂ 1

Realizați o pagină web după următorul model, respectând următoarele cerințe:

 titlul paginii va fi : Iarna


 pentru titlul paginii utilizați marcajul nivelului 1 de titlu,
 Fontul folosit pentru scrierea textului sa fie de culoare neagră, dimensiunea 4.
 Creați trei blocuri distincte in structura documentului, unul pentru text, altul pentru
imagini și unul pentru listă.
 Salvați pagina cu numele pagina_de_iarnă.html

67
Rezultatele testelor aplicate se regăsesc în tabelul următor:

EVALUARE EVALUARE
Nr . Subiecți TEORETICĂ PRACTICĂ
curent
Media Media
Test 1 Test 2 TP1 TP2
aritm. aritm.
1. A.S. 8 8 8,00 8 7 7,50

2. B.C. 7 8 7,50 7 7 7,00

3. R.B. 8 9 8,50 8 8 8,00

4. D.M. 8 7 7,50 7 8 7,50

5. G.E. 6 7 6,50 7 7 7,00

6. J.A. 8 7 7,50 8 8 8,00

7. R.S. 7 9 8,00 7 8 7,50

8. T.V. 8 8 8,00 7 7 7,00

9. B.C. 8 8 8,00 8 7 7,50

10. C.S. 7 8 7,50 7 8 7,50

11. C.T. 7 7 7,00 7 8 7,50

12. E.V. 9 8 8,50 9 7 8,00

13. I.M 8 7 7,50 7 7 7,00

14. M.I 7 8 7,50 8 9 8,50

15. N.O. 7 7 7,00 7 8 7,50

16 P.L. 8 9 8,50 9 8 8,50

17 T.E. 8 7 7,50 8 9 8,50

Media aritmetică
Media aritmetică teste teoretice 7,68 7,65
teste practice

68
În urma centralizării rezultatelor, am întocmit graficul comparativ al rezultatelor la cele
două teste teoretice:

REZULTATE TESTE TEORETICE


9 9 9 9
9
88 8 8 8 8 88 88 8 8 8 8 8 8
8
7 7 7 7 7 7 77 7 7 77 7
7
6
6

0
A.S. B.C. R.B. D.M. G.E. J.A. R.S. T.V. B.C. C.S. C.T. E.V. I.M M.I N.O. P.L. T.E.

Test 1 Test 2

si un grafic care să reflecte mediile aritmetice ale celor două teste:

MEDIILE ARITMETICE ALE TESTELOR


TEORETICE
8,50 8,50 8,50
8,00 8,00 8,00 8,00
7,50 7,50 7,50 7,50 7,50 7,50 7,50
7,00 7,00
6,50

A.S. B.C. R.B. D.M. G.E. J.A. R.S. T.V. B.C. C.S. C.T. E.V. I.M M.I N.O. P.L. T.E.

69
Pentru rezultatele testelor practice am întocmit un grafic care să reprezinte comparativ
rezultatele celor două teste:

REZULTATE TESTE PRACTICE


9 9 9 9
9 8 88 8 88 8 8 8 8 8 8 8 8
8 7 77 7 77 7 77 7 7 7 7 77 7
7
6
5
4
3
2
1
0
A.S. B.C. R.B. D.M. G.E. J.A. R.S. T.V. B.C. C.S. C.T. E.V. I.M M.I N.O. P.L. T.E.

Test 1 Test 2

și un grafic care reprezintă mediile aritmetice ale celor două teste pentru fiecare elev:

MEDIILE ARITMETICE ALE TESTELOR


PRACTICE
8,50 8,50 8,50
8,00 8,00 8,00
7,50 7,50 7,50 7,50 7,50 7,50 7,50
7,00 7,00 7,00 7,00

A.S. B.C. R.B. D.M. G.E. J.A. R.S. T.V. B.C. C.S. C.T. E.V. I.M M.I N.O. P.L. T.E.

70
4.4.2. Etapa experimentală

După centralizarea și reprezentarea grafică a rezultatelor testelor aplicate în etapa


constatativă am început etapa experimentală, desfășurată pe perioada noiembrie 2013 – mai
2014. Această etapă este etapa principală a cercetării, activitățile desfășurate în cadrul ei fiind
direct implicate în realizarea scopului cercetării – realizarea aplicației.
Obiectivele acestei etape sunt:
 consolidarea cunoștințelor HTML și aplicarea acestora pentru crearea
șablonului aplicației web
 însușirea de cunoștințe noi, necesare pentru crearea unei aplicații web dinamice
 crearea aplicației propriu-zise
Primele activități ale acestei etape au fost cele premergătoare creării unui șablon pentru
aplicația web care urma să fie creată. Având la bază cunoștințele HTML ale elevilor, am schițat
structura și conținutul site-ului și am stabilit anumite repere cu privire la aspect și la așezarea
în pagină.
Am convenit ca site-ul să aibă patru pagini:
 Acasă
 Profesori
 Oferta școlii
 Activități
urmând ca acestea, după stabilirea structurii și a aspectului, să fie realizate de fiecare elev în
parte.
Pentru realizarea șablonului, am folosit un document HTML și o foaie de stiluri. În
documentul HTML am specificat blocurile de text care vor alcătui pagina cu etichetele <DIV>
… </DIV> și le-am identificat pe fiecare printr-un nume, pentru a le putea aplica stiluri diferite
în foaia de stiluri. În foaia de stiluri am folosit atribute pentru: dimensiunea elementelor( lățimea
), poziția fața de celelalte elemente (în cazul elementelor ”plutitoare”), stabilirea grosimii și
culorii chenarelor, și atributul clear:both, obligatoriu folosit după elemente care au atributul
float, pentru a forța elementul sa rămână în poziția stabilită. De asemenea, am folosit și atributul
de colorare al fundalului, pentru a colora diferit fiecare element creat cu < DIV > Ambele fișiere
au fost salvate în același folder.

71
Legătura documentului cu foaia de stiluri se face cu ajutorul etichetei:
<link rel="stylesheet" href="numele_foii.css" type="text/css" />

Fișierul sablon.html

<html>
<head>
<link rel="stylesheet" href="stiluri.css" type="text/css" />
<title>Sablon</title>
</head>
<body>
<div id="antet">
<div id="logo">
<p>LOGO</p>
</div>
<div id="descriere">
<p>DESCRIERE</p>
</div>
</div>
<div id="navbar">
<p>BARA DE NAVIGARE</p>
</div>
<div id="continut">
<div id="continut_principal">
<p>CONTINUT PRINCIPAL</p>
</div>
<div id="bara_laterala">
<p>BARA LATERALA</p>
</div>
</div>
<div id="subsol">
<p>SUBSOL</p>

72
</div>
</body>
</html>

Fișierul stiluri ccs determină dimensiunile și pozițiile fiecărui bloc de text creat cu
fișierul sablon.html:
body { width= 900px;
margin: 0px;
padding: 0px;
background: #FFFF66;
font-family: Calibri, Tahoma, Arial;
}
#antet { width: 900px;
background: #fff;
margin: 0px auto 0px auto;
border: 1px solid #000;
clear:both;
}
#logo { width: 400px;
background: #FF9900;
float:left;
border: 1px solid #000;
}
#descriere { width: 400px;
background: #FF9900;
float:right;
border: 1px solid #000;
}
#navbar { width: 900px;
background: #FFCCCC;
margin: 0px auto 0px auto;
border: 1px solid #000;
clear:both;
}

73
#continut { width: 900px;
background: #FFFF66;
margin: 0px auto 0px auto;
border: 1px solid #000;
clear:both;
}
#continut_principal { width: 500px;
height:300px;
background: #CC9999;
float:left;
border: 1px solid #000;
}
#bara_laterala { width: 330px;
height:300px;
background: #CC9999;
float: right;
border: 1px solid #000;
}
#subsol { width: 900px;
background: #FF9900;
margin: 0px auto 0px auto;
border: 1px solid #000;
clear:both;
}

Rezultatul vizualizării șablonului în browser:

74
75
Pornind de la acest șablon, fiecare elev a creat paginile site-ului, pe care le-a salvat pe
calculatorul pe care lucra în folderul site html. Fișierele corespunzătoare celor patru pagini ale
site-ului și pagina de stiluri sunt:
 index.html
 profesori.html
 oferta.html
 implicare.html
 stiluri.css

index.html: bara de meniuri care apare în antetul și subsolul paginii a fost creatp ca o
listă neordonată; legătura între paginile site-ului s-a făcut prin etichete <A HREF…..>….</A>;
Între pagina index și celelalte pagini, diferențele sunt doar de conținut, toate paginile incluzând
elementele care apar în antetul și subsolul fiecărei pagini

<html>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="index,follow" />
<link rel="stylesheet" href="stiluri.css" type="text/css" />
<title>Liceul tehnologic Mihai Novac</title>
</head>
<body>
<div id="antet">
<div id="logo">
<h1>LICEUL TEHNOLOGIC MIHAI NOVAC</h1>
</div>
<div id="descriere">
<h3><b><i>Liceul tehnologic Mihai Novac, o școală pentru viitorul tău!</i></b></h3>
</div>
</div>
<div id="navbar">

76
<div class="wrapper">
<ul class="navigare">
<li><a href="index.html">Acasa</a></li>
<li><a href="profesori.html">Profesori</a></li>
<li><a href="oferta.html">Oferta scolii</a></li>
<li><a href="implicare.html">Activitati</a></li>
</ul>
</div>
</div>
<div id="continut">
<div id="continut_principal">
<p>Liceul Tehnologic "Mihai Novac" Oravita, fostul Grup Scolar Agricol Oravita, este situat in
orasul Oravita, judetul Caras-Severin, pe strada Closca, nr. 10 si pregateste forta de munca pentru
domeniile agricultura si economie, asigurand personal calificat pentru judetele Caras-Severin si
Timis.</p>
<p>Liceul tehnologic "Mihai Novac" asigura, prin oferta scolara calificări pentru meseriile cerute
pe piata muncii. Dispune de un colectiv de cadre didactice calificate si de două cladiri renovate, in care
demersurile scolare se desfasoară in cele mai bune conditii.</p>
<p>De asemenea, in decurs de maxim 1 an se vor termina lucrarile la campusul scolar si la incă
un corp de cladire, ceea ce va determina o mai buna organizare a procesului instructiv educativ, elevii
vor beneficia de laboratoare de specialitate, ateliere pentru desfăsurarea instruirii practice si sala de
sport</p>
</div>
<div id="bara_laterala">
<h3>Legături utile</h3>
<p> <a href="http://www.edu.ro">edu.ro</a></p>
<p><a href="http://www.didactic.ro">didactic.ro</a></p>
<p><a href="http://www.referat.ro">referat.ro </a></p>
</div>
</div>
<div id="subsol">
<div class="wrapper">
<ul class="navigare">
<li><a href="index.html">Acasa</a></li>

77
<li><a href="profesori.html">Profesori</a></li>
<li><a href="oferta.html">Oferta scolii</a></li>
<li><a href="implicare.html">Activitati</a></li>
</ul>
</div>
</body>
</html>

profesori.html: pentru ordonarea profesorilor pe discipline, am folosit un tabel, în


celulele căruia am introdus liste neordonate:
<html>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="index,follow" />
<link rel="stylesheet" href="stiluri.css" type="text/css" />
<title>Liceul tehnologic Mihai Novac</title>
</head>
<body>
<div id="antet">
<div id="logo">
<h1>LICEUL TEHNOLOGIC MIHAI NOVAC</h1>
</div>
<div id="descriere">
<h3><b><i>Liceul tehnologic Mihai Novac, o scoala pentru viitorul tau!</i></b></h3>
</div>
</div>
<div id="navbar">
<div class="wrapper">
<ul class="navigare">
<li><a href="index.html">Acasa</a></li>
<li><a href="profesori.html">Profesori</a></li>
<li><a href="oferta.html">Oferta scolii</a></li>
<li><a href="implicare.html">Activitati</a></li>
</ul>
78
</div>
</div>
<div id="continut">
<div id="lista">
<table align="center", cellpadding="30" >
<tr>
<td valign="top" >
<p><b> Limba romana:</b>
<UL>
<LI>Bodnea Daniela</LI>
<LI>Cerbu Alina</LI>
<LI>Ciublea Ica</LI>
</UL>
</p>
<p><b> Limba franceza: </b>
<UL>
<LI>Giurici Ionela</LI>
<LI>Romanu Dorina</LI>
</UL>
</p>
<p><b> Chimie: </b>
<UL>
<LI>Bompa Radu</LI>
</UL>
</p>
<p><b> Geografie: </b>
<UL>
<LI>Arsenie Ancuta</LI>
</UL>
</p>
</td>
<td valign="top" >
<p> <b>Discipline economice: </b>
<UL>

79
<LI>Bogdan Olivia</LI>
<LI>Botos Valerica</LI>
<LI>Ciobanu Ionela</LI>
<LI>Semen Cristina</LI>
</UL>
</p>
<p><b> Limba engleza: </b>
<UL>
<LI>Balan Lacriniara</LI>
<LI>Totorean Adriana</LI>
</UL>
</p>
<p><b> Istorie: </b>
<UL>
<LI>Hritcu Cristina</LI>
<LI>Sodanca Cristian</LI>
</UL>
</p>
<p><b> Biologie: </b>
<UL>
<LI>Garovat Mihaela</LI>
</UL>
</p>
</td>
<td valign="top">
<p><b> Agricultura: </b>
<UL>
<LI>Barbulescu Lucia</LI>
<LI>Maghiar Violeta</LI>
<LI>Miclea Eugenia</LI>
<LI>Murgu Diana</LI>
</UL>
</p>
<p><b> Matematica: </b>

80
<UL>
<LI>Cerbu Enache</LI>
<LI>Ticu Maria</LI>
</UL>
</p>
<p><b> Educatie fizica: </b>
<UL>
<LI>Anoca Emilian</LI>
</UL>
</p>
<p><b> Fizica: </b>
<UL>
<LI>Iovita Aristita</LI>
</UL>
</p>
</p>
</td>
<td valign="top">
<P> <b>Discipline tehnice: </b>
<UL>
<LI>Balea Ioan</LI>
<LI>Barbulescu Dimiterie</LI>
<LI>Garcu Deli</LI>
</UL>
</p>
<p><b> Protectia mediului: </b>
<UL>
<LI>Bogdan Daniel</LI>
<LI>Muntean Lavinia</LI>
</UL>
</p>
<p><b> Tehnologia informatiei: </b>
<UL>
<LI>Abid Daniela</LI>

81
</UL>
</p>
<p><b> Economie: </b>
<UL>
<LI>Sinion Lavinia</LI>
</UL>
</p>
<p><b> Religie: </b>
<UL>
<LI>Bistrean Corina</LI>
</UL>
</p>
</td>
</tr>
</table>
</div>
</div>
<div id="subsol">
<div class="wrapper">
<ul class="navigare">
<li><a href="index.html">Acasa</a></li>
<li><a href="profesori.html">Profesori</a></li>
<li><a href="oferta.html">Oferta scolii</a></li>
<li><a href="implicare.html">Activitati</a></li>
</ul>
</div>
</body>
</html>

oferta.html: conținutul a fost introdus prin intermediul unui tabel

<html>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="X-UA-Compatible" content="IE=8" />

82
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="index,follow" />
<link rel="stylesheet" href="stiluri.css" type="text/css" />
<title>Liceul tehnologic Mihai Novac</title>
</head>
<body>
<div id="antet">
<div id="logo">
<h1>LICEUL TEHNOLOGIC MIHAI NOVAC</h1>
</div>
<div id="descriere">
<h3><b><i>Liceul tehnologic Mihai Novac, o scoala pentru viitorul tau!</i></b></h3>
</div>
</div>

<div id="navbar">
<div class="wrapper">
<ul class="navigare">
<li><a href="index.html">Acasa</a></li>
<li><a href="profesori.html">Profesori</a></li>
<li><a href="oferta.html">Oferta scolii</a></li>
<li><a href="implicare.html">Activitati</a></li>
</ul>
</div>
</div>
<div id="continut">
<div id="oferta">
<table align="center", cellpadding="10", width="100%" >
<tr align="center">
<td valign="center" width="50%" >
<p> Clasa a IX-a liceu, zi</p>
<b> FILIERA:</b> Tehnologica<br>
<b>PROFIL:</b> Resurse natrurale si protectia mediului<br>
<b> SPECIALIZARE: </b> Agricultura <br>

83
<b> NUMAR DE LOCURI: </b> 28<br>
</td>
<td valign="center" width="50%">
<p>Clasa a IX-a , liceu, zi</p>
<b> FILIERA:</b> Tehnologica<br>
<b> PROFIL:</b> Resurse natrurale si protectia mediului<br>
<b> SPECIALIZARE: </b> Protectia mediului<br>
<b> NUMAR DE LOCURI: </b> 28<br>
</td>
</tr>
<tr align="center">
<td valign="center" width="50%">
<p>Clasa a IX-a , liceu, zi</p>
<b>FILIERA:</b>Tehnologica<br>
<b>PROFIL:</b> Servicii<br>
<b> SPECIALIZARE:</b> Economic<br>
<b> NUMAR DE LOCURI:</b> 28<br>
</td>
<td valign="center" width="50%">
<p>Clasa a IX-a , liceu, zi</p>
<b> FILIERA:</b> Tehnologica<br>
<b>PROFIL: </b>Tehnic <br>
<b>SPECIALIZARE:</b> Mecanica<br>
<b>NUMAR DE LOCURI: </b> 28<br>
</td>
</tr>
</table>
</div>
</div>
<div id="subsol">
<div class="wrapper">
<ul class="navigare">
<li><a href="index.html">Acasa</a></li>
<li><a href="profesori.html">Profesori</a></li>

84
<li><a href="oferta.html">Oferta scolii</a></li>
<li><a href="implicare.html">Activitati</a></li>
</ul>
</div>
</body>
</html>

Implicare.html conținutul a fost separat în paragrafe.


<html>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta name="robots" content="index,follow" />
<link rel="stylesheet" href="stiluri.css" type="text/css" />
<title>Liceul tehnologic Mihai Novac</title>
</head>
<body>
<div id="antet">
<div id="logo">
<h1>LICEUL TEHNOLOGIC MIHAI NOVAC</h1>
</div>
<div id="descriere">
<h3><b><i>Liceul tehnologic Mihai Novac, o scoala pentru viitorul tau!</i></b></h3>
</div>
</div>
<div id="navbar">
<div class="wrapper">
<ul class="navigare">
<li><a href="index.html">Acasa</a></li>
<li><a href="profesori.html">Profesori</a></li>
<li><a href="oferta.html">Oferta scolii</a></li>
<li><a href="implicare.html">Activitati</a></li>
</ul>

85
</div>
</div>
<div id="continut">
<div id="activitate">
<p><b> Aproximativ 70 de elevi ai Liceului Tehnologic Mihai Novac , au ecologizat zona limitrofa
dinspre Greoni, intr-o actiune ce se înscrie in Saptamana altfel -Sa stii mai multe -Sa fii mai bun !</b><br>
Actiunea a fost organizata pentru clasele cu profil de resurse naturale si protectia mediului, care
si-au manifestat dorinta ca in cadrul saptamanii Saptamana altfel -Sa stii mai multe -Sa fii mai bun , sa
participe la o actiune de ecologizare, care sa fie in folosul comunitatii, incercand totodata sa traga un
semnal de alarma ca trebuie sa avem un mediu curat, pentru a putea duce o viata cat mai sanatoasa.
Actiunea se numeste Ecologizarea zonelor limitrofe din Oravita si se inscrie in programul saptamanii
altfel, si isi propune o mai buna constientizare, pentru întreaga comunitate, in vederea pastrarii si ingrijirii
spatiului verde, limitrof Oravitei. Totodata, prin actiunea de astazi, am ecologizat zona limitrofa dinspre
Greoni. , a declarat directorul adjunct al Liceului Tehnologic Mihai Novac , profesor Maghiar Violeta </p>
<p> <b>Vineri, cu ocazia Zilei Mondiale a Apei, la Liceul Tehnologic Mihai Novac din Oravita
au avut loc o serie de activitati educative.</b><br>
Elevii si cadrele didactice de la Liceul Tehnologic Mihai Novac din Oravita, au desfasurat vineri
o serie de activitati educative cu ocazia Zilei Mondiale a Apei. Activitatile s-au concretizat prin dezbateri,
prezentãri Power Point si concursuri tematice, sub coordonarea profesorilor de specialitate; prof. Maghiar
Violeta, prof. Miclea Eugenia si prof. Garovãt Mihaela. La finalul acestor activitati s-a desprins o concluzie,
si anume faptul cã fara apa, nu ar mai exista viata.</p>
<p><b>Liceul Tehnologic Mihai Novac din Oravita s-a alãturat campaniei Adoptã un parc , initiat
de portalul de stiri online Vocea Oravitei, adoptand joi 13 martie 2014, Parcul de la Complexul
Vechi.</b><br>
Elevi ai Liceului Tehnologic Mihai Novac au desfasurat joi 13 martie 2014, activitati de curatenie
si înfrumusetare a Parcului de la Complexul Vechi. Actiunea se desfasoara in cadrul campaniei Adopta
un parc , care isi propune, alaturi de unitatile de invatamant si societatile comerciale din Oravita, sa
efectueze lucrari de infrumusetare si curatenie, in parcurile orãvitene. La acestã campanie pentru Parcul
de la Complexul Vechi, s-au alaturat societatile comerciale: S.C LOR EVENTS S.R.L si S.C AUTO ALEX
S.R.L.</p>
<p><b>La Liceul Tehnologic Mihai Novac au fost organizate diverse activitati în perioada 17
martie 21 martie 2014, avand ca tema Saptamana Limbii Franceze .</b> <br>Activitatea principala a
acestei saptamani, a avut loc joi, cand a fost aniversata Ziua Internationala a Francofoniei. La manifestare
au participat elevi din scoalã, dar si cadre didactice ale scolii. Prin aceastã activitate pe care am

86
organizat-o anul acesta, La Francophonie -Un monde ouvert vers le monde , am urmarit suscitarea
interesului elevilor pentru limba, cultura si civilizatia francezã, precum si o mai buna motivare a elevilor
pentru a invãta cu placere limba franceza, ca ei sa constientizeze notiunea de francofonie si importanta
cunoasterii acestei limbi de circulatie internationala , a declarat organizatorul acestor activitati, profesor
Ionela Giurici. </p>
</div>

</div>
<div id="subsol">
<div class="wrapper">
<ul class="navigare">
<li><a href="index.html">Acasa</a></li>
<li><a href="profesori.html">Profesori</a></li>
<li><a href="oferta.html">Oferta scolii</a></li>
<li><a href="implicare.html">Activitati</a></li>
</ul>
</div>
</body>
</html>

Stiluri.css

body {
margin: 0px;
padding: 0px;
background: #FFFF66;
font-family: Calibri, Tahoma, Arial;
}
a { margin: 0; color: #660033; font-weight: bold; font-size: 16pt}
a:hover { color: #c7c7c7;}
p { color: #000; font-size =12px; }
h1{color:#B80000 }
h3{color:#700000 }
#antet { width: 1200px;

87
background: #FF9900;
margin: 0px auto 0px auto;
border: 1px solid #000;
clear:both;
}
#logo { width: 750px;
height:100px;
background: #FF9900;
float:left;
border: 0px ;
padding: 20px ;
text-align:center;
}
#descriere { width: 370px;
height:100px;
background: #FF9900;
float:right;
border: 0px ;
padding: 20px;
text-align:center;
}
#navbar { width: 1150px;
height:50px;
background: #FFCCCC;
margin: auto ;
border: 0px auto 0px auto;
clear:both;
overflow: hidden;
padding-left:50px;
}
.navigare { margin: 10px 0 0 0;
list-style-type: none;
padding: 0; }
.navigare li { display: inline;

88
margin: 0; }
.navigare li a { color: #660033;
text-decoration: none;
padding: 12px;
text-transform: uppercase}
.navigare li a:hover { background: #FFFFCC;
color: #000;
padding: 12px; }
#continut { width: 1200px;
background: #CCFFCC;
margin: 0px auto 0px auto;
border: 1px solid #000;
clear:both;
}
#continut_principal { width: 880px;
height:300px;
background: #CC9999;
float:left;
border: 0px ;
padding: 20px;
}
#continut_principal p{font-size: 20px;}
#lista { width: 1160px;
height:auto;
background: #CC9999;
float:left;
border: 0px ;
padding: 20px;
}
#lista p{font-size: 18px;
}
#lista p b{text-transform: uppercase; color: #990033; font-size:20px;}
#oferta{ width: 1160px;
height:auto;

89
background: #CC9999;
float:left;
border: 0px ;
padding: 20px;
}
#oferta {font-size: 18px;}
#oferta p{ color: #990033; font-size:24px;}
#oferta b{color: #990033; font-size:18px;}
#activitate{width: 1160px;
height:auto;
background: #CC9999;
float:left;
border: 0px ;
padding: 20px;
}
#activitate p{margin:15px; color:#660000;}
#bara_laterala { width: 240px;
height:300px;
background: #999999;
float: right;
border: 0px ;
text-align: center;
padding: 20px;
}
#subsol { width: 1180px;
height:50px;;
background: #FF9900;
margin: 0px auto 0px auto;
border: 0px auto 0px auto;
clear:both;
text-align: center;
padding:10px;
}
Fișierele vizualizate în browser:

90
Pagina ACASĂ

Pagina PROFESORI

91
Pagina OFERTA ȘCOLII

Pagina ACTIVITĂȚI

92
La acest moment al cercetării am evaluat munca depusă de fiecare elev ca test
intermediar. Rezultatele obținute de aceștia se regăsesc în tabelul următor:

EVALUARE
Nr . Subiecți
curent Test practic web HTML

1. A.S. 7

2. B.C. 7

3. R.B. 8

4. D.M. 8

5. G.E. 7

6. J.A. 8

7. R.S. 8

8. T.V. 8

9. B.C. 7

10. C.S. 8

11. C.T. 8

12. E.V. 7

13. I.M 8

14. M.I 9

15. N.O. 8

16 P.L. 8

17 T.E. 9

Media aritmetică
7,82
test

93
Rezultatele obținute sunt reflectate grafic în următoarea diagramă:

10
9 REZULTATE TEST WEB HTML
8
7
6
5
4
3
2
1
0
A.S. B.C. R.B. D.M. G.E. J.A. R.S. T.V. B.C. C.S. C.T. E.V. I.M M.I N.O. P.L. T.E.

Diagrama următoare prezintă rezultatele comparate cu media aritmetică.

REPREZENTAREA GRAFICĂ A TESTELOR


RELATIV LA MEDIA ARITMETICĂ
10
9
8
7
6
5
4
3
2
1
0
A.S. B.C. R.B. D.M. G.E. J.A. R.S. T.V. B.C. C.S. C.T. E.V. I.M M.I N.O. P.L. T.E.

MEDIA AR test web

94
Următoarea etapă a cercetării se ocupă de crearea aplicațiilor dinamice propriu zise.
Pentru aceasta, deoarece rezultatele nu pot fi vizualizate direct în browser ci au nevoie de un
server web pentru a fi interpretate, am ales să instalez pachetul XAMPP.
XAMPP este un pachet de programe free software, open source și cross-platform web
server, care constă în Apache HTTP Server, MySQL database și interpretoare pentru scripturile
scrise în limbajele de programare PHP și Perl. Acest program este lansat sub termenii licenței
GNU și acționează ca un web server capabil de a servi pagini dinamice.
XAMPP este disponibil pentru Microsoft Windows, Linux, Solaris, și Mac OS X, și este
utilizat în principal pentru dezvoltarea proiectelor web. Acest software este util pentru crearea
paginilor dinamice, utilizând limbaje de programare ca PHP, JSP, Servlets.
Pentru a instala XAMPP, trebuie descărcat kitul de instalare în unul din formatele ZIP,
TAR, 7z sau EXE, fără a fi nevoie de modificarea configurării componentelor instalate.
XAMPP este actualizat cu regularitate pentru toate componentele: Apache/MySQL/PHP și
Perl. El vine, de asemenea, cu alte module, cum ar fi OpenSSL și phpMyAdmin.
XAMPP poate fi descărcat de la adresa https://www.apachefriends.org/ro/index.html,
Versiunea curentă (și cea folosită în această lucrare) este v1.8.3(PHP 5.5.11).

95
XAMPP se autoextrage şi scriptul de setare setup_xampp.bat va fi lansat automat.

După instalare, se lansează în execuție XAMPP Control Panel și se pornesc serviciile


Apache şi MySQL.

96
Se deschide browser-ul și în linia URL se tastează : http://127.0.0.1/ sau
http://localhost/; fereastra de mai jos confirmă faptul că instalarea s-a efectuat cu succes.

Se alege limba și apare următoarea fereastră, cu toate facilitățile oferite de pachet:

97
Odată instalat pachetul XAMPP se poate trece la crearea unei aplicații dinamice,
folosind PHP.
Primul lucru care trebuia făcut a fost prezentarea noilor cunoștințe, a limbajului PHP.
Pentru aceasta am folosit aplicația EduIntegrator, platforma Glasscubes și materiale individuale
de studiu.
Datorită timpului limitat alocat cercului, am ales soluția platformei Glasscubes, care mi-
a permis să postez materialele într-un spațiu de lucru special creat pentru cercul de T.I.C, de
unde elevii participanți, pe baza unui cont realizat pe platformă, puteau să descarce materialele
pentru studiu individual.
Am consolidat cunoștințele teoretice ale elevilor prin aplicații practice, testând fiecare
exemplu, și am propus sarcini pentru rezolvare individuală, pentru ca elevii să-și dezvolte
abilitățile de a crea secvențe de cod PHP funcționale.
După însușirea cunoștințelor, am precut la realizarea părții practice a proiectului.
Într-o primă fază, am folosit site-ul creat, transformându-l într-un site dinamic, pentru
ca elevii să se familiarizeze cu scripturile PHP, fără a mai fi nevoie să rescrie scripturile HTML.
Pentru aceasta, primul pas a fost separarea porțiunilor de antet și subsol din fișierul
index.html, salvarea acestora ca fișiere php și includerea acestora în toate paginile site-ului, cu
ajutorul funcției include();
Fișierul antet.php
<html>
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="index,follow" />
<link rel="stylesheet" href="stiluri.css" type="text/css" />
<title>Liceul tehnologic Mihai Novac</title>
</head>
<body>
<div id="antet">
<div id="logo">
<h1>LICEUL TEHNOLOGIC MIHAI NOVAC</h1>
</div>
<div id="descriere">

98
<h3><b><i>Liceul tehnologic Mihai Novac, o școală pentru viitorul tău!</i></b></h3>
</div>
</div>
<div id="navbar">
<div class="wrapper">
<ul class="navigare">
<li><a href="index.php">Acasa</a></li>
<li><a href="profesori.php">Profesori</a></li>
<li><a href="oferta.php">Oferta scolii</a></li>
<li><a href="implicare.php">Activitati</a></li>
</ul>
</div>
</div>
Reprezintă acea parte din fișierul index.html, care cuprinde etichetele de început al
paginii web și bara cu meniuri.
Fișierul subsol.php este acea parte din fișierul index.html care încheie pagina web:
<div id="subsol">
<div class="wrapper">
<ul class="navigare">
<li><a href="index.php">Acasa</a></li>
<li><a href="profesori.php">Profesori</a></li>
<li><a href="oferta.php">Oferta scolii</a></li>
<li><a href="implicare.php">Activitati</a></li>
</ul>
</div>
</body>
</html>

Separînd antetul și subsolul paginii, le putem include apoi în fiecare pagină a site-ului:

fișierul index.php:
<?php include('antet.php'); ?>
<div id="continut">
<div id="continut_principal">

99
<p>Liceul Tehnologic "Mihai Novac" Oravita, fostul Grup Scolar Agricol Oravita, este situat in
orasul Oravita, judetul Caras-Severin, pe strada Closca, nr. 10 si pregateste forta de munca pentru
domeniile agricultura si economie, asigurand personal calificat pentru judetele Caras-Severin si
Timis.</p>
<p>Liceul tehnologic "Mihai Novac" asigura, prin oferta scolara calificări pentru meseriile cerute
pe piata
muncii. Dispune de un colectiv de cadre didactice calificate si de două cladiri renovate, in care
demersurile scolare se desfasoară in cele mai bune conditii.</p>
<p>De asemenea, in decurs de maxim 1 an se vor termina lucrarile la campusul scolar si la incă
un corp de cladire, ceea ce va determina o mai buna organizare a procesului instructiv educativ, elevii
vor beneficia de laboratoare de specialitate, ateliere pentru desfăsurarea instruirii practice si sala de
sport</p>
</div>
<div id="bara_laterala">
<h3>Legături utile</h3>
<p> <a href="http://www.edu.ro">edu.ro</a></p>
<p><a href="http://www.didactic.ro">didactic.ro</a></p>
<p><a href="http://www.referat.ro">referat.ro </a></p>
</div>
</div>
<?php include('subsol.php'); ?>

Fișierul profesori.php

<?php include('antet.php'); ?>


<div id="continut">
<div id="lista">
<table align="center", cellpadding="30" >
<tr>
<td valign="top" >
<p><b> Limba romana:</b>
<UL>
<LI>Bodnea Daniela</LI>
<LI>Cerbu Alina</LI>
<LI>Ciublea Ica</LI>
100
</UL>
</p>
<p><b> Limba franceza: </b>
<UL>
<LI>Giurici Ionela</LI>
<LI>Romanu Dorina</LI>
</UL>
</p>
<p><b> Chimie: </b>
<UL>
<LI>Bompa Radu</LI>
</UL>
</p>
<p><b> Geografie: </b>
<UL>
<LI>Arsenie Ancuta</LI>
</UL>
</p>
</td>
<td valign="top" >
<p> <b>Discipline economice: </b>
<UL>
<LI>Bogdan Olivia</LI>
<LI>Botos Valerica</LI>
<LI>Ciobanu Ionela</LI>
<LI>Semen Cristina</LI>
</UL>
</p>
<p><b> Limba engleza: </b>
<UL>
<LI>Balan Lacriniara</LI>
<LI>Totorean Adriana</LI>
</UL>
</p>

101
<p><b> Istorie: </b>
<UL>
<LI>Hritcu Cristina</LI>
<LI>Sodanca Cristian</LI>
</UL>
</p>
<p><b> Biologie: </b>
<UL>
<LI>Garovat Mihaela</LI>
</UL>
</p>
</td>
<td valign="top">
<p><b> Agricultura: </b>
<UL>
<LI>Barbulescu Lucia</LI>
<LI>Maghiar Violeta</LI>
<LI>Miclea Eugenia</LI>
<LI>Murgu Diana</LI>
</UL>
</p>
<p><b> Matematica: </b>
<UL>
<LI>Cerbu Enache</LI>
<LI>Ticu Maria</LI>
</UL>
</p>
<p><b> Educatie fizica: </b>
<UL>
<LI>Anoca Emilian</LI>
</UL>
</p>
<p><b> Fizica: </b>
<UL>

102
<LI>Iovita Aristita</LI>
</UL>
</p>
</p>
</td>
<td valign="top">
<P> <b>Discipline tehnice: </b>
<UL>
<LI>Balea Ioan</LI>
<LI>Barbulescu Dimiterie</LI>
<LI>Garcu Deli</LI>
</UL>
</p>
<p><b> Protectia mediului: </b>
<UL>
<LI>Bogdan Daniel</LI>
<LI>Muntean Lavinia</LI>
</UL>
</p>
<p><b> Tehnologia informatiei: </b>
<UL>
<LI>Abid Daniela</LI>
</UL>
</p>
<p><b> Economie: </b>
<UL>
<LI>Sinion Lavinia</LI>
</UL>
</p>
<p><b> Religie: </b>
<UL>
<LI>Bistrean Corina</LI>
</UL>
</p>

103
</td>
</tr>
</table>
</div>
</div>
<?php include('subsol.php'); ?>

Fișierul oferta.php

<?php include('antet.php'); ?>


<div id="continut">
<div id="oferta">
<table align="center", cellpadding="10", width="100%" >
<tr align="center">
<td valign="center" width="50%" >
<p> Clasa a IX-a liceu, zi</p>
<b> FILIERA:</b> Tehnologica<br>
<b>PROFIL:</b> Resurse natrurale si protectia mediului<br>
<b> SPECIALIZARE: </b> Agricultura <br>
<b> NUMAR DE LOCURI: </b> 28<br>
</td>
<td valign="center" width="50%">
<p>Clasa a IX-a , liceu, zi</p>
<b> FILIERA:</b> Tehnologica<br>
<b> PROFIL:</b> Resurse natrurale si protectia mediului<br>
<b> SPECIALIZARE: </b> Protectia mediului<br>
<b> NUMAR DE LOCURI: </b> 28<br>
</td>
</tr>
<tr align="center">
<td valign="center" width="50%">
<p>Clasa a IX-a , liceu, zi</p>
<b>FILIERA:</b>Tehnologica<br>
104
<b>PROFIL:</b> Servicii<br>
<b> SPECIALIZARE:</b> Economic<br>
<b> NUMAR DE LOCURI:</b> 28<br>
</td>
<td valign="center" width="50%">
<p>Clasa a IX-a , liceu, zi</p>
<b> FILIERA:</b> Tehnologica<br>
<b>PROFIL: </b>Tehnic <br>
<b>SPECIALIZARE:</b> Mecanica<br>
<b>NUMAR DE LOCURI: </b> 28<br>
</td>
</tr>
</table>
</div>
</div>
<?php include('subsol.php'); ?>

Fișierul implicare.php

<?php include('antet.php'); ?>


<div id="continut">
<div id="activitate">
<p><b> Aproximativ 70 de elevi ai Liceului Tehnologic „Mihai Novac”, au ecologizat zona limitrofa
dinspre Greoni, intr-o actiune ce se înscrie in „Saptamana altfel -Sa stii mai multe -Sa fii mai bun”!</b><br>
Actiunea a fost organizata pentru clasele cu profil de resurse naturale si protectia mediului, care
si-au manifestat dorinta ca in cadrul saptamanii „Saptamana altfel -Sa stii mai multe -Sa fii mai bun”, sa
participe la o actiune de ecologizare, care sa fie in folosul comunitatii, incercand totodata sa traga un
semnal de alarma ca trebuie sa avem un mediu curat, pentru a putea duce o viata cat mai sanatoasa.
„Actiunea se numeste ”Ecologizarea zonelor limitrofe din Oravita” si se inscrie in programul saptamanii
altfel, si isi propune o mai buna constientizare, pentru întreaga comunitate, in vederea pastrarii si ingrijirii
spatiului verde, limitrof Oravitei. Totodata, prin actiunea de astazi, am ecologizat zona limitrofa dinspre
Greoni.”, a declarat directorul adjunct al Liceului Tehnologic „Mihai Novac”, profesor Maghiar Violeta </p>
<p> <b>Vineri, cu ocazia Zilei Mondiale a Apei, la Liceul Tehnologic „Mihai Novac” din Oravita
au avut loc o serie de activitati educative.</b><br>

105
Elevii si cadrele didactice de la Liceul Tehnologic „Mihai Novac” din Oravita, au desfasurat vineri
o serie de activitati educative cu ocazia Zilei Mondiale a Apei. Activitatile s-au concretizat prin dezbateri,
prezentări Power Point si concursuri tematice, sub coordonarea profesorilor de specialitate; prof. Maghiar
Violeta, prof. Miclea Eugenia si prof. Garovăt Mihaela. La finalul acestor activitati s-a desprins o concluzie,
si anume faptul că fara apa, nu ar mai exista viata.</p>
<p><b>Liceul Tehnologic „Mihai Novac” din Oravita s-a alăturat campaniei „Adoptă un parc”,
initiat de portalul de stiri online Vocea Oravitei, adoptand joi 13 martie 2014, Parcul de la Complexul
Vechi.</b><br>
Elevi ai Liceului Tehnologic „Mihai Novac” au desfasurat joi 13 martie 2014, activitati de curatenie
si înfrumusetare a Parcului de la Complexul Vechi. Actiunea se desfasoara in cadrul campaniei „Adopta
un parc”, care isi propune, alaturi de unitatile de invatamant si societatile comerciale din Oravita, sa
efectueze lucrari de infrumusetare si curatenie, in parcurile orăvitene. La acestă campanie pentru Parcul
de la Complexul Vechi, s-au alaturat societatile comerciale: S.C LOR EVENTS S.R.L si S.C AUTO ALEX
S.R.L.</p>
<p><b>La Liceul Tehnologic „Mihai Novac” au fost organizate diverse activitati în perioada 17
martie – 21 martie 2014, avand ca tema „Saptamana Limbii Franceze”.</b> <br>Activitatea principala a
acestei saptamani, a avut loc joi, cand a fost aniversata Ziua Internationala a Francofoniei. La manifestare
au participat elevi din scoală, dar si cadre didactice ale scolii. „Prin această activitate pe care am
organizat-o anul acesta, „La Francophonie -Un monde ouvert…vers le monde”, am urmarit suscitarea
interesului elevilor pentru limba, cultura si civilizatia franceză, precum si o mai buna motivare a elevilor
pentru a invăta cu placere limba franceza, ca ei sa constientizeze notiunea de francofonie” si importanta
cunoasterii acestei limbi de circulatie internationala”, a declarat organizatorul acestor activitati, profesor
Ionela Giurici. </p>
</div>
</div>
<?php include('subsol.php'); ?>

Pentru a putea vizualiza fișierele php în browser, folderul site-ului trebuie copiat in
subfolderul htdocs al folderului xammp, de pe discul C. Odată terminată această operație, se
scrie în linia URL: http://127.0.0.1/nume_folder sau http://localhost/nume_folder( în cazul de
față http:??localhost/sitehtmlphp); la apăsarea tastei Enter, browserul afișează fișierul
index.php din folderul respectiv:

106
Atât prima pagină cât și celelalte sunt identice cu cele create cu HTML.
Următoarea etapă a cercetării a constat în realizarea unei aplicații care să manipuleze,
prin intermediul codului PHP și a comenzilor SQL, date dintr-o bază de date.
Primul pas a fost construirea unui șablon, pentru ca elevii să se familiarizeze cu modul
de lucru. Fișierele acestuia sunt:
 antet.php
<html>
<head>
<title>SABLON</title>
<link rel="stylesheet" href="stil.css">
</head>
<body>
<div id="container">

107
<h1>Sablon</h1>

<div id="navigare">
<ul>
<li><a href="index.php">home</a></li>
<li><a href="pagina_afisare.php">pagina</a></li>
</ul>
</div>

 subsol.php
</div>
<div id="subsol">

<p>inserati ce doriti in subsol</p>


</div>
</body>
</html>
 index.php
<?php include('antet.php'); ?>
<?php include('pagina_afisare.php'); ?>
<?php include('subsol.php'); ?>
 pagina_afisare.php
<h1> Titlu- aici poti insera titlul paginii</h1>
<br>
<br>
<br>
<p> Continut – aici va fi continutul paginii</p>
 stil.ccs
body {
margin: 50px 70px 20px 70px;
background: #222;
padding: 20px;
font-family: Arial, Tahoma, Verdana, sans-serif;
}
108
#container {
width: 960px;
height:350px;
background: #fff;
margin: 20px 0 0 20px;
padding: 20px;
}
#navigare {
background: #000;
color: #fff;
overflow: hidden;
clear: both;
height: 36px;
margin: 20px 0;
}
#navigare a {
color: #fff;
}
#navigare a:hover {
color: #000;
}
#navigare ul {
margin: 9px 0;
padding: 0;
list-style-type: none;
}
#navigare ul li {
display: inline;
}
#navigare ul li a {
padding: 10px 15px;
text-decoration: none;
}
#navigare ul li a:hover {

109
background: #e4e4e4;
}
#subsol {
width: 960px;
height:100px;
background: #fff;
overflow: hidden;
margin-top:350px;
margin: 20px 0 0 20px;
padding: 20px;
border-top: 4px solid #000;
}
Șablonul poate fi customizat după dorința fiecărui utilizator. Singurul lucru care rămâne
de făcut este personalizarea fișierului pagina_afisare și salvarea lui cu nume diferit, apoi
includerea acestuia în paginile dorite.

110
Site-ul care urmează să fie construit are următoarea structură:
 index.php – prezintă informații generale despre școală, corespunde opțiunii
HOME din meniu;
 oferta.php – cuprinde oferta școlară pentru elevii de clasa a IX-a; datele afișate
în această pagină sunt preluate din baza de date creată pentru acest proiect,
mihainovac, din tabelul cu numele oferta;
 profesori.php – afișează, sub formă de tabel, profesorii școlii; ca și în pagina
precedentă, datele necesare sunt preluate din tabelul profesori al bazei de date
mihainovac;
 act.php – afișează activități în care au fost implicați elevii și profesorii școlii;
datele sunt preluate din tabelul activitate al bazei de date;
 galerie.php – afișează imagini de la activitățile desfășurate de elevii școlii;
 comentarii1.php – afișează, in interiorul paginii galerie, un formular prin care
vizitatorii iși pot exprima părerea despre site. Aceste păreri sunt stocate în tabelul
comentarii al bazei de date și apoi sunt afișate
 stiluri1.css – pagina de stiluri, responsabilă cu aspectul celorlalte pagini.
 Antet.php – afișează secțiunea de antet a paginilor;
 Subsol.php – afișează secțiunea de subsol a paginilor

Pentru început am creat fișierele antet.php și subsol.php, pe care le-am inclus în toate
celelalte pagini.
Pentru crearea bazei de date și a tabelelor am folosit phpMyAdmin, un manager online
pentru bazele de date MySQL. Acesta oferă uneltele necesare pentru administrarea completă a
structurii și a datelor. Accesarea phpMyAdmin se face scriind în linia URL http://localhost ,
fapt care determină afișarea feresteri XAMPP în browser,; din aceasta de alege opțiunea
corespunzătoare aplicației. O altă modalitate este scrierea în bara de adrese:
http://localhost/phpmyadmin.
Interfața aplicației:

111
Crearea bazei de date:

112
Crearea unui tabel:

Stabilirea structurii tabelului

După introducerea datelor în tabele, acestea pot fi manipulate cu ajutorul comenzilor


MySQL.
În fișierul oferta.php am realizat conectarea la baza de date:

mysql_connect("localhost", "danamn", "123456") or die(mysql_error());


mysql_select_db("mihainovac") or die(mysql_error());

113
Am selectat tabelul de care aveam nevoie prin intermediul variabilei $sql:

$sql="SELECT * FROM oferta ORDER BY id DESC";

Rezultatul interogării este stocat în variabila $rezultat, iar variabila $num contorizează
numărul de rânduri al acesteia.
Într-un ciclu while am parcurs toate rândurile din tabel și am atribuit valori variabilelor:

$filiera = mysql_result($rezultat, $i, "filiera");


$profil = mysql_result($rezultat, $i, "profil");
$specializare =mysql_result($rezultat, $i, "specializare");
$nr_locuri=mysql_result($rezultat, $i, "nr_locuri");

După care am afișat rezultatele.


Aceeași metodă am aplicat-o și pentru afișarea datelor din tabelul activitate, pentru a
genera conținutul paginii ACTIVITĂȚI.
La generarea paginii profesori datele sunt afișate sub formă de tabel cu ajutorul comenzii
echo, care concatenează porțiuni de cod HTML, text și variabilele create:
echo "<table border cellspacing='10' width='100% cellpading ='35'align ='center'> <tr > <td align
='right' width = '50%'><b>" . $nume_prenume . "</b></td><td width = '50%' align = 'left'><i>" .
$specializare . " </i></td> </tr> </table> ";
Fișierul comentarii1.php cuprinde un formular simplu, creat cu HTML, iar valorile
introduse prin formular sunt stocate într-un tabel corespunzător al bazei de date.
După crearea formularului, am realizat conectarea la baza de date într-o manieră diferită
decât in cazul celorlalte pagini, și anume am creat constante care să rețină numele bazei de date,
al utilizatorului, parola și host-ul:

define("DB_NAME" , "mihainovac");
define("DB_USER" , "danamn");
define("DB_PASSWORD" , "123456");
define("DB_HOST" , "localhost");

după care am făcut conectarea și selectarea bazei de date dorite

$conectare = mysql_connect("localhost", "danamn", "123456");


114
if(!$conectare){
die("Nu se poate face conectarea" . mysql_error());
}
$selectaredb = mysql_select_db("mihainovac", $conectare);
if(!$selectaredb){
die("Nu se poate selecta" . "mihainovac" .":" .mysql_error());
}
Se inserează datele preluate din formular în tabel:

$inserare = "INSERT INTO comentarii(nume, prenume, coment) VALUES( '$nume', '$prenume',


'$coment')";
if (!mysql_query($inserare)){
die("Eroare" . mysql_error());
}

Se selectează tabelul din care se extrag datele pentru afișare și se afișează:

$seltabel="SELECT * FROM comentarii ORDER BY id DESC";


$rezultat = mysql_query($seltabel);
if (!$rezultat){
die("Eroare" . mysql_error());
}
while($rez = mysql_fetch_array($rezultat)){

echo"<div style = 'border: 1px solid #e4e4e4; padding:10px; margin-bottom:10px; margin-


top:10px;'>";
echo" <b> Nume: </b>" . $rez["nume"] ."<br>" ;
echo" <b>Prenume:</b> " . $rez["prenume"] ."<br>" ;
echo" <b>Comentariu:</b> " . $rez["coment"] ."<br>" ;
echo"</div>";

Fișierele integrale ale site-ului sunt:

115
antet.php:
<html lang="ro-RO"
xmlns:fb="http://ogp.me/ns/fb#" prefix="og: http://ogp.me/ns#">>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<meta name="robots" content="index,follow" />
<link rel="stylesheet" href="stiluri1.css" type="text/css" />
<title>LICEUL TEHNOLOGIC MIHAI NOVAC</title>
</head>
<body>
<div id="antet">
<a href=" " ><img src= "Logo.gif" alt ="Logo"/></a>
</div>
<div id="navbar">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="oferta.php">Oferta școlii</a></li>
<li><a href="profesori.php">Profesori</a></li>
<li><a href="act.php">Activități</a></li>
<li><a href="galerie.php">Galerie</a></li>
</ul>
</div>

Subsol.php
<div id="subsol">
<div class="subsol_stanga">
<p>&copy;dana_a </p>
</div>
<div class="subsol_dreapta">
<p>email: <a href="mailto:agricol_oravita@yahoo.com">
agricol_oravita@yahoo</a></p>
</div>
</div>

116
</body>
</html>

Index.php
<?php include('antet.php'); ?>
<div id="container">
<div id="continut">
<div id="afisare">
<p><b>Liceul Tehnologic "Mihai Novac" Oravița,</b>fostul Grup Scolar Agricol Oravita, este
situat in orasul Oravita, judetul Caras-Severin, pe strada Closca, nr. 10 si pregateste forta de munca
pentru domeniile agricultura si economie, asigurand personal calificat pentru judetele Caras-Severin si
Timis.</p> <br>
<p><b>Liceul Tehnologic "Mihai Novac" </b>asigura, prin oferta scolara calificări pentru
meseriile cerute pe piata
muncii. Dispune de un colectiv de cadre didactice calificate si de două cladiri renovate, in care
demersurile scolare se desfasoară in cele mai bune conditii.</p><br>
<p>De asemenea, in decurs de maxim 1 an se vor termina lucrarile la campusul scolar si la incă
un corp de cladire, ceea ce va determina o mai buna organizare a procesului instructiv educativ, elevii
vor beneficia de laboratoare de specialitate, ateliere pentru desfăsurarea instruirii practice si sala de
sport</p>
</div>
</div>
</div>
<?php include('subsol.php'); ?>

Oferta.php
<?php include('antet.php'); ?>
<div id="container">
<div id="continut">
<div id="oferta">
<?php
mysql_connect("localhost", "danamn", "123456") or die(mysql_error());
mysql_select_db("mihainovac") or die(mysql_error());
$sql="SELECT * FROM oferta ORDER BY id DESC";
$rezultat = mysql_query($sql);
117
$num = mysql_num_rows($rezultat);
mysql_close();
echo "<h1><center> Oferta școlii pentru anul 2014-2015</center></h1> <h3><i><center> clasa
a IX-a</center></i></h3>
<br><br>";
$i=0;
while($i <$num){
$filiera = mysql_result($rezultat, $i, "filiera");
$profil = mysql_result($rezultat, $i, "profil");
$specializare =mysql_result($rezultat, $i, "specializare");
$nr_locuri=mysql_result($rezultat, $i, "nr_locuri");
echo"<b> FILIERA:<b> <i> $filiera </i> <br> <b> PROFIL:<b> <i>$profil</i> <br>
<b>SPECIALIZAREA:<b> <i> $specializare </i><br> <b> NUMAR DE LOCURI:<b> <i> $nr_locuri </i>
<b> <br><br>";
++$i;
}
?>
</div>
</div>
</div>
<?php include('subsol.php'); ?>

Profesori.php
<?php include('antet.php'); ?>
<div id="container">
<div id="continut">
<div id="prof">
<?php
mysql_connect("localhost", "danamn", "123456") or die(mysql_error());
mysql_select_db("mihainovac") or die(mysql_error());
$sql="SELECT * FROM profesori ORDER BY specializare ASC";
$rezultat = mysql_query($sql);
$num = mysql_num_rows($rezultat);
mysql_close();
$i=0;
118
while($i <$num){
$specializare = mysql_result($rezultat, $i, "specializare");
$nume_prenume = mysql_result($rezultat, $i, "nume_prenume");
echo "<table border cellspacing='10' width='100% cellpading ='35'align ='center'> <tr >
<td align ='right' width = '50%'><b>" . $nume_prenume . "</b></td><td width = '50%' align = 'left'><i>" .
$specializare . " </i></td> </tr> </table> ";
++$i;
}
?>
</div>
</div>
</div>
<?php include('subsol.php'); ?>

Act.php
<?php include('antet.php'); ?>
<div id="container">
<div id="continut">

<div id="act">
<?php
mysql_connect("localhost", "danamn", "123456") or die(mysql_error());
mysql_select_db("mihainovac") or die(mysql_error());
$sql="SELECT * FROM activitate ORDER BY data DESC";
$rezultat = mysql_query($sql);
$num = mysql_num_rows($rezultat);
mysql_close();
$i=0;
while($i <$num){
$titlu = mysql_result($rezultat, $i, "titlu");
$activitate = mysql_result($rezultat, $i, "activitate");
$data =mysql_result($rezultat, $i, "data");

119
echo"<b> $titlu</b> <br> <br> <i>$activitate</i> <br><u> <p align='right'> $data
</p></u><br><br><br>";
++$i;
}
?>
</div>
</div>
</div>
<?php include('subsol.php'); ?>

Galerie.php
<?php include('antet.php'); ?>
<div id="container">
<div id="continut">
<div id="galerie">
<?php include('comentarii1.php'); ?>
<img src ="pxt.gif"><br>
<img src ="pxt.gif"> <a href="galerie1.html"><img src ="1.jpg"></a> <img src ="pxt.gif"> <a
href="galerie1.html"><img src ="2.jpg"></a> <img src ="pxt.gif"> <a href="galerie1.html"><img src
="5.jpg"></a><br>
<img src ="pxt.gif"><br>
<img src ="pxt.gif"> <a href="galerie1.html"><img src ="3.jpg"></a><img src ="pxt.gif"> <a
href="galerie1.html"><img src ="4.jpg"></a> <img src ="pxt.gif"> <a href="galerie1.html"><img src
="6.jpg"></a> <br>
<img src ="pxt.gif"><br>
<img src ="pxt.gif"> <a href="galerie1.html"><img src ="7.jpg"></a> <img src ="pxt.gif"> <a
href="galerie1.html"><img src ="8.jpg"></a> <img src ="pxt.gif"> <a href="galerie1.html"><img src
="9.jpg"></a><br>
<img src ="pxt.gif"><br>
<img src ="pxt.gif"> <a href="galerie1.html"><img src ="10.jpg"></a> <img src ="pxt.gif"> <a
href="galerie1.html"><img src ="11.jpg"></a> <img src ="pxt.gif"> <a href="galerie1.html"><img src
="12.jpg"></a><br>
</div>
</div>

120
</div>
<?php include('subsol.php'); ?>

Comentarii1.php
<div id="comentarii">
<form action = "" method ="post">
<html>
<head>
<title>aaaaa</title>
</head>
<body>
<form action = "" method ="post">
<P><b>Numele: </b></P>
<input type = "text" name = "nume"/> <br>
<p><b>Prenumele: </b> </p>
<input type = "text" name = "prenume"/> <br>
<p><b>Scrieti-vă părerea despre site:</b></p>
<textarea name = "coment" rows = "6" cols = "30" >
</textarea>
<p> <input type = "submit" value = "Adauga comentariu"/> </p>
</form>
</body>
</html>
<?php
define("DB_NAME" , "mihainovac");
define("DB_USER" , "danamn");
define("DB_PASSWORD" , "123456");
define("DB_HOST" , "localhost");
$conectare = mysql_connect("localhost", "danamn", "123456");
if(!$conectare){
die("Nu se poate face conectarea" . mysql_error());
}
$selectaredb = mysql_select_db("mihainovac", $conectare);
if(!$selectaredb){

121
die("Nu se poate selecta" . "mihainovac" .":" .mysql_error());
}
if (isset($_POST["nume"])){
$nume = $_POST["nume"];
}
if (isset($_POST["prenume"])){
$prenume = $_POST["prenume"];
}
if (isset($_POST["coment"])){
$coment = $_POST["coment"];
}
$inserare = "INSERT INTO comentarii(nume, prenume, coment) VALUES( '$nume', '$prenume',
'$coment')";
if (!mysql_query($inserare)){
die("Eroare" . mysql_error());
}
$seltabel="SELECT * FROM comentarii ORDER BY id DESC";
$rezultat = mysql_query($seltabel);
if (!$rezultat){
die("Eroare" . mysql_error());
}
while($rez = mysql_fetch_array($rezultat)){
echo"<div style = 'border: 1px solid #e4e4e4; padding:10px; margin-bottom:10px; margin-
top:10px;'>";
echo" <b> Nume: </b>" . $rez["nume"] ."<br>" ;
echo" <b>Prenume:</b> " . $rez["prenume"] ."<br>" ;
echo" <b>Comentariu:</b> " . $rez["coment"] ."<br>" ;
echo"</div>";
}
?>
</div>

122
Stiluri1.css
body { color: #3f312e; background: #003300 ; font: 14px Helvetica, Arial, Sans-serif; }
a { color: #FFFFCC; font-size: 25px; }
a:hover{ color:#00CC00;}
#antet { width: 1060px; max-height: 130px; margin: 0 auto; }
#antet img{max-height:130px;
min-width:800px;
}
#navbar { width: 1260px; ; margin: 0 auto; position: relative; top: 120px; background: #006600;
min-height: 40px}
#navbar ul { margin: 0; padding: 10; list-style-type: none; }
#navbar ul li { display: inline; }
#navbar ul li a {
margin-left:50px;
padding-left:20px;
padding-right:40px;
text-decoration: none;
text-transform: uppercase;}
#navbar ul li a:hover {
margin-left:60;
padding-left:30px;
padding-right:30px;
background: #FFFFCC;
}
#container { overflow: auto; width: 1060px; max-height:800px; margin: 0 auto; padding: 10px;
background: #009900; clear: both;}
#continut { width: 1060px; min-height: 500px; margin: 0 auto; background: #FFFFCC; overflow:
auto;
}
#afisare{width: 1060px; min-height: 400px; margin-top: 130 ;margin-left:30;margin-right:50px;
background: #FFFFCC; overflow: auto; }
#afisare p{color:#006600;font-size:20px; margin-left:30;margin-right:60px; }
#act{width:1000px;min-height: 400px; max-height:500px; margin-top: 150 ;margin-left:50;margin-
right:30px; background: #FFFFCC; overflow: auto; }

123
#act b{color:#339900;font-size:20px; margin-left:30;}
#act i{color:#33CC00;font-size:16px; margin-left:30;margin-right:60px;}
#act u{color:#339900; font-size:16px; }
#comentarii { width: 320px;
padding-left:auto;
padding-right:auto;
padding-top:50px;
padding-bottom:auto;
max-height:330px;
background: #003300;
float: right;
border: auto;
overflow: auto
}
#comentarii {position:absolute; top:370px;left:850px;right:5pz;}
#comentarii form{margin-left:20px;}
#comentarii b{color:#FFFFCC;}
#comentarii {color:#FFFFCC;}
#oferta{width: 760px; min-height: 300px; margin-top: 150; margin-left:150 ;margin-
right:30px;margin-bottom:35px; background: #FFFF99; overflow: auto; border:10px inset #33CC00;
}
#oferta {text-align:center;}
#oferta h1{color:#006600; margin-top:15px;}
#oferta h3{color:#009933; margin-top:5px;}
#oferta b{color:#009900;
font-size:20px; }
#oferta i{color:#00CC00; }
#prof{width: 660px; min-height: 480px;max-height:500px; margin-top: 150px; ;margin-
left:190;margin-right:20px;margin-bottom:35px; background:#FFFF99; overflow: auto; border:10px outset
#33CC00;}
#prof{ position:center;}
#prof {text-align:center;}
#prof b {color:#009900;
font-size:18px; margin-top:10px}

124
#prof i{ color:#00CC00; font-size:18px;}
#prof table{margin-left:0px;margin-right:20px;}
#prof table{ background:#FFFF99; border:2px inset #33CC00}
#galerie{width: 1040px; min-height: 700px; margin-top: 120; margin-left:10;margin-right:10px;
margin-bottom:10px; background: #003300; float:left; }
#galerie img{width:60px; height:60px}
#galerie a img:hover{width:300px; height:300px}
#subsol { width: 1060px; margin: 0 auto; text-align: center; }
.subsol_stanga {
width: 50%;
float: left;
color:#FFFFCC
}
.subsol_stanga{text-align:left;
font-size:20px;
}
.subsol_dreapta {

float: right;
color:#FFFFCC
}
.subsol_dreapta{
text-align: right;
font-size:20px;
}
.subsol_dreapta a{color: #00FF00; font-size: 20px;}

Paginile site-ului vizualizate in browser:

125
126
127
128
129
130
În încheierea acestei etape am evaluat rezultatele obținute de fiecare elev în crearea
individuală a fișierelor site-ului. Aceste rezultate sunt exprimate în tabelul următor:

EVALUARE
Nr . Subiecți
curent Test practic PHP

1. A.S. 8

2. B.C. 7

3. R.B. 8

4. D.M. 9

5. G.E. 8

6. J.A. 8

7. R.S. 8

8. T.V. 7

9. B.C. 7

10. C.S. 9

11. C.T. 8

12. E.V. 8

13. I.M 8

14. M.I 9

15. N.O. 9

16 P.L. 8

17 T.E. 9

Media aritmetică
8,12
test

131
Rezultatele obținute sunt reprezentate prin diagrame, referitoare la notele obținute și
comparativ cu media aritmetică a notelor:

REZULTATE TEST PHP


10

0
A.S. B.C. R.B. D.M. G.E. J.A. R.S. T.V. B.C. C.S. C.T. E.V. I.M M.I N.O. P.L. T.E.

REPREZENTAREA GRAFICĂ A NOTELOR


RELATIV LA MEDIE
10
9
8
7
6
5
4
3
2
1
0
A.S. B.C. R.B. D.M. G.E. J.A. R.S. T.V. B.C. C.S. C.T. E.V. I.M M.I N.O. P.L. T.E.

test php media test php

132
Un aspect important pe toată durata cercetării a fost alegerea unei metode de instruire
adecvate pentru desfășurarea optimă a tuturor activităților implicate în această cercetare
Unul dintre reperele noului curriculum pentru învățământul școlar este acela de a socoti
copiii subiecți ai propriei formări, de a-i implica direct în procesul didactic, de a le crea condiții
variate de învățare, de a le dezvolta o personalitate deschisă, creatoare, capabile să rezolve
o problemă prin identificarea și combinarea unor puncte de vedere diferite. Metodele activ-
participative determină activizarea elevilor și progresul lor pe plan intelectual (le dezvoltă
gândirea, memoria, imaginația, limbajul) și în plan comportamental: îi ajută să se formeze
ca și persoane deschise spre nou, le dezvoltă spiritul de cooperare, ambiția, creativitatea, le
demonstrează aplicabilitatea unor cunoștințe în domenii diferite de viață, se bazează pe concret,
nu pe abstract.
Școala trebuie să țină pasul cu tehnologia, să înțeleagă și să anticipeze impactul asupra
modului de învățare. Calculatoarele au fost incorporate in programele educaționale oferindu-le
celor ce se instruiesc o libertate și flexibilitate mai mare dar și individualitate în clasa. Folosirea
Internetului de către elevi a fost o idee care a prins repede. Afinitatea naturală dintre elevi și
Internet a dat naștere mai multor proiecte orientate înspre elevi, inițiate de elevi, conduse de
elevi.
Învățarea care pune accentul pe participarea elevilor reprezintă un tip de instruire care
îi dă elevului un rol activ în procesul de învățare. Elevii, participanți activi, își imprimă ritmul
propriu și propriile strategii. Modalitatea de învățare este individualizată nu standardizată.
Învățarea care îl situează pe elev in rol central, asociază învățarea focalizată pe
particularitățile fiecărui individ (ereditate, experiență, perspective, pregătire, talente, capacitați
și nevoi) cu focalizarea pe predare, împărtășire a cunoștințelor respective (cea mai buna
informație ce se furnizează, stimularea motivației, învățării și acumulării de cunoștințe de către
toți elevii).
Acomodarea încă din școală cu tehnica de calcul influențează formarea intelectuală a
elevilor, prin:
 stimularea interesului față de nou. Legea de bază ce guvernează educația asistată
de calculator o reprezintă implicarea interactivă a elevului în acțiunea de
prezentare de cunoștințe, captându-i atenția subiectului și eliminând riscul
plictiselii sau rutinei.
 stimularea imaginației. De la jocurile pe calculator care dezvolta abilitați de
utilizare, imaginație și viteză de reacție într-o prezentare grafică atractivă,

133
maturizând-se elevul începe să folosească calculatorul să creeze propriile
produse soft.
 dezvoltarea unei gândiri logice. Descompunerea unei teme în etape de elaborare
organizate secvențial, organizarea logică a raționamentului reprezintă demersuri
cognitive ce aduc câștig în profunzimea și rapiditatea judecării unei probleme.
 simularea pe ecran a unor fenomene si procese, altfel costisitor de reprodus în
laborator, ajută la înțelegerea acestora.
 optimizarea randamentului predării prin exemplificări multiple
 formarea intelectuală a elevilor prin autoeducație
 elevul învață in ritm propriu, fără emoții si stres care să-i modifice
comportamentul
 aprecierea obiectivă a rezultatelor și progreselor obținute
Din acest motiv, ca metodă de instruire pentru această cercetare am ales Instruirea
Asistată de Calculator (IAC). Aceasta valorifică următoarele operații didactice integrate la
nivelul unei acțiuni de dirijare euristică și individualizată a activităților de predare-învățare-
evaluare:
 organizarea informației conform cerințelor programei adaptabile la capacitățile
fiecărui student/elev;
 stimularea cognitivă a studentului prin secvențe didactice și întrebări ce vizează
depistarea unor lacune, probleme, situații-problemă;
 rezolvarea sarcinilor didactice prezentate anterior prin reactivarea sau obținerea
informațiilor necesare de la resursele informatice apelate prin intermediul
calculatorului;
Interacţiunea didactică dintre program si utilizator / elev se realizează printr-o interfaţă
ce permite corecta interpretare a reacţiilor utilizatorului și reglarea procesului conform unei
strategii stabilite. Pentru a asigura cantitativ si calitativ sarcinile de lucru, softurile educaţionale
trebuie să aibă niveluri de interactivitate ridicată, cel puţin 50% din aplicaţii trebuie să fie
interactive.
Reacţia elevului la o solicitare a computerului conduce, de regulă, la o determinare a
următoarei solicitări s.a.m.d. Există, deci un feedback (de confirmare, corecţie,
explicitare,diagnoză sau elaborare) si o anumită reglare la nivelul/în interiorul unităţilor de
interacţiune.

134
În acelasi timp, se pot realiza evaluări după parcurgerea fiecărui moment (evaluare
modulară) sau la nivelul întregului conţinut al unui curs (evaluare finală) sugestii pentru
utilizarea unor materiale adiacente, de recuperare, dezvoltare a potenţialului creativ etc.
Pentru prezentarea cunoștințelor noi am ales să folosesc alături de alte soluții și aplicația
EDU Integrator, care permite crearea de lecții interactive.
Interfața aplicației EDU Integrator

135
Exemplu de lecție construit cu aplicația EduIntegrator

136
137
De asemenea, deoarece elevii trebuiau să aibă acces la informații și în afara orelor petrecute
la cerc, am ales ca o soluție platforma glasscubes.com, o platformă gratuită care permite accesul
la distanță la resurse și descărcarea de fișiere dintr-un spațiu de lucru creat.
Astfel toți elevii au avut permanent acces la toate materialele și fișele de lucru, având
posibilitatea studierii acestora ori de câte ori aveau nevoie.
Platforma permite și stocarea de materiale video, astfel încât am putut pune în spațiul de
lucru și exemple de tutoriale video.
Interfața platformei:

După crearea contului, administratorul are posibilitatea sa creeze spații de lucru și să le


populeze cu materiale. De asemenea platforma permite crearea și conectarea mai multor utilizatori.

138
Interfața cu spațiile de lucru:

a)materiale video

139
b)materiale html

c)materiale php

140
4.4.3. Etapa finală – interpretarea rezultatelor

Având la bază rezultatele obținute de elevi de-a lungul întregii cercetări, următoarea etapă
a acesteia a fost interpretarea rezultatelor.
Pe lângă media aritmetică, pe care am folosit-o la diagramele realizate pentru fiecare etapă
de testare, am mai folosit:
Amplitudinea (W)
Amplitudinea este diferenţa dintre valorile extreme şi se calculează după formula:
W = Xmax - Xmin
Unde:
Xmax = valoarea cea mai mare;
Xmin = valoarea cea mai mică.

Abaterea standard (S)


Este unul dintre parametri cei mai reprezentativi ai variabilităţii. Se foloseşte în practica
cercetării ştiinţifice şi este indicatorul dispersiei.
Se calculează după formula:

S
(x i  x)2
n 1
Unde:

( xi  x ) = diferenţa dintre fiecare valoare individuală şi media


aritmetică sau abaterea valorilor individuale faţă de medie;

 = suma rezultatelor

 (x i  x) 2 = suma diferenţelor ridicate la pătrat

n = numărul total de cazuri

De reţinut faptul că, cu cât dispersia este mai redusă, cu atât valoarea centrală este mai
reprezentativă.

141
Coeficientul de variabilitate (CV)
Coeficientul de variabilitate reprezintă în procente raportul dintre abaterea standard S şi
media aritmetică X .
Se calculează după formula:
Sx100
CV 
X
unde:
S = abaterea standard;
X = media aritmetică.
Coeficientul de variabilitate oferă o imagine a gradului de omogenitate a colectivului
cercetat. Valoarea lui este invers proporţională cu omogenitatea.
Pentru valorile coeficientului de variabilitate s-au stabilit următoarele trepte:
 0 – 10% = indică un eşantion omogen;
 10 – 20% = indică o omogenitate medie;
 Peste 20% = indică lipsa de omogenitate.

Prima dată am comparat mediile obținute la testul practic cu cele obținute la testul teoretic,
teste aplicate în prima etapă a cercetării. Pentru aceasta am facut media aritmetică a mediilor celor
două teste. Rezultatele le-am reprezentat grafic ăn următoarea diagramă:

REPREZENTARE GRAFICĂ A
MEDIILOR TESTELOR TEORETICE ȘI
PRACTICE

Media teste practice

Media teste teoretice

7,63 7,64 7,65 7,66 7,67 7,68

142
După cum se observă din reprezentarea grafică, media la testele teoretice este cu 0,23 puncte
mai mare decăt media testelor practice. Acest lucru se datorează în principal lipsei de exercițiu a
elevilor, care, în timpul alocat studierii disciplinei Tehnologia informației, de o oră pe săptămână,
nu au suficient timp sa-și consolodeze cunoștințele teoretice prin efectuarea de exerciții practice.
Acesta a fost motivul care m-a determinat să măsor evoluția elevilor care fac obiectul
cercetării prin teste practice, pentru ca rezultatele să reflecte cât mai fidel realitatea, având în vedere
și tipul aplicativ al cercetării.
Ca teste practice am considerat munca individuală a elevilor care, în urma îndrumărilor și
a obiectivelor fiecărei etape, au lucrat individual fiecare fișier al aplicațiilor.
Am calculat indicatorii abaterea standard, amplitudinea și coeficientul de variabilitate
pentru cele trei teste practice luate în considerare la evaluare: testul practic inițial, testul practic de
cunoștințe HTML și testul practic PHP

Indicator Test inițial Test HTML Test PHP


S (abaterea standard) 0,507725779 0,616946381 0,6758309
W Amplitudinea 1 2 2
CV Coeficientul de variabilitate 6,639490962 7,885780813 8,325453111

Conform acestor indicatori, rezultă că elevii care au făcut obiectul cercetării formează un
grup omogen, coeficientul de variabilitate fiind sub 10%, iar mediile aritmetice ale testelor sunt
reprezentative pentru procesul de evaluare, abaterea standard având valori între 0,5 și 0,7%.
Având în vedere valorile indicatorilor calculați, care confirmă reprezentativitatea mediilor
aritmetice, am comparat valorile mediilor aritmetice ale celor trei teste, comparare realizată grafic
prin următoarea diagramă:

143
MEDII ARITMETICE TESTE PRACTICE
10,00

9,00

8,00

7,00

6,00

5,00

4,00

3,00

2,00

1,00

0,00
A.S. B.C. R.B. D.M. G.E. J.A. R.S. T.V. B.C. C.S. C.T. E.V. I.M M.I N.O. P.L. T.E.

Media teste practice inițiale Media test HTML Media test PHP

Se poate observa din diagramă evoluția fiecărui elev implicat în cercetare. Elevii D.M ,
N.O și C.S. au evoluat cel mai mult, demonstrând un real interes față de limbajul PHP.
În următoarea reprezentare grafică am comparat mediile aritmetice ale testelor:

144
Valorile medii ale mediilor celor 3 teste
8,20

8,10 8,12

8,00

7,90

7,80 7,82

7,70

7,65
7,60

7,50

7,40
Media teste practice inițiale Media test HTML Media test PHP

Se observă o creștere a mediei atât la testul al doilea față de primul cât și la cel de-al treilea
test față de cel precedent. Creșterea mediei a fost:
 Test 2 comparativ cu test 1: 0,17 puncte;
 Test 3 comparativ cu test 2: 0,30 puncte
 Test 3 comparativ cu test 1: 0,47 puncte
Având în vedere evoluția constantă a mediilor, precum și omogenitatea acestora, am
considerat că elevii și-au însușit cunoștințele necesare pentru realizarea unei aplicații web
dinamice, manifestând un real interes față de noțiunile teoretice dar mai ales practice, studiate.
De asemenea, un factor foarte important în evoluția lor a fost motivația de a finaliza un
proiect concret, precum și dorința de a-și forma abilități într-un domeniu care prezintă interes
pentru ei.

145
În urma cercetării am observat că subiecții aveau cel mai bun randament atunci când
proiectul a fost împărțit în secțiuni mici realizabile într-un orizont de timp apropiat. În acest fel,
rezultatele obținute, măsurate prin realizarea unei sarcini concrete, au constituit permanent o
recompensă pentru ei, stimulându-i în efectuarea următoarei sarcini, până la realizarea scopului
final.
Un alt aspect observat a fost faptul că, lucrând individual, elevii au colaborat între ei, găsind
soluții împreună atunci când întâmpinau anumite dificultăți. Nefiind un mediu concurențial,
neexistând etichetări, ei au colaborat pentru realizarea scopului comun: realizarea aplicației.
Alt aspect care i-a motivat a fost discutarea fiecărei etape a proiectului și selectarea, de
comun acord, a celor mai bune soluții.

La începutul cercetării unul dintre obiectivele acesteia a fost stabilirea oportunității studierii
printr-un curriculul opțional, a limbajului PHP pentru crearea de aplicații web. În acest punct, după
evaluarea rezultatelor, datorită interesului și progresului demonstrat de elevi, consider că ar fi
oportună introducerea unui opțional, mai ales datorită numărului redus de ore din curriculum-ul
național la disciplina T.I.C.
Derept urmare, am întocmit un model de programă de opțional, pentru studierea HTML și
PHP, după modelul programelor școlare elaborate de Ministerul Educației:

NOTĂ DE PREZENTARE

Prezentul document conţine programa şcolară pentru disciplina opțională Crearea paginilor
web cu HTML și PHP
Programa şcolară are următoarele componente:
 notă de prezentare
 valori şi atitudini
 competenţe generale, competențe cheie competențe specifice şi conţinuturi
 sugestii metodologice.

146
În societate cât şi în domeniul educaţiei, Tehnologia informaţiei şi a comunicaţiilor (TIC)
oferă o largă gamă de posibilităţi pentru ameliorarea practicilor actuale de interacţiune cu
utilizatorii, permiţând demersuri de facilitare a învăţării.
Bogăţia şi varietatea conţinutului informaţional, precum şi varietatea suportului
(imagini, texte, sunete) reprezintă potenţialul deosebit care îi permite educatorului realizarea unor
demersuri interactive (lecţii, exerciţii, prezentări), cu o putere motivaţională cu totul diferită
faţă de predarea tradiţională.
În ultimii ani, învăţământul românesc a parcurs o perioadă de informatizare în a cărui fază
iniţială dotarea cu computere a reprezentat o problemă-cheie, accentul fiind pus pe însuşirea
limbajelor de programare. Încetul cu încetul, computerul a devenit un instrument folosit şi în afara
orelor de informatică, în predarea altor discipline. Instruirea asistată de computer, cu soft-uri
educaţionale speciale, a reprezentat vârful acestei direcţii. Apariţia Internet-ului a accelerat
trecerea spre utilizarea noilor tehnologii şi a favorizat deschiderea spre noi forme de realizare a
interacţiunii educator-elev-disciplina de învăţământ.
Pornind de la faptul că nu există domeniu de activitate unde să nu se prelucreze şi să nu se
transmită informaţii atât în cadrul domeniului respectiv, cât şi spre exteriorul lui, este necesar să
fim preocupaţi de dobândirea de către elevi atât a cunoştinţelor şi deprinderilor în utilizarea TIC
cât și în alte domenii de interes. Unul dintre aceste domenii îl reprezintă studierea limbajelor de
programare care să permită elevilor să definească și să creeze pagini web.
Limbajele HTML și PHP au avantajul că sunt relativ ușor de învățat, cu rezultate aplicabile
imediat. Elevii au oportunitatea de a construi aplicații pe care le pot testa imediat ce le-au terminat,
de asemenea pot folosi secvențele de cod în mai multe proiecte.
Oportunitatea unei astfel de discipline opționale se justifică și prin faptul că numărul de ore
alocate în curriculumul național la disciplina T.I.C. este insuficient pentru acumularea de
cunoștințe teoretice și pentru formarea de abilități și deprinderi practice, corespunzătoare
cunoștințelor teoretice, disciplinei fiindu-i alocată o oră pe săptămână, de-a lungul celor patru ani
de studiu.
Un alt argument în favoarea studierii acestui opțional îl constituie interesul elevilor față de
tot ceea ce înseamnă tehnologie web, de la folosirea platformelor pentru construirea de bloguri sau

147
site-uri online, pe platforme gratuite și pâna la crearea propriilor aplicații cu ajutorul unor limbaje
ca HTML și PHP.
E necesar ca elevii să lucreze cât mai mult din punct de vedere practic, deci să implementeze
pe calculator cât mai multe exemple, să testeze cât mai multe funcţii şi situaţii.
Avantajul cunoaşterii limbajului PHP la terminarea liceului nu poate fi decât benefică,
mergând până într-acolo încât poate chiar să constituie o meserie.

COMPETENȚE GENERALE

1. Dezvoltarea deprinderilor moderne de utilizator

2. Cunoaşterea modului de utilizare a unor medii informatice de lucru

3. Elaborarea unor produse utilizabile care să dezvolte spiritul inventiv şi creativitatea

VALORI ŞI ATITUDINI

 Exprimarea unui mod de gândire creativ în structurarea şi rezolvarea problemelor.

 Conştientizarea impactului social, economic şi moral al informaticii.

 Exprimarea unui mod de gândire creativ, în structurarea şi rezolvarea sarcinilor de lucru

 Manifestarea unor atitudini favorabile faţă de ştiinţă şi de cunoaştere în general.

 Manifestarea disponibilităţii de a evalua/autoevalua activităţi practice.

 Manifestarea iniţiativei şi a disponibilităţii de a aborda sarcini variate.

148
COMPETENŢE SPECIFICE ŞI CONŢINUTURI

Competenţe specifice Conţinutu


ri
Cunoașterea noțiunilor elementare  Crearea unui fișier HTML
pentru crearea unui fișier HTML  Cunoașterea structurii
elementare a unui fișier web –
Cunoașterea structurii unui fisier etichetele <HTML> </HTML>,
HTML <HEAD> <HEAD/> <TITLE>
</TITLE>, <BODY> </BODY>
 Folosirea etichetei <P> </P> ;
attributele acceptate de acestea:
ETICHETE – sintaxa și rolul ALIGN,
acestora  Realizarea unei pagini simple,
folosind etichetele cunoscute și alte
etichete pentru formatarea textului:
<B> </B>, <I> </I>, <U> </U>
Etichete și atribute pentru  Folosirea etichetelor pentru
formatare titluri:<H1> </H1>……<H6>
</H6>
 Crearea unui fișier și formatarea
textului prin intermediul etichetei
FONT și atributelor acesteia FACE,
COLOR, SIZE
 Crearea unei liste ordonate cu
ajutorul etichetelor <OL>
Liste, imagini și tabele ….<LI>…</LI> </OL>

149
Competenţe specifice Conţinutu
ri
 Crearea listrlor neordonate <UL>
….<LI>…</LI> </UL>: alegerea
simbolurilor pentru marcatori
 Realizarea unui fișier HTML
care să cuprindă imagini –
eticheta <IMG > și a atributelor
SCR și ALIGN </IMG>
 Folosirea etichetelor necesare
pentru crearea unui table; crearea
tabelelor și formatarea acestora și
a textului din celulele tabelului
 Crearea unei hiperlegături în

Utilizarea elementelor specifice pentru interiorul paginii: spre alte pagini

crearea paginilor web: hiperlegături, web; spre alte secțiuni ale

formulare cadre aceleiași pagini


 Crearea unei pagini web care
să conțină cadre pentru afișarea
simultană a mai multor fișiere
HTML
 Inserarea de formulare în
pagină
 Folosirea etichetelor <BASE>,
<META> și
 <STYLE>

Realizarea unor aplicații practice


 Întocmirea paginii personale

150
Competenţe specifice Conţinu
turi

 Folosirea simbolurilor
Structura unui fișier PHP
„<?php” şi „?>” pentru crearea
fișierului
 Folosirea instrucțiunilor

Instrucțiuni de afișare echo și print pentru afișarea


fișierelor în browser.
 Definirea și folosirea

Constante. Variabile. Operatori constantelor


 Crearea unor variabile cu
ajutorul operatorului de
atribuire.
 Folosirea diferitelor tipuri
de variabile pentru construirea
de expresii cu ajutorul
Instrucțiuni PHP operatorilor
 Folosirea în cadrul fișierelor
php a instrucțiunii IF. Structura
instrucțiunii
 Introducerea în fișierele php
a structurilor condiționale;
while, do – while, for
Formulare
 Crearea și afișarea
rezultatelor datelor introduce în
formulare

151
Competenţe specifice Conţinu
turi

 Folosirea funcțiilor
Funcții
predefinite
 Crearea și folosirea, în
cadrul fișierelor php, a
funcțiilor definite de utilizator
 Rezolvarea de aplicații cu
funcții care folosesc variabile
locale și globale

Prelucrarea șirurilor de caractere  Cunoașterea funcțiilor


specific prelucrării șirurilor de
caractere
 Rezolvarea de aplicații în
care să se utilizeze funcții
specific operațiilor cu șiriri
Matrice. Operații cu matrice  Cunoașterea structurii unei
matrice.
 Folosirea funcțiilor specific
prelucrării matricelor
 Realizarea unor fișiere care
folosesc matrice
 Cunoașterea noțiunii de
Variabile cookie și sesiuni cookie; folosirea cookie-urilor

152

Formulare
Competenţe specifice Conţinu
turi

 Cunoașterea și îțelegera
Funcții
noțiunii funcție. Lucrul cu
funcții

 Crearea bazei de date

Lucrul cu bazele de date MySQL  Crearea tabelelor


 Inserarea datelor în tabele
 Interogarea bazelor de date

 Crearea aplicațiilor web


Alicații practice dinamice sub forma site-urilor
personale, a site-urilor claselor,
etc

153
SUGESTII METODOLOGICE

În cadrul opționalului Crearea paginilor Web, atât utilizarea Internetului cât și crearea
aplicațiilor trebuie subordonate intereselor elevilor, în mod individualizat. Atât sarcinile de lucru
elementare (cum ar fi o căutare pe reţea, un transfer de fişiere, compunerea unui mesaj e-mail,
etc.), cât şi proiectele relativ complexe, trebuie specificate cu aplicabilitate în domeniul (şcolar
sau extraşcolar) care îl interesează pe elev cu precădere. Cum aptitudinile şi interesele elevilor
dintr-o clasă sunt diverse, este bine ca fiecare să primească o temă de lucru individuală. Pentru
început elevii să aibă sarcini de lucru comune, apoi pentru fiecare elev să se individualizeze
sarcina de lucru, în funcţie de preferinţele sale (declarate sau cunoscute de profesor).
Individualizarea sarcinilor de lucru are şi un obiectiv secundar, derivat din caracterul
opţional al cursului. Prin urmare, scopul cursului este să satisfacă interesele elevilor şi să
stimuleze creativitatea acestora în domeniul vizat.
Nu este recomandabilă predarea cunoştinţelor teoretice prin expuneri prealabile. Orice
temă nouă poate fi abordată astfel încât elevul să fie actorul principal. Profesorul poate dirija
activitatea de descoperire a elevilor printr-o secvenţă de sarcini practice de lucru, gradate ca
dificultate. După executarea fiecărei sarcini de lucru, se analizează activitatea fiecărui elev şi se
dezvoltă o conversaţie frontală prin care profesorul urmăreşte să releve cu ajutorul elevilor
aspectele esenţiale ale temei în discuţie.
Acest mod de abordare, impune ca şi evaluarea elevilor să fie realizată prin teste
practice. Acestea vor fi individualizate şi pot fi aplicate fie la sfârşitul unei ore, pentru a testa
nivelul de asimilare a cunoştinţelor de la lecţia curentă, fie la începutul unei ore, pentru a testa
nivelul de asimilare a cunoştinţelor din lecţia/lecţiile anterioare. La fiecare sfârşit de capitol sau
la sfârşit de semestru, fiecare elev poate primi teme de lucru mai complexe, care să necesite studiu
sau activitate individuală şi pe care elevul să le prezinte la oră, la un termen stabilit de profesor.
Proiectele de sfârşit de semestru trebuie să fie formulate astfel încât doi sau trei elevi să poată
colabora la acelaşi proiect. Scopul este de a dezvolta abilităţile elevilor de a lucra în echipă.

154
Principalul obiectiv este crearea condiţiilor favorabile fiecărui elev de a-şi forma şi
dezvolta competenţele în ritm individual. Se va urmări dezvoltarea capacităţilor de transfera
cunoştinţelor şi aplicarea lor în practică.
Prezentul curriculum îşi propune ca, pe parcursul liceului, să formeze competenţe, valori
şi atitudini care se regăsesc în următoarele aspecte ale învăţării vizate de practica pedagogică:
• învăţarea prin descoperire de generalităţi şi particularităţi;
• problematizarea în scopul rezolvării unor situaţii concrete;
• prezentări orale, fie individiuale, fie în grup mic;
• teste de evaluare;
• referate ştiinţifice;
• utilizarea formulelor standardizate în înţelegerea ipotezei;
• analiza secvenţelor logice în etapele de rezolvarea a unei probleme;
• utilizarea unor repere standard sau a unor formule standard în rezolvarea
de probleme;
• exprimarea în termeni logici, cu ajutorul invarianţilor specifici, a unei rezolvări
de probleme;
• construirea şi interpretarea unor diagrame, tabele, scheme grafice ilustrând
situaţii cotidiene;
• intuirea algoritmului după care este construită o succesiune dată, exprimată
verbal sau simbolic şi verificarea pe cazuri particulare a regulilor descoperite;
• utilizarea metodelor standard în aplicaţii în diverse domenii;
• identificarea şi descrierea cu ajutorul unor modele matematice, a unor relaţii
sau situaţii multiple;
• folosirea unor sisteme de referinţă diferite pentru abordarea din perspective
diferite ale unei noţiuni;
• rezolvarea de probleme şi situaţii problemă;
• transferul şi extrapolarea unor probleme pentru rezolvarea altora.

155
MODALITĂŢI DE EVALUARE

 Exercițiul
 Testele practice
 Evaluarea continuă pe perioada realizării activităţii practice
 Elaborarea unui proiect complex (realizat în grup de 2-3 elevi).

156
CONCLUZII

Interactivitatea presupune o învăţare prin comunicare, prin colaborare, produce o confruntare de


idei, opinii şi argumente, creează situaţii de învăţare centrate pe disponibilitatea şi dorinţa de cooperare
a copiilor, pe implicarea lor directă şi activă, pe influenţa reciprocă din interiorul microgrupurilor şi
interacţiunea socială a membrilor unui grup.
Implementarea acestor instrumente didactice moderne presupune un cumul de calităţi şi
disponibilităţi din partea cadrului didactic: receptivitate la nou, adaptarea stilului didactic, mobilizare,
dorinţă de autoperfecţionare, gândire reflexivă şi modernă, creativitate, inteligenţa de a accepta noul şi
o mare flexibilitate în concepţii.
E bine ca profesorul să modeleze tipul de personalitate necesar societăţii cunoaşterii,
personalitate caracterizată prin noi dimensiuni: gândire critică, creativă, capacitate de comunicare şi
cooperare, abilităţi de relaţionare şi lucru în echipă, atitudini pozitive şi adaptabilitate, responsabilitate
şi implicare.
În organizarea unui învăţământ centrat pe copil, profesorul devine un coparticipant alături de
elev la activităţile desfăşurate. El însoţeşte şi încadrează copilul pe drumul spre cunoaştere.
Utilizarea metodelor interactive de predare – învăţare în activitatea didactică contribuie la
îmbunătăţirea calităţii procesului instructiv - educativ, având un caracter activ – participativ şi o reală
valoare activ – formativă asupra personalităţii elevului.

În urma cercetării pe care am întreprins-o s-au conturat următoarele concluzii:

1. Scopul cercetării a fost atins, el concretizându-se in realizarea unui site web dinamic al școlii.
2. Rezultatele înregistrate la teste evidenţiază progresul realizat de eşantionul testat.
3. Nivelul de dobândire a cunoștințelor și de aplicare a acestor cunoștințe in aplicații practice se
îmbunătăţeşte la modul general, conferind un grad de omogenitate crescută a elevilor care au
făcut parte din cercetare.
4. Însuşirea şi, ulterior, consolidarea cunoștințelor a fost posibilă și datorită participării benevole
a elevilor la cerul de TIC, datorită interesului pe care aceștia îl manifestă față de domeniul
respectiv obiectivelor propuse.
5. Studierea unui domeniu de interes pentru elevi a determinat evoluția acestora la teste și a
stimulat dorința de a învăța lucruri noi.
157
6. Aplicabilitatea practică a cunoștințelor dobândite a stimulat de asemenea elevii, care și-au
însușit toate cunoștințele necesare realizării unui site web dinamic.
În vederea îmbunătăţirii calităţii procesului de instruire consider că sunt binevenite următoarele
propuneri:
 Valorificarea optimă a timpului de lucru printr-o organizare judicioasă a timpului şi materialelor
destinate instruirii.
 Cunoaşterea de către toţi elevii noțiunilor teoretice de bază şi aplicarea acestora în realizarea
oricărei aplicații.
 Conceperea de materiale și metode de instruire moderne care prezintă interes atât pentru
profesor, dar mai ales pentru elevi.
 Evaluarea elevilor prim metode practice, gen proiecte, determină o implicare mai mare a acestora
în obținerea unor rezultate cât mai bune.

158
BIBLIOGRAFIE

1. Anghel , Traian, Programarea în PHP. Ghid practic, Iaşi, Polirom, 2005;


2. McFedries, Paul, Crearea paginilor web, București, B.I.C. ALL, 2003
3. Meloni, Julie C., Învaţă singur PHP, MySQL şi APACHE, Bucureşti, Corint,
2005;
4. Sorin, Tudor şi Huţanu, Vlad, Crearea şi programarea paginilor WEB,
Bucureşti, L&S Infomat, 2004;
5. Ulman, Larry, PHP pentru WORLD WIDE WEB în imagini , Bucureşti, Teora,
2004;
6. Ulman, Larry, PHP şi MySQL pentru site-uri web dinamice, Bucureşti, Teora,
2006;
7. www.johnmorrisonline.com/training - tutoriale PHP
8. www.php.net – pagina oficială a grupului de lucru pentru dezvoltarea limbajului
PHP;
9. www.w3schools.com – set gratuit de tutoriale şi documentaţii pentru programarea
paginilor web.
10.www.wikipedia.org – enciclopedia liberă;

159
ANEXA 1

Tip Dimensiune Descriere

Diferența dintre "Tipurile de date pentru text" constă în numărul maxim de


Stocare text caractere ce poate fi stocat într-un câmp individual, modul de tratare a spatiilor,
și dacă se poate seta o valoare inițială.
CHAR (lungime) lungime bytes Un câmp cu lungime fixă de la 0 la 255 de caractere. Acceptă o
valoare inițială.
VARCHAR lungime + 1 or Câmp cu lungime variabilă de la 0 la 65,535 caractere. Acceptă
(lungime) 2 bytes o valoare inițială.
TINYTEXT lungime + 1 Un șir cu lungime maximă de 255 caractere
bytes
TEXT lungime + 2 Un șir cu o lungime maximă de 65,535 caractere. Nu poate
bytes defini o valoare inițială.
MEDIUMTEXT lungime + 3 Un șir cu lungime maximă de 16,777,215 caractere
bytes
LONGTEXT lungime + 4 Un șir cu lungime maximă de 4,294,967,295 caractere
bytes
Stocare numere Aceste tipuri de date reprezintă numere în diferite forme.
TINYINT 1 byte Interval de la –128 la 127. Sau de la 0 la 255 UNSIGNED
(lungime)
SMALLINT 2 bytes Interval de la –32,768 la 32,767. Sau de la 0 la 65,535
(lungime) UNSIGNED
MEDIUMINT 3 bytes Interval de la –8,388,608 la 8,388,607. Sau de la 0 la
(lungime) 16,777,215 UNSIGNED
INT 4 bytes Interval de la –2,147,483,648 la 2,147,483,647. Dacă coloana
(lungime) este declarată UNSIGNED, intervalul este de la 0 la
4,294,967,295
BIGINT 8 bytes Interval de la –9,223,372,036,854,775,808 la
(lungime) 9,223,372,036,854,775,807. Sau de la 0 la
18,446,744,073,709,551,615 UNSIGNED
FLOAT 4 bytes Număr mic cu virgulă (cu zecimale).
(lungime, decimals)
DOUBLE 8 bytes Număr mare cu zecimale
(lungime, decimals)
DECIMAL lungime + 1 sau Un tip DOUBLE care permite un număr fix de zecimale.
(lungime, decimals) 2 bytes

160
Stocare data si timp MySQL stochează data într-un singur format: YYYY-MM-DD
DATE 3 bytes O dată stocată ca YYYY-MM-DD. Intervalul este de la 1000-
01-01 la 9999-12-31
DATETIME 8 bytes Data și ora, afișat în format YYYY-MM-DD HH:MM:SS
TIMESTAMP 4 bytes Poate conține valori ce reprezintă date de la începutul lui 1970
până in ianuarie 2038. Coloanele TIMESTAMP sunt afișate în
același format ca si coloana DATETIME.
TIME 3 bytes Ora în format HH:MM:SS
Stocare liste
MySQL oferă posibilitatea stocării a doua tipuri de liste predefinite
predefinite
ENUM 1 sau 2 bytes Stochează o singură alegere din lista predefinită, fiecare coloană
poate avea una din mai multe valori posibile
SET 1, 2, 3, 4, sau 8 Stochează zero sau mai multe înregistrări din lista predefinită. Ca
bytes și ENUM, cu excepția că fiecare coloană poate avea mai mult de
o valoare din mai multe valori posibile, sau mai multe înregistrări
dintr-o listă predefinită. Lista poate conține cel mult 64 de
înregistrări.
Storing binary data Stochează date binare, ca imaginile.
TINYBLOB Până la 255 bytes
BLOB Până la 64kB
MEDIUMBLOB Până la 16MB
LONGBLOB Până la 4GB

161
ANEXA2

a) Operatori aritmetici:

Acționează asupra tipurilor numerice și furnizează o valoare de tip numeric:

• + – adunare
• - – scădere
• * – înmulțire
• / – împărțire cu zecimale
• div – împărțire cu zecimale
• mod și % – împărțire cu zecimale
• - şi + – operatorii unari plus şi minus
b) Operatori de comparare (sau relaționali):compară două valori numerice sau două șiruri de
caractere.Rezultatul este 1 pentru adevărat și 0 pentru fals.
• < – mai mic
• <= – mai mic sau egal
• > – mai mare
• >= – mai mare sau egal
• = – egalitate
• <> sau != – diferit
c) Operatori logici:
• || sau or– sau-ul logic (este 0 doar când ambii operanzi sunt 0, în rest este 1);
• &&sau and– şi-ul logic (este 1 doar când ambii operanzi sunt nenuli, în rest este 0);
• not– negație (negația lui 0 este 1, iar negația lui 1 este 0);
• xor– sau-ul exclusiv (este 0 când ambii operanzi sunt fie nuli, fie nenuli, și este 1 în rest);
d) Operatori logici pe biți: - se aplică tuturor tipurilor întregi și acționează asupra tuturor biților
aflați pe poziții corespondente.
• |– sau-ul pe biți;
• &– şi-ul pe biți;
• ^– sau-ul exclusiv pe biți;
• ~– negația pe biți;
e) Operatori de deplasare pe biți:
Se aplică tuturor tipurilor întregi, deplasând biții reprezentării binare:

162
• <<– deplasare la stânga: a<<bdeplasează cu b poziții la stânga biții lui a;
• >>– deplasare la dreapta: a>>bdeplasează cu b poziții la dreapta biții lui a;

163
ANEXA3
Funcții predefinite în MySQL.

FUNCŢII MATEMATICE:
• abs(x) – modulul lui x;
• ceil(x) – cel mai mic întreg mai mare sau egal cu x;
• floor(x) – cel mai mare întreg mai mic sau egal cu x (partea întreagă matematică);
• exp(x) – ex;
• log(b,x) – logbx;
• ln(x) – ln x;
• pi() – π;
• pow(x,y) – xy;
• round(x) – cel mai apropiat întreg de x (rotunjire la întreg);
• sin(x), cos(x) – sinusul și cosinusul unghiului x. Unghiul trebuie dat în radiani;
• sign(x) – semnul lui x (-1 pt. nr. negativ, 0 pt. 0, 1 pt. număr pozitiv);
• sqrt(x) – radicalul (rădăcina pătrată) lui x;
FUNCŢII CARE LUCREAZĂ ASUPRA ȘIRURILOR DE CARACTERE:
• length(x) – lungimea (nr. de caractere) a șirului x;
• concat(x1,x2,...) – concatenează șirurile de caractere pe care le primește ca parametri.
• instr(x,y) – Caută dacă y este subșir al lui x. Dacă este întoarce indicele de început
(primul caracter având indicele 1) iar dacă nu este, întoarce 0;
• substring(x,poz,lung) – întoarce subșirul de caractere din x care începe pe poziția
poz și are lungimea lung. Dacă lung este omis, întoarce de la poziția poz până la sfârșit;
• rtrim(x) – întoarce șirul obținut din x prin eliminarea spațiilor inutile din dreapta;
• ltrim(x) – întoarce șirul obținut din x prin eliminarea spațiilor inutile din stânga;
• trim(x) – întoarce șirul obținut din x prin eliminarea spațiilor inutile atât din dreapta cât
și din stânga;
• upper(x) – întoarce șirul obținut prin convertirea tuturor literelor mici la litere mari;
• lower(x) – întoarce șirul obținut prin convertirea tuturor literelor mari la litere mici;
• find_in_set(x,string) – întoarce indicele apariției șirului x în șirul de entități separate
prin virgule din cadrul lui string. Ex: find_in_set(’mimi’,’cici,mimi,lola’) va întoarce valoarea
2.
• format(x,d) – convertește valoarea reală la un string cu d zecimale. Dacă este cazul, la ultima
zecimală din string se face rotunjire. Ex: format(5.678,2) va întoarce stringul ’5.68’;

164
• strcmp(x,y) – compară lexicografic șirurile de caractere x și y, întorcând -1 dacă x<y, 0
dacă x=y, 1 dacă x>y. Nu face distincție între literele mari și cele mici;
FUNCŢII CARE LUCREAZĂ ASUPRA DATEI ŞI OREI:
• now() – întoarce data și ora curentă sub forma yyyy-mm-dd hh:mm:ss;
• day(d) – întoarce numărul zilei din data pe care o primește ca parametru;
• month(d) – întoarce numărul lunii din data pe care o primește ca parametru;
• year(d) – întoarce numărul anului din data pe care o primește ca parametru;
• time(d) – întoarce timpul (sub forma hh:mm:ss) extras din data timpul pe care o primește ca
parametru;
• hour(d) – întoarce ora din parametrul său. Acesta poate fi de tip date sau datetime;
• minute(d) – ca mai sus, întoarce minutul din parametrul său;
• second(d) – ca mai sus, întoarce secunda din parametrul său;
• datediff(x,y) – calculează diferența, în zile, dintre datele x și y;
• date_add(x,interval nr tip) – adună la data x un număr nr de zile, luni sau ani, în funcție de
valoarea parametrului tip. Cuvântul ”interval” este un cuvânt rezervat, trebuind scris ca atare.
Parametrul tip poate avea una dintre valorile day, month respectiv year.

165
DECLARAȚIE DE AUTENTICITATE
A
LUCRĂRII METODICO-ȘTIINȚIFICE PENTRU
ACORDAREA GRADULUI DIDACTIC I

Titlul lucrării:

CREAREA PAGINILOR WEB DINAMICE CU


PHP ȘI MySQL

Autorul lucrării:

Daniela Abîd

Lucrarea este elaborată în vederea obținerii gradului didactic I, organizat de către


D.P.P.P.D din cadrul Universității din Oradea, sesiunea August 2014.

Prin prezenta, subsemnata declar pe propria răspundere că această lucrare a fost


elaborată de către mine, fără nici un ajutor neautorizat și că nici o parte a lucrării nu conține
aplicații sau studii de caz publicate de alți autori.

Declar, de asemenea, că în lucrare nu există idei, tabele, grafice, hărți sau alte surse
folosite fără respectarea legii române și a convențiilor internaționale privind drepturile de autor.

Data Semnătura

166
167
.

168

S-ar putea să vă placă și