Documente Academic
Documente Profesional
Documente Cultură
Conducător științific:
Prof.univ.dr. Constantin POPESCU
-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
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.
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).
3
1.2. Structura lucrării.
4
2. CREAREA PAGINILOR WEB FOLOSIND HTML
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:
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:
Î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
<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:
<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:
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>.
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.
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
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>
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:
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>
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>
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>
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
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.
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);
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'];
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\"";
?>
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
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'>";
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
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
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.
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:
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:
59
aritmetică sau abaterea valorilor individuale față de
medie;
= suma rezultatelor
Etapele cercetării:
4.4.1.Etapa constatativă
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
64
TEST INIȚIAL
LUCRARE PRACTICĂ 1
65
2. Realizați următoarea pagina web
66
TEST INIȚIAL
LUCRARE PRACTICĂ 1
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
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:
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
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:
Test 1 Test 2
și un grafic care reprezintă mediile aritmetice ale celor două teste pentru fiecare elev:
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ă
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;
}
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>
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>
<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>
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.
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.
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.
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
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
Fișierul implicare.php
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">
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:
113
Am selectat tabelul de care aveam nevoie prin intermediul variabilei $sql:
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:
define("DB_NAME" , "mihainovac");
define("DB_USER" , "danamn");
define("DB_PASSWORD" , "123456");
define("DB_HOST" , "localhost");
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>©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;}
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:
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.
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:
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ă.
S
(x i x)2
n 1
Unde:
= suma rezultatelor
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
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
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
VALORI ŞI ATITUDINI
148
COMPETENŢE SPECIFICE ŞI CONŢINUTURI
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
150
Competenţe specifice Conţinu
turi
Folosirea simbolurilor
Structura unui fișier PHP
„<?php” şi „?>” pentru crearea
fișierului
Folosirea instrucțiunilor
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
152
Formulare
Competenţe specifice Conţinu
turi
Cunoașterea și îțelegera
Funcții
noțiunii funcție. Lucrul cu
funcții
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
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
159
ANEXA 1
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:
• + – 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:
Autorul lucrării:
Daniela Abîd
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