Documente Academic
Documente Profesional
Documente Cultură
LUCRARE DE LICEN
LUCRARE DE LICEN
Cuprins
INTRODUCERE ................................................................................................................................................ 4 1. Tehnologiile folosite ........................................................................................................................................ 5 1.1.1.Elemente ale limbajului HTML- HyperText Markup Language ........................................................ 5 1.1.2. Structura HTML-ului .................................................................................................................................. 5 Prima pagina html ............................................................................................................................................. 5 Structura unei pagini web ................................................................................................................................. 5 1.1.3. Atribute HTML ........................................................................................................................................... 7 1.1.4. Tagul <font> si <hx> .................................................................................................................................. 8 1.1.5. Introducerea de imagini n HTML ............................................................................................................. 8 1.1.6. Linkuri HTML ............................................................................................................................................ 9 1.1.7. Clasa de tabele n HTML ............................................................................................................................ 9 1.1.8.Crearea de liste n HTML ......................................................................................................................... 10 1.1.9. Realizarea de cadre HTML ....................................................................................................................... 11 1.1.10. Formulare n HTML ............................................................................................................................... 11 1.2. Reguli CSS .................................................................................................................................................. 13 1.2.1. Introducere ............................................................................................................................................ 13 1.2.2 Pseudoclase de stiluri CSS i modaliti de modificare a cursorului ..................................................... 16 1.3. Instalarea si configurarea PHP si MySQL cu serverele web Apache si IIS sub sistemul de operare Windows ............................................................................................................................................................. 33 1.3.1. Precizari preliminarii ............................................................................................................................ 33 1.3.2. Instalarea unui server web .................................................................................................................... 33 1.3.3. PHP scurta istorie ................................................................................................................................. 36 1.3.4. Instalarea PHP pentru Microsoft IIS (folosind PHP installer).............................................................. 36 1.3.5. Instalarea PHP pentru Apache HTTP Server........................................................................................ 36 1.3.9. Introducere n PHP , MySQL i Macromedia Dreamweaver ............................................................... 38 1.4. Limbajul PHP ........................................................................................................................................ 39 1.4.1 Introducere ............................................................................................................................................. 39 Scrierea n PHP ........................................................................................................................................... 40 Declaraia PHP............................................................................................................................................ 40 Primul script................................................................................................................................................ 41 ncheierea i testarea scriptului ................................................................................................................... 41 Scrierea unui text ........................................................................................................................................ 41 Funcia de afiare n PHP ........................................................................................................................... 42 Variabile de scoatere................................................................................................................................... 42 Formatul unui text....................................................................................................................................... 42 1.4.3. Instruciunile IF .................................................................................................................................... 44 Definiia instruciunii IF ............................................................................................................................. 44 Structura instruciunii IF ............................................................................................................................. 44 Variabilele................................................................................................................................................... 44 Construcia ramurii THEN ......................................................................................................................... 44 Construcia ramurii ELSE........................................................................................................................... 44 Alte comparaii ........................................................................................................................................... 45 1.4.4. Cicluri ................................................................................................................................................... 45 Ciclul WHILE ............................................................................................................................................. 45 Repetarea de un numr fixat de ori ............................................................................................................. 45 1
LUCRARE DE LICEN
Folosirea lui $x ........................................................................................................................................... 46 Vectori i matrici ........................................................................................................................................ 46 Definirea unui vector .................................................................................................................................. 46 Citirea unui vector ...................................................................................................................................... 47 Folosirea vectorilor i ciclurilor.................................................................................................................. 47 1.4.5. Trimiterea unui e-mail din PHP........................................................................................................... 48 Trimiterea unui mesaj E-mail ..................................................................................................................... 48 Formatul - aspectul mesajului e-mail ......................................................................................................... 48 Comanda Mail fr variabile ...................................................................................................................... 49 Erori ............................................................................................................................................................ 49 1.4.6. Construcia formularului n PHP .......................................................................................................... 49 Obinerea datelor din formular ................................................................................................................... 50 1.4.7. Comentariile in PHP ............................................................................................................................. 51 Print, Echo i HTML .................................................................................................................................. 51 One Line Prints ........................................................................................................................................... 52 1.5. PHP/MySQL .............................................................................................................................................. 53 1.5.1. Necesitatea unei baze de date ........................................................................................................... 53 Pentru a afla dac PHP i MySQL sunt instalate:...................................................................................... 54 Gestiunea Bazelor de date .......................................................................................................................... 54 1.5.2. Construirea unei Baze de Date ............................................................................................................. 54 Introducere .................................................................................................................................................. 54 Construcia Bazei de Date .......................................................................................................................... 54 Conectarea la o Baz de Date ..................................................................................................................... 54 Crearea unei Tabele .................................................................................................................................... 55 Cmpuri ...................................................................................................................................................... 55 Crearea unei Tabele cu PHP ....................................................................................................................... 55 Baza de date cu adrese de contact............................................................................................................... 55 Crearea Tabelei n PHP .............................................................................................................................. 56 1.5.3. Introducerea datelor .............................................................................................................................. 56 Conectarea la o baz de date ....................................................................................................................... 57 Selectarea bazei de date .............................................................................................................................. 57 Execuia comenzilor ................................................................................................................................... 58 Introducerea datelor .................................................................................................................................... 58 1.5.4. Afiarea rezultatelor.............................................................................................................................. 60 Introducerea datelor dintr-o pagin HTML ................................................................................................ 60 Scoaterea Datelor ........................................................................................................................................ 60 Numrarea liniilor ....................................................................................................................................... 61 Construirea ciclului ..................................................................................................................................... 61 Asocierea datelor la variabile ..................................................................................................................... 61 1.5.5. Alte rezultate ......................................................................................................................................... 63 Formatarea scoaterii.................................................................................................................................... 63 Selectarea unor date .................................................................................................................................... 64 1.5.6. nregistrri i erori ................................................................................................................................ 65 Interceptarea Erorilor .................................................................................................................................. 65 Ordonarea datelor ....................................................................................................................................... 65 Alte variante cu mysql_numrows i Sortare ............................................................................................... 65 Cmpul ID-Selecia unei singure nregistrri ............................................................................................. 66 Legturi la o singur nregistrare ................................................................................................................ 66 1.5.7. Actualizare i tergere........................................................................................................................... 67 2
LUCRARE DE LICEN
Pagina de afiare a actualizrii ................................................................................................................... 67 Actualizarea bazei de date .......................................................................................................................... 68 tergerea nregistrrilor .............................................................................................................................. 69 Ciclurile ...................................................................................................................................................... 69 1.5.8. ncheierea scriptului.............................................................................................................................. 69 Cutarea n script ........................................................................................................................................ 70 Finalizarea Script-ului ................................................................................................................................ 70 1.6-Aplicaia DBMT(Database Management System Technology): ............................................................ 71 1.6.2- Baze de date: ........................................................................................................................................ 75 1.6.3- Structura fiierelor: ............................................................................................................................... 75 1.6.5- Opiunile utilizatorilor .......................................................................................................................... 78 1.6.6- Modul de utilizare al aplicaiei ............................................................................................................. 78 BIBLIOGRAFIE................................................................................................................................................. 88
LUCRARE DE LICEN
INTRODUCERE
O component important a procesului educaional o reprezint informarea. Aceasta se face la nceputul procesului, pe parcurs i la sfrit. Evaluarea iniial este destinat crerii unei imagini despre nivelul performanelor anterioare ale cursailor, n funcie de care profesorul va planifica desfurarea procesului educaional. Evalurile de pe parcursul acestui proces nfieaz stadiul la care se afl cursanii la un moment dat, oferindu-i profesorului posibilitatea de a aduce eventuale corecii. Evaluarea final cuantific nivelul la care cursanii au ajuns la terminarea unui curs, msurnd astfel ndeplinirea obiectivelor respectivului curs. Aadar, informarea este omniprezent pe parcursul procesului educaional. De aceea, realizarea testelor de evaluare, aplicarea i corectarea lor este o activitate important, care ocup mult din timpul unui tutor, n funcie de tipul testului. Posibilitile de utilizare a calculatorului nu se reduc ns la crearea bazelor de date, acesta poate fi folosit i la aplicarea i corectarea lor. Ele pot fi afiate cursantului i tutorului, dar pot fi introduse n acelai timp automat n baza de date cu informatiile cursanilor, eliminndu-se astfel introducerea lor manual. O astfel de aplicaie, pe care o voi denumi n continuare DataBase Management System Technology, poate foarte uor s fie folosit i pentru auto-evaluare i documentare. Acestea pot fi accesate de cursani prin intermediul unei reele locale, sau chiar a Internetului. La afiare cursantul poate accesa informatii despre competentele sportive ale grupei sportive.
Sper ca lucrarea de fa s constituie un bun punct de plecare n nelegerea aplicaiei, iar aceasta din urm s fie utilizat cu succes de ct mai muli tutori.
LUCRARE DE LICEN
1. Tehnologiile folosite
1.1.1.Elemente ale limbajului HTML- HyperText Markup Language
World Wide Webul este o reea de calculatoare capabile de a schimba informaii sub diferite forme: texte, imagini, informaii grafice i video, informaii multimedia, etc., i a fost o creaie a fizicianului Tim Bernes Lee (cel care a inventat limbajul HTML i protocolul HTTP) de la Laboratorul European pentru fizica particulelor, care n 1989 a dorit un model de comunicare ntre fizicienii din lume prin care acetia s prezinte informaii asupra muncii lor prin intermediul informaiilor stocate n reea. Informatia Web este stocat n documente numite pagini html. Paginile html sunt fiiere stocate in computere numite servere web. Computerele care citesc paginile html sunt numite clienti web. Clientii web vad paginile cu un program numit browser web. Cele mai populare browsere sunt Internet Explorer si Mozilla Firefox . Toate paginile html contin instruciuni despre cum sa fie afiate. Browser-ul afieaza pagina citind aceste instructiuni. Cele mai obinuite instruciuni de afiare sunt numite taguri HTML. Tagurile HTML arata astfel: . Standardele Web nu sunt facute de Netscape sau Microsoft. Deciziile Web sunt luate de catre W3C. W3C inseamna World Wide Web Consortium. Cele mai importante standarde web sunt HTML, CSS si XML.
Structura unei pagini web Orice pagin incepe si se sfarseste cu tagurile: O pagin trebuie sa aiba tagurile: -conine informatii despre pagina respectiv; -conine corpul paginii; 5
LUCRARE DE LICEN
</title>
n exemplul de mai sus se observa ca pagina html deja are un titlu i ca n corpul ei apare un mesaj ca in imaginile de mai jos.
LUCRARE DE LICEN
Atributele sunt ca o descriere pentru taguri, ele mereu au nume si o valoare. Un atribut se scrie sub forma: si se introduce in tag sub forma: Ex: La tagul body bgcolor="yellow"></body> putem sa adaugam atributul bgcolor cu valoarea yellow sub form <body
Dac se pune acest tag n pagina care ai creat-o vei observa ca pagina are culoarea galben. Tocmai ai schimbat culoarea de fundal. Atenie , tagul <body> se pune o singur dat intr-o pagin, nu de mai multe ori! Atributul bgcolor schimb fundalul unei pagini. Putei sa-i dati ca valoare orice culoare n limba englez. Cum se vede i mai sus culoarea yellow din exemplu, care n engleza nseamna galben. Atributul align poziioneaz un element. Ex: <h1 align="center"> - pune un text antet pe centru align="center" - aliniaza n centru align="left" - aliniaza la stanga align="right" - aliniaza la dreapta Atibutul si valoarea se adaug unde se deschide tagul. De reinut este faptul c: -un tag poate sa aib oricte atribute; -unele taguri suport doar anumite atribute; -atributele au valori standard; -exista diferene intre cum vede browserele atributele, adica Mozilla Firefox poate afisa pagina diferit de IE sau de alte browsere. 7
LUCRARE DE LICEN
LUCRARE DE LICEN
Atributul alt i spune celui ce vede pagina ce se afla n locul imaginii dac browser-ul nu poate ncarca imagini.
Cu HTML se pot crea tabele. Tabelele se definesc cu tagul <table>. Un tabel este divizat n randuri (cu ajutorul tagului <tr>) i fiecare rnd este imparit in celule de date (cu ajutorul tagului <td>). Td inseamna "table data" i este continutul unei celule de date. O celula de date poate conine text, imagini, liste, paragrafe, formulare, linii orizontale, tabele etc. <table border="1"> <tr> randul 1, celula 1 randul 1, celula 2 9
LUCRARE DE LICEN
<td>randul 1, celula 1 </td> <td>randul 1, celula 2 </td> </tr> <tr> <td>randul 2, celula 1 </td> <td>randul 2, celula 2 </td> </tr> </table>
Daca border="0" tabelul va exista dar va avea border-ul invizibil. Si cu cat nr border-ului va creste border-ul va fi mai ingroat. <table>Definete un tabel. <th>Definete o celula cap de tabel. <tr>Definete un rand de tabel. <td>Definete o celula din tabel. <captation>Definete un camp asociat tabelului pentru introducerea unei explicaii. <colgroup>Definete grupuri de coloane ale tabelului. <col>Definete valorile atributului pentru una sau mai multe coloane dintr-un tabel. <thead>Definete un cap de tabel care nu se va derula. <tbody>Definete corpul unui tabel care se desfasoara in interiorul unui cap de tabel fixat si subsolul tabelului. <tfoot>Definete un subsol de tabel care nu se va derula.
Html suport liste neordonate i ordonate. Ex de lista neordonat: <ul> <li>element1 </li> <li>element2 </li> </ul> Prin <ul type=""> semnul din fat poate fi modificat. <ul type="disc"> , <ul type="circle"> , <ul type="square"> Ex de lista ordonat: <ol> <li>element1 </li> <li>element2 </li> </ol> 10
LUCRARE DE LICEN
Iniial n fa va aprea 1. , 2. .Prin type"A" se va schimba in A. , B. , C. ,etc. type"a" se va schimba in a. , b. , c. ,etc. type"I" se va schimba in I. , II. , III. ,etc. type"i" se va schimba in i. , ii. , iii. ,etc.
Cu ajutorul cadrelor, se pot afia mai multe pagini web n aceeasi fereastr de browser. Fiecare document HTML poarta numele de cadru (frame) i fiecare cadru este independent de celelalte. <frameset cols="30%,70%"> <frame src="pagina1 name="left"> <frame src="pagina2 name="right"> </frameset> <frameset> Definete un set de cadre. <frame> Definete o sub-fereastra (un cadru). <noframes> Definete o sectiune noframei. <iframe> Definete o sub-fereastra inline.
LUCRARE DE LICEN
</form> Checkbox: <form> Am un caine: <input type="checkbox" name="animal" value="caine"> <br> Am o pisica: <input type="checkbox" name="animal" value="pisica"> </form> Formular cu actiune: <form name="input" action="html.php" method="get"> Username: <input type="text" name="user"> <input type="submit" value="Submit"> </form>
12
LUCRARE DE LICEN
1.2.
Reguli CSS
1.2.1. Introducere
CSS este un acronim provenind din Cascading Style Sheets, care nseamn "foi de stil n cascad". n documentele W3C, CSS nu e definit ca un nou limbaj, ci ca un mecanism care permite formatarea documentului HTML. CSS-ul nu exclude HTML-ul din pagina web. Nu se poate realiza o pagin web folosind numai CSS, care a fost proiectat astfel nct s conlucreze cu HTML-ul. Tagurile HTML au fost iniial destinate pentru a defini coninutul unui document. Pentru a afia "Acesta este un antet", "Acesta este un paragraf" sau "Acesta este un tabel", trebuiau folosite taguri ca <h1>,<p>,<table> etc. Modul de aranjare al documentului era sarcina browser-ului, far a fi folosite taguri de structur. Pe masur ce Netscape i IE continuau s adauge noi taguri HTML i atribute (ca tagul <font> i atributul color) sintaxei HTML originale, devenea din ce n ce mai greu s creezi site-uri web n care coninutul documentelor HTML s fie separat clar de aranjamentul documentului. Stilurile definesc cum s fie afiate elementele HTML 4.0, aa cum face tagul font sau atributul color n HTML 3.2. Stilurile sunt salvate n mod normal n fiiere diferite de cele cu extensia html. Foile de stil externe permit s schimbarea apariiei i aranjarii tuturor paginilor n site-ul web, doar prin editarea unui singur document CSS. Pentru ncercarea de schimbare a fontului sau a culoarii tuturor anteturilor din paginile web creata, CSS poate scuti de mult munc inutil. Proiectanii CSS-ului au urmrit ndeosebi separarea ntre coninutul paginii (textul destinat vizitatorului i imaginile din pagin) i codul-surs. Folosind CSS, se ajunge la un control mai fin asupra paginii web, la scderea dimensiunii n octeti a paginii web, atunci cnd codul CSS e coninut ntr-un fiier extern. Modificnd fiierul CSS extern, modificm simultan toate paginile web n care acesta e inclus. Se pot crea efecte mai sofisticate dect cele produse de codul HTML: suprapunerea unei imagini peste alt imagine, a unui text peste alt text, impresia de relief, efectul hover, afiarea unor fonturi mai mari dect h1 etc. CSS este foarte util n Web design, deoarece le permite developerilor s controleze stilul i chenarul mai multor pagini web n acelai timp. Ca web developer se poate defini un stil pentru fiecare element HTML i aplica orictor pagini web se dorete. Pentru a face o schimbare global, se schimb stilul i toate elementele din paginile web vor fi modificate automat. Dezavantaj lucrului cu CSS este c pagina coninnd cod CSS poate arata diferit n navigatoare diferite, deoarece nu toate browserele interpreteaz codul CSS la fel. Adugnd cod JavaScript, se obtin efecte i mai sofisticate, chiar de animatie. CSS + JavaScript = DHTML (Dynamic HTML). Aceste efecte spectaculoase justific titulatura de "artiti CSS" sau "artizani CSS" acordat unor creatori de pagini web. Foile de stil dau posibilitatea specificrii informaiei despre stil n mai multe feluri. Stilurile se pot specifica ntr-un singur element HTML, n interiorul elementului <head> al unei pagini HTML sau ntr-un fiier extern CSS. Dintr-un singur document HTML se pot face referiri ctre mai multe foi de stil externe. Deci, un stil din interiorul unui element HTML are cea mai mare prioritate, ceea ce nseamn c va suprascrie fiecare stil declarat n tagul <head>, ntr-o foaie de stil extern i n browser. n documentul HTML, codul CSS poate fi introdus n mai multe moduri: Codul CSS e prezent n pagina web, iar efectul su se aplic asupra ntregului document.
<html> <head> <style> b {color:red;} i {color:blue;} </style>
13
LUCRARE DE LICEN
</head> <body> <p align=center><b>Introducere n CSS</b></p> <p><i>Aceast sectiune se adreseaz celor ce cunosc deja HTML-ul. </i></p> </body> </html>
Consecin: Orice text cuprins ntre <b>i </b> va fi afiat cu rou, oriunde s-ar afla n document. Orice text afiat cu italice va fi de culoare albastr. Se observ c introducerea codului CSS n head duce la mrirea dimensiunii n octeti a fiierului.
<html> <head> <style> a { text-decoration: none; } </style> </head> <body> <a href="Intro.htm">Introducere</a> <a href="A.htm">Partea I</a> <a href="B.htm">Partea a II-a</a> </body> </html>
Eticheta <style> anun browserul c urmeaz codul CSS, iar </style> c a luat sfrsit codul CSS. Efectul codului alturat este c toate link-urile din acest document vor aprea nesubliniate (text-decoration:none;). Codul e prezent n pagina web, iar efectul su se aplic elementelor izolate.
<html> <head> </head> <body> <a href="Intro.htm" style="color:red;">Introducere</a> <a href="A.htm" style="color:green;">Partea I</a> <a href="B.htm" style="color:blue;">Partea a II-a</a> </body> </html>
Se observ c nu mai este, n acest caz, o etichet <style>, ci un atribut style al etichetei <a>. Orice etichet HTML poate beneficia de acest atribut. Pentru formatarea unor poriuni mari de text, se poate folosi containerele div sau span. Totui, aceast abordare nu satisface principiul separrii codului CSS de textul afisat n browser. Codul CSS se afl ntr-un fiier extern, cu extensia css. Efectul su se aplic ntregului document.
14
LUCRARE DE LICEN
<html> <head> <link rel=StyleSheet href="x.css" title="Setarea link-urilor" type="text/css"> </head> <body> <a href="Intro.htm">Introducere</a> <a href="A.htm">Partea I</a> <a href="B.htm">Partea a II-a</a> </body> </html>
Fiierul extern poate fi scris n Notepad i salvat cu extensia css. Includerea sa n pagina web se face folosind tag-ul <link>, care trebuie s se afle ntre <head>i </head> (n antetul paginii). Fisierul x.css poate conine urmtorul cod:
body { color: blue;} a {color: red; text-decoration: none;}
Consecina va fi afiarea cu fonturi albastre a ntregului text, exceptnd link-urile, care vor fi colorate n rosu. ntr-un fiier html, pot fi incluse astfel oricte alte fiiere cu extensia css, htm, html sau pdf. Aceast metod de includere a CSS-ului n pagina web e mai avantajoas ca primele dou. Codul CSS introdus astfel conlucreaz cu cel scris direct n pagin. Documentul CSS se poate importa n pagina web. Cod:
<html> <head> <style> @import url(http://www.cartomatica.net/fis/x.css); </style> </head> <body> </body> </html>
Importul trebuie declarat imediat dup tag-ul <style>, naintea oricrei alte linii de cod. n exemplul alturat, s-a realizat importul n pagina curent a fiierului x.css din directorul fis al siteului www.cartomatica.net. Desigur, fiierul importat poate avea i o adres relativ. Sintaxa CSS este alctuit din trei pri: un selector, o caracteristic i o valoare. Selectorul este elementul/tagul care se dorete a fi definit, caracteristica este atributul pe care dorete a fi schimbat i fiecare caracteristic poate lua o valoare. Caracteristica i valoarea sunt separate de semnul (:) i sunt ncadrate de acolade:
body {color: black}
Dac se dorete s specificarea mai mult de o caracteristic, trebuie s separat fiecare caracteristic cu semnul (;). Exemplul de mai jos arat cum sedefinete un paragraf aliniat central, cu culoarea roie a textului:
p {text-align: center; color: red}
15
LUCRARE DE LICEN
Pentru a ntelege mai bine aceasta definiie de stil, se poate descrie o caracteristic pe fiecare rnd, ca n exemplul urmtor:
p{ text-align: center; color: black; font-family: arial }
Atributul class Cu acest atribut se pot defini stiluri diferite pentru acelai element. S zicem c se doresc dou tipuri de paragrafe n documentul: unul aliniat la dreapta i unul centrat. Iat cum se poate face asta cu stiluri:
p.right {text-align: right} p.center {text-align: center}
Atributul id Atributul id trebuie s fie unic pe pagin. Nu poate exista dect un element cu un id dat ntr-un document. El este marcat n documentul HTML cu id n loc de class:
<p id="intro"> Acest paragraf va fi aliniat la dreapta. </p>
Atributul id poate fi definit n doua moduri. Poate fi definit pentru a se potrivi tuturor elementelor cu un id specific sau s se potriveasc numai unui element cu un id specific. n exemplul urmtor, atributul id se va aplica tuturor elementelor cu id= "intro":
#intro { font-size:110%; font-weight:bold; color:#0000ff; background-color:transparent }
16
LUCRARE DE LICEN
Pseudoclasele se utilizeaz pentru personalizarea legturilor web, att de tip text, ct i de tip imagine. Ele se definesc n interiorul unui bloc <style>...</style> sau ntr-un fiier extern. Exemplul de mai jos este edificator n acest sens: a: link {color: blue; font-size: 15pt;} a: hover {color: red; font-style: italic; text-decoration: none} a: visited {color: magenta; font-size: 15pt; text-decoration: none} a: active {color: cyan; font-size: 15pt; text-decoration: none} Explicaii:
a: link se refer la modul n care arat un link n mod normal; a: hover se refer la modul n care arat un link atunci cnd se trece cu mouse-ul peste el (n Netscape funcioneaz doar de la versiunea 6); a: active se refer la modul n care arat un link atunci cnd se efectueaz click pe el; a: visited se refer la modul n care arat un link deja vizitat; specificaia "text-decoration: none" elimin sublinierea implicit cu o linie albastr a link-ului.
Pentru ca numai anumite legturi s utilizeze un stil, se pot folosi urmtoarele trei metode: 1. a: link.C LASA1 {. ..} combinat cu <a class = CLASA1 href=" "> ...</a> 2. a: link#ID1 {...} combinat cu <a id = ID1 href=" "> ...</a> 3. a.C LASA1: link {...} combinat cu <a class = CLASA1 href=" "> ...</a> n browsere cursorul mouse-ului are n general o form simpl i binecunoscut, lund pe parcursul vizionrii paginii respective maximum dou infiri diferite:
Mna - atunci cnd este poziinat pe o legtur Sgeata oblic din direcia dreapta jos spre stnga sus - atunci cnd este poziionat pe alt obiect dect o legtur.
Acestea sunt ns formele implicite. Exist ns i cazuri n se dorete ca acel cursor s ia o alt form dect cele dou predefinite. La fel ca multe alte probleme care privesc modul n care arat o pagin, i aceast problem i gsete rezolvarea n folosirea CSS ca limbaj de descriere a modului de stilizare a unui document. Proprietatea care manipuleaz forma cursorului se numete simplu: "cursor" i poate fi introdus n orice element "style" al unui tag html. De exemplu, pentru obinerea unei imagini a cursorului de tipul unei sgei nsoite de un semn de ntrebare la trecerea mouse-ului peste un link, iat codul care va trebui folosit: <a href="fisier.html" style="cursor: help">Legatura</a>
Nu este ns unicul mod de stilizare a cursorului mouse-ului. n continuare sunt prezentate codurile pentru toate formele de cursor care se pot folosi: 17
LUCRARE DE LICEN
auto crosshair default e-resize hand help move n-resize ne-resize nw-resize pointer s-resize se-resize sw-resize text w-resize wait
utilizeaza setarile implicite ale utilizatorului creeaza o cruce setarile implicite ale browserului sageata Est-Vest mana semnul intrebarii cruce cu sageti la capete sageata sud-nord sageata SudVest - NordEst sageata SudEst - NordVest mana sageata Nord - Sud sageata NordVest - SudEst sageata NordEst - SudVest bara verticala campuri de introducere a datelor sageata Est-Vest clepsidra
div, span i etichete CSS Eticheta html <div> funcioneaz asemntor cu eticheta html <p>, putnd gzdui comenzi CSS aplicabile la un bloc sau mai multe din coninutul paginii. Eticheta html <span> este similar cu eticheta html <font> (pe cale de a fi eliminat de consoriul W3C) aplicndu-se elementelor dintr-un paragraf. Etichetele CSS sunt cunoscute sub numele de elemente sau selectori avnd un layout asemntor cu etichetele HTML.
// eticheta HTML <eticheta argument="valoare"> // eticheta CSS element{argument: valoare;}
elementul poate fi o etichet HTML, un id sau un class, iar argumentul i valoarea sunt aceleai ca n HTML. Exemplu: acelai text realizat n HTML i n HTML cu CSS
// HTML <font color="#00FF00"> <p>Text verde</p> </font> // HTML cu CSS <p style="color: #00FF00;"> Text verde </p>
Comenzile de CSS pot fi plasate i n zona HEAD rezultnd o funcionare identic, chiar mai mult, aceleai comenzi putnd fi folosite n mai multe locuri n aceeai pagin. 18
LUCRARE DE LICEN
-->
</style> </head> <body> <p>Text verde</p> Text negru <p>Text verde</p> </body> </html>
Elementele id i class id i class sunt comenzi care dau unei formatri CSS un nume. Se folosesc atunci cnd dorim s aplicm un style de formatare unei anume zone. Pentru compatibilitate cu versiunile anterioare de browsere, numele asociate zonelor nu vor conine caracterul _ Elementul id se aplic unui style de format o singur data sau la o singur etichet HTML, plasndu-se un nume acelui style. Acest element necesit existena comezilor CSS n zona HEAD sau ntr-un fiier extern. Exemplu: folosirea elementului id
<html> <head> <title>Exemplu 2_1</title> <style type="text/css"> <!-- #albastru{color: #0000FF;}--> </style> </head> <body> <p id="albastru">Text albastru introdus prin id "albastru"</p> Text negru </body> </html>
Elementul class este similar cu id dar spre deosebire de acesta poate fi folosit de mai multe ori sau pentru zone mai mari. Ca i la id necesit existena comezilor CSS n zona HEAD sau ntr-un fiier extern. Exemplu: folosirea elementului class: 19
LUCRARE DE LICEN
<html> <head> <title>Exemplu 2_2</title> <style type="text/css"> <!-- .rosu{color: #FF0000;}--> </style> </head> <body> <p class="rosu">Primul text rosu introdus prin class "rosu"</p> Text negru <p class="rosu">Al doilea text rosu introdus prin class "rosu"</p> </body> </html>
Stiluri pentru fonturi Aceste elemente specific argumentul fontului care se asociaz unui element HTML fiind incluse ori n zona HEAD ori n interiorul etichetei dorite. n cazul de fa se remarc asemnarea cu eticheta font din HTML care accept argumentele type, style, size i weight. font-family font-family este de fapt o list de fonturi din care browserul va folosi n ordinea n care le recunoate (primul folosit va fi primul din list, dac nu este recunoscut l folosete pe al doilea i tot aa mai departe). Este recomandat ca ultima poziie din list s fie un font generic (de exemplu serif, sans-serif sau monospace). n situaia n care numele fontului este format din dou cuvinte, se ncadreaz ntre ghilimele duble pentru ca browserul s le interpreteze mpreun. Exemplu: CSS introdus n HEAD aplicat etichetei p. Browserul nu recunoate primele dou fonturi din list, folosindu-l pe al treilea:
Cod:
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-- p{font-family: font1,font2,arial;}--> </style> </head> <body> <p>Text scris cu cu fontul Arial</p> Text negru <p>Text scris cu cu fontul Arial</p> </body> </html>
20
LUCRARE DE LICEN
<title>Exemplu</title> </head> <body> <p style="font-family: font1,font2,arial;">Text scris cu cu fontul Arial</p> Text negru <p style="font-family: font1,font2,arial;">Text scris cu cu fontul Arial</p> </body> </html>
font-size Este parametrul prin care stabilim dimesiunea fontului, exprimat n pixeli (px), puncte (pt), keywords sau procente. Are o funcionare asemntoare cu eticheta <font>. Exemplu: CSS introdus n HEAD aplicat etichetei p, dimensiunea exprimat n pixeli:
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-- p{font-size: 20px;}--> </style> </head> <body> <p>Text scris cu font de 20px</p> Text negru </body> </html>
Pentru dimensiunea exprimat n puncte folosim acelai exemplu nlocuind px cu pt. Dimensiunea exprimat prin keywords folosete cuvinte n loc de cifre. apte cuvinte nlocuiesc dimensiunile de la 1 la 7 de la vechea etichet FONT FACE din HTML. CSS keyword numar FONT size xx-small 1 x-small 2 Small 3 medium 4 Large 5 x-large 6 xx-large 7 Pentru verificare se poate folosi exemplul anterior n care se nlocuiete 20px cu unul din cuvintele de mai sus. Procentele sunt o alt valoare pe care o poate lua font-size. Aceast modalitate poate fi vizualizat diferit de browsere diferite. Ca verificare folositi acelasi exemplu schimbnd 20px cu 200%. font-style font-style este folosit pentru a aduga caracteristica italic fontului. Poate lua valorile normal i italic. 21
LUCRARE DE LICEN
font-weight font-weight este parametrul care stabilete grosimea caracterului putnd lua valorile numerice de la 100 la 900 sau BOLD, BOLDER, LIGHTER.
<style type="text/css"> <!-- p{font-weight: 700;}--> </style>
Compunerea stilurilor Stilurile prezentate anterior pot fi folosite simultan n interiorul aceeai etichete fiind desprite de caracterul ; (punct i virgul). Exemplu: folosirea unui stil compus aplicat etichetei p
<html> <head> <title>Exemplu 3_4</title> <style type="text/css"> <!-p{ font-family: arial; font-size: 20px; font-style: italic; font-weight: 800;} --> </style> </head> <body> <p>Text scris cu Arial, 20px, italic, 800</p> Text negru </body> </html>
Stiluri pentru text Aliniere text-align poziioneaz pe orizontal obiecte (de exemplu text sau imagini) i admite valorile left, right i center ca i eticheta align din HTML. n continuare este prezentat ca exemplu codul folosit n HEAD, aplicat etichetei p:
<style type="text/css"> <!-p{text-align: center;} --> </style>
Exemplu: prin intermediul lui div aplicm stilul pe centru imaginii i textului: 22
LUCRARE DE LICEN
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-p{text-align: center;} --> </style> </head> <body> <div class="pecentru"><img src="poza.jpg"></div> Text neformatat <div class="pecentru">Text formatat</div> </body> </html>
vertical-align este folosit pentru alinierea pe vertical a obiectelor dintr-un tabel i poate lua valorile: top, middle i bottom. n exemplul de mai jos este creat clasa sus care va putea fi aplicat elementelor <td> ale tabelului:
<style type="text/css"> <!-.sus{vertical-align: top;} --> </style>
float este folosit pentru alinierea textului cu imaginile i poate avea valorile: left i right. n funcie de valoarea aleas imaginea va fi aliniat n partea opus a paginii. Exemplu: se creeaza clasa auto i o aplicm inaginii
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-.auto{float: left;} --> </style> </head> <body> <img src="poza.jpg" class="auto"> Textul se aliniaza la dreapta, iar poza la stanga datorita clasei "auto". </body> </html>
Tabulare - text-indent este folosit pentru alinierea textului n interior avnd valori exprimate n inci (in), centimetri (cm) sau pixeli (px). n exemplul de mai jos text-indent este aplicat etichetei p deplasnd textul cu 10 pixeli n interior:
<style type="text/css"> <!-p{text-indent: 10px;} --> </style>
23
LUCRARE DE LICEN
Decorare text-decoration adaug sublinierea sau tierea blocului text asociat i poate avea valorile underline, linethrough sau none. Exemplu: stilul asociat etichetei p este prezentat n HEAD:
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-p{text-decoration: underline;} --> </style> </head> <body> Text normal <p>Text subliniat</p> </body> </html>
Culoare color definete culoarea textului dintr-o zon sau ntreaga pagin. Exemplu: stilul asociat etichetei p este prezentat n HEAD:
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-p{color: #0000FF;} --> </style> </head> <body> Text normal <p>Text albastru</p> </body> </html>
Stiluri pentru legturi n HTML culoarea legturilor poate fi stabilit prin atributele LINK, ALINK i VLINK declarate n interiorul etichetei BODY. Acelai lucru i chiar mai mult poate fi realizat folosind sintaxa CSS. Exemplu: 24
LUCRARE DE LICEN
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-a{font-family: arial; font-size: 20px;} a:link {color: #0000FF;} a:visited {color: #00FF00;} a:active {color: #FF0000;} a:hover {color: #000000;} --> </style> </head> <body> Text normal <a href="exemplu.html">link</a> catre exemplu </body> </html>
a - definete stilul general pentru legtur a:link - definete stilul legturii nevizitate a:visited - definete stilul legturii vizitate a:active - definete stilul legturii active (nu prea se folosete) a:hover - definete stilul cnd mouse-ul este deasupra legturii
Stiluri pentru background Culoarea pentru fundal (background) sau imagine poate fi definit pentru ntreaga pagin, o celul a tabelului sau pentru text. Culoare de fond background-color definete culoarea de fond i poate fi asociat oricrei etichete HTML. Exemplu: se definete un stil pentru ntreg BODY i un altul pentru eticheta p
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-body {background-color: #FFFF00;} p {background-color: #FF0000;} --> </style> </head> <body> Text normal <p>Text cu background rosu</p> </body> </html>
25
LUCRARE DE LICEN
Imagine de fond Imaginile pot fi folosite ca fundal n spatele ntregii pagini, a unui obiect sau a textului. background-image asociaz o imagine ca fundal unui obiect. Exemplu: un stil pentru eticheta p
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-p {background-image: url(poza.jpg);} --> </style> </head> <body> Text normal <p>Text cu imagine de fond</p> </body> </html>
Repetare Funcie de dimensiunile obiectului cruia i sunt asociate imaginile de fond se repet pe orizontal i vertical. Repetarea poate fi controlat prin parametrul background-repeat care poate lua valorile: repeat-x - imaginea se repet pe orizontal repeat-y - imaginea se repet pe vertical no-repeat - imaginea nu se repet Exemplu: imaginea nu se repet sub eticheta p:
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-p {background-image: url(poza.jpg); background-repeat: no-repeat;} --> </style> </head> <body> Text normal <p>Text cu imagine de fond</p> </body> </html>
Poziia n mod normal imaginea de fundal ncepe din colul stnga sus al obiectului asociat, dar acest lucru poate fi controlat prin comanda CSS background-position. Sunt acceptate dou valori: n prima poziie poate fi: top, center, bottom, percentage sau pixel n a doua poziie poate fi: right, center, left, percentage sau pixel 26
LUCRARE DE LICEN
Exemplu: imaginea de fundal este asociat etichetei BODY fiind amplasat top i center, fr repetare:
<html> <head> <title>Exemplu 5_4</title> <style type="text/css"> <!-body {background-image: url(poza.jpg); background-repeat: no-repeat; background-position: top center;} --> </style> </head> <body> Text normal </body> </html>
Stiluri pentru liste list-style-type Folosind eticheta ol din HTML cream liste ordonate sau numerotate. Adugnd comenzi CSS n zona HEAD se pot aduga pe lng numere i cifre sau alte simboluri. Browserul Netscape nu permite asocierea comenzilor CSS dect pentru eticheta li. Sintaxa este:
<style type="text/css"> <!-li {list-style-type: valoare;} --> </style>
valoarea poate fi: valoare disc Disc disc circle cerc square ptrat decimal numere ntregi lower-roman numere romane, caractere mici (i, ii, iii, iv) upper-roman numere romane, caractere mari (I, II, III, IV) upper-alpha litere mari (A, B, C, D) lower-alpha litere mici (a, b, c, d) None nimic Exemplu: lista ordonat folosind marcaje cu litere mici:
<html> <head> <title>Exemplu</title> <style type="text/css">
27
LUCRARE DE LICEN
<!-li {list-style-type: lower-alpha;} --> </style> </head> <body> Necesar materiale: <ol> <li>caramida</li> <li>ciment</li> <li>ipsos</li> </ol> </body> </html>
list-style-image n afara simbolurilor de marcaj prestabilite cunoscute de browser pot fi folosite i imagini prin comanda CSS list-style-image. Imaginile sunt introduse prin adresa url(). Exemplu: lista ordonat folosind ca marcaj imaginea punct.gif
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-li {list-style-image: url(punct.gif);} --> </style> </head> <body> Necesar materiale: <ul> <li>caramida</li> <li>ciment</li> <li>ipsos</li> </ul> </body> </html>
Chenare i margini Fiecare element HTML poate fi neles ca o caset dreptunghiulara (box), iar toate cutiile au aceeai structur: "width", "padding", "border" i "margin".
28
LUCRARE DE LICEN
marginea (margin) este spaiul exterior chenarului pn la celelalte elemente chenarul (border) este o bordur care nconjoar elementul completarea (padding) stabilete distana dintre coninut i chenar coninutul include informaia util (text, tabele, imagini, formulare, etc.) Originea elementului este considerat colul din dreapta sus fa de care se vor raporta toate dimensiunile prezentate n continuare. Domeniul de coninut (width i height) Fiecare element are o lime (width). Dac aceasta nu a fost definit, n cazul elementelor de tip block, box-ul este att de lat ct trebuie s fie, deci ct coninutul box-ului. Limea i nlimea unui element sunt stabilite n HTML prin atributele width i height. Aceste atribute pot fi adugate sau suprascrise prin comenzi CSS. Exemplu: folosind comenzi CSS modificm dimensiunile originale ale imaginii:
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-img {width: 50px; height: 100px;} --> </style> </head> <body> <img src="margini.gif"> </body> </html>
29
LUCRARE DE LICEN
Distana interioar (padding i margin) ntre coninut i marginea box-ului se afl distana interioar (padding). padding stabilete distana dintre obiect i chenar simultan pentru toate laturile. De asemenea padding preia culoarea de fundal a documentului coninut. Distantele pot fi stabilite i individual folosind padding-top, padding-bottom, padding-left sau padding-right. margin stabilete distana dintre chenar i celelalte obiecte din pagin simultan pentru toate laturile. Distanele pot fi stabilite i individual folosind margin-top, margin-bottom, margin-left sau margin-right. Valorile pentru padding i margin pot fi exprimate n: px (pixeli), in (inci), pt (puncte) sau cm (centimetri). Exemplu: folosind comenzi CSS imaginea este poziionat la 100px fa de latura stng i 25px fa de latura de sus:
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-img {margin-left: 100px; margin-top: 25px;} --> </style> </head> <body> <img src="margini.gif"> </body> </html>
Marginea (border) n jurul "padding" se seteaz chenarul (border), care pentru toate patru laturile poate avea o lime (width), culoare (color) i style (tiat, punctat, liniat etc.) diferite. Netscape i Internet Explorer afieaz diferit chenarele. Comanda CSS pentru definirea chenarului este border avnd proprietile asociate width, style i color. Pentru a fi siguri c aceste proprieti funcioneaz att n Internet Explorer ct i n Netscape trebuie s declarm pentru border cel puin width i style. border-width - stabilete grosimea chenarului i poate fi exprimat n px (pixeli), pt (puncte), cm (centimetri) sau in (inci). border-style - stabilete tipul chenarului i poate fi dotted, dashed, solid, double, groove, ridge, inset i outset. border-color - stabilete culoarea chenarului i poate fi exprimat prin valoare hexazecimala sau n cuvinte. Exemplu: definim nou clase utiliznd proprietile border-width, border-style i border-color:
<html> <head> <title>Exemplu</title> <style type="text/css"> <!-.clasa1 {border-width: 2px; border-style: dotted; border-color: red;} .clasa2 {border-width: 3px; border-style: dashed; border-color: blue;} .clasa3 {border-width: 2px; border-style: solid; border-color: green;} .clasa4 {border-width: 3px; border-style: double; border-color: black;} .clasa5 {border-width: 2px; border-style: groove; border-color: silver;}
30
LUCRARE DE LICEN
.clasa6 {border-width: 3px; border-style: ridge; border-color: lime;} .clasa7 {border-width: 2px; border-style: inset; border-color: yellow;} .clasa8 {border-width: 3px; border-style: outset; border-color: aqua;} .clasa9 {border-width: 2px; border-style: hidden; border-color: olive;} --> </style> </head> <body> <div class="clasa1">border-width: 2px; border-style: dotted; border-color: red;</div><br> <div class="clasa2">border-width: 3px; border-style: dashed; border-color: blue;</div><br> <div class="clasa3">border-width: 2px; border-style: solid; border-color: green;</div><br> <div class="clasa4">border-width: 3px; border-style: double; border-color: black;</div><br> <div class="clasa5">border-width: 2px; border-style: groove; border-color: silver;</div><br> <div class="clasa6">border-width: 3px; border-style: ridge; border-color: lime;</div><br> <div class="clasa7">border-width: 2px; border-style: inset; border-color: yellow;</div><br> <div class="clasa8">border-width: 3px; border-style: outset; border-color: aqua;</div><br> <div class="clasa9">border-width: 2px; border-style: hidden; border-color: olive;</div> </body> </html>
Marginea exterioar (margin) Fiecare box are i o distan exterioar (margin) pn la celelalte elemente, care preia culoarea de fundal a elementului nconjurtor. Modelul box servete pentru formatarea distanelor n i ntre box-urile unei pagini web i este extrem de diversificat. Poziionarea obiectelor Poziionarea permite aezarea unui obiect ntr-un anume loc folosind coordonatele. Totodat obiectele pot fi poziionate pe straturi diferite, unul deasupra celuilalt. Att poziionarea absolut (ASOLUTE) ct i cea relativ (RELATIVE) folosesc proprietile LEFT i TOP exprimate n px (pixeli), in (inci), pt (puncte), ems, procentaje sau cm (centimetri). Poziionarea absolut plaseaz obiectul n pagin exact n locaia dat de left i top. Astfel poate fi creat un element liber fa de celelalte din pagin. Obiectul poate fi orice, de exemplu text sau imagine. Exemplu: am aplicat poziionarea absolut etichetei h4:
<html> <head> <title>Exemplu 8_1</title> </head> <body> <h4 style="position: absolute; left: 50px; top: 50px">Text 1</h4> <h4 style="position: absolute; left: 100px; top: 200px">Text 2</h4> </body> </html>
Poziionarea relativ este poziia normal pe care o ocup un element, dup elementele anterioare i naintea celor urmtoare. Poate fi deplasat fa de aceast poziie folosind proprietile left i top. 31
LUCRARE DE LICEN
Poziionarea tridimensional Elementele sunt poziionate pe ecran pe o suprafa bidimensional dar pot fi aezate i unul deasupra celuilalt, ntr-o stiv utiliznd un indicativ (index-z) ncepnd cu 0, urmtorul 1 i tot aa n continuare. Elementul cu indexul cel mai mare este aezat deasupra. Exemplu: au fost folosite dou obiecte unul poziionat absolut celallt relativ:
<html> <head> <title>Exemplu 8_3</title> <style type="text/css"> <!-.element1 {position: absolute; left: 30px; top: 30px; z-index: 3} .element2 {position: absolute; left: 50px; top: 50px; z-index: 2} .element3 {position: absolute; left: 70px; top: 70px; z-index: 1} --> </style> </head> <body> <div class="element1"><img src="poza.jpg"></div> <div class="element2"><img src="poza.jpg"></div> <div class="element3"><img src="poza.jpg"></div> </body> </html>
32
LUCRARE DE LICEN
1.3. Instalarea si configurarea PHP si MySQL cu serverele web Apache si IIS sub sistemul de operare Windows
33
LUCRARE DE LICEN
Serverul web de la Microsoft, IIS poate fi instalat doar cu CD-ul de instalare al sistemului de operare Windows, folosind funcionalitatea: Add/Remove Windows Components (Start > Settings > Control Panel > Add/Remove Programs > Add/Remove Windows Components, pe partea stanga). In Windows XP, instalarea acestuia este imediat, in sensul ca nu trebuie configurat nimic special. Pentru asigurarea ca serverul IIS este pornit, se ruleaz: Computer Management (din Start > Settings > Control Panel > Administrative Tools), se navighez pn la Services and Applications, Internet Information Services, Web Sites, Default Web Site. Daca starea acestuia este Stopped se face click dreapta si se selectez Start. Apache HTTP Server si Microsoft IIS nu pot rula in acelasi timp. Pentru a testa daca oricare dintre servere a fost instalat corect, se navighez cu browserul web la adresa http://localhost. Mai jos, sunt capturi de ecran cu pagina ncarcata n cazul n care instalarea a fost efectuat cu succes, pentru cele doua servere tratate. Pentru a ncarca pagini ce pot fi accesate local de catre serverul web, se copiaz n directorul:
c:\Inetpub\wwwroot\ pentru Microsoft IIS c:\Program Files\Apache Software Foundation\Apache2.2\htdocs\ pentru Apache
n unele versiuni mai vechi, "Apache Software Foundation" se numeste "Apache Group", de asemenea, numele directorului in care este instalat serverul web ( "Apache2.2" in acest exemplu) este denumit dupa versiunea curenta instalat.
34
LUCRARE DE LICEN
35
LUCRARE DE LICEN
36
LUCRARE DE LICEN
3) Acum, pentru a configura i serverul web Apache sa lucreze cu PHP, se merge la c:\Program Files\Apache Software Foundation\Apache2.2\conf\ (sau locatia corespunzatoare distributiei instalate) i se deschide fisierul httpd.conf cu Notepad (sau alt editor text). Se parcurge treptat instruciunile de mai jos si adaugaug la sfaritul fiierului liniile ce corespund situaiei. Dupa ce s-a fcut acest lucru, se restarteaz serverul Apache. ncarcarea modulului PHP, pentru Apache 2 si PHP 4 LoadModule php4_module c:/php/sapi/php4apache2.dll carcarea modulului PHP, pentru Apache 2 si PHP 5. Pentru acest caz, exist o cunoscut eroare de compatibilitate intre Apache 2.0.x si Apache 2.2.x, legat de interfata API. Pentru versiunile Apache 2.0.x se pot utiliza cu succes directiva de mai jos. Pentru 2.2.x, trebuie sa se foloseasc fiierul php5apache2_2.dll, disponibil in distribuia PHP 5.2.x, aflat n stare de dezvoltare i testare, la momentu la scrierii acestui articol. Se alegei una din directivele de mai jos: #pentru Apache 2.0.x LoadModule php5_module c:/php/php5apache2.dll #pentru Apache 2.2.x LoadModule php5_module c:/php/php5apache2_2.dll Incarcarea modulului PHP, pentru Apache 1.3.x si PHP 4 LoadModule php4_module c:/php/sapi/php4apache.dll Incarcarea modulului PHP, pentru Apache 1.3.x si PHP 5 LoadModule php5_module c:/php/sapi/php5apache.dll Doar daca ati ales Apache 1.3.x, considerati si urmatoarea linie: AddModule mod_php4.c Adaugarea suportului pentru fisiere de tip .php, .php3 sau .phtml. Stergeti caracterul "#" daca doriti suport optional si pentru ultimele doua extensii. AddType application/x-httpd-php .php #AddType application/x-httpd-php .php3 #AddType application/x-httpd-php .phtml Pentru a configura calea catre fisierul de configurare PHP (php.ini), se adaugaug i urmatoarea linie (bineineles, se nlocuiete cu calea corespunzatoare instalrii dvs.) PHPIniDir c:\php\ 37
LUCRARE DE LICEN
Pn acum trebuiesc avute trei linii pentru server-ele Apache 2 si respectiv patru linii pentru server-ele Apache 1.3.x, care se vor copia la sfartul fisierului httpd.conf.
i Macromedia Dreamweaver
PHP (se pronun pe-ha-pe) este un limbaj de programare ce ruleaz server, proiectat special pentru WEB. ntr-o pagin HTML putei ngloba cod PHP care va fi executat la fiecare vizitare a paginii. Codul PHP este interpretat pe serverul WEB i genereaz un cod HTML care va fi vzut de Uilizator (clientului (browserului) fiindu-i transmis numai cod interpretat ca i HTML).
PHP a fost conceput n anul 1994 i a fost iniial munca unui singur om, Rasmus Lerdorf. PHP este un produs Open Source, cu acces la codul surs. Il putei folosi, modifica i redistribui, toate acestea n mod gratuit. Iniial, PHP era acronimul de la Personal Home Page, dar a fost modificat pentru a se alinia la conversia de numire recursiv GNU (GNU = Gnu`s Not Unix) i acum este acronimul pentru PHP Hypertext Preprocessor. Versiunea actual a PHP este 5.2.4 Pagina de baz pentru PHP este: http://www.php.net Pagina pentru Zend (compania a crei fondatori au proiectat PHP4) se afl la http://www.zend.com
38
LUCRARE DE LICEN
Macromedia Dreamweaver este o unealt destinat creatorilor de pagini web. Dreamweaver a fost creat
de Macromedia (acum Adobe Systems) i momentan a ajuns la versiunea 10. Primele versiuni ale produsului serveau doar ca simple editoare HTML de tipul WYSIWYG dar n versiunile recente au fost implementate funcii de editare avansate i support pentru alte tehnologii web cum ar fi CSS, JavaScript etc.Dreamweaver sa bucurat de un larg succes nc de la sfritul anilor '90 i momentan deine aproximativ 80% din piaa editoarelor HTML. Produsul poate fi rulat pe variate platforme software: Mac, Windows, dar suport n acelai timp i platforme UNIX cu ajutorul unor emulatoare software, cum ar fi Wine.Ca orice alt editor WYSIWYG, Dreamweaver poate ascunde detaliile de implementare a paginilor HTML, fcnd astfel posibil crearea cu uurin a paginilor web de ctre utilizatorii neexperimentai.Unii creatori de pagini web critic aceste tipuri de editoare deoarece produc pagini de dimensiuni mult mai mari dect ar fi necesar, ceea ce conduce la o funcionare neperformant a browserelor web. Aceast afirmaie este n mare parte adevarat deoarece paginile web produse folosesc design-ul pe baz de tabel. n plus, produsul a mai fost criticat n trecut i pentru producerea de coduri care adesea nu erau conform standardelor W3C, dar acest aspect a fost mult mbuntit n versiunile recente. Cu toate acestea, Macromedia a crescut suportul pentru tehnologia CSS precum i alte modaliti de design fr a fi necesar folosirea design-ului pe baz de tabel.Dreamweaver permite folosirea majoritii browserelor instalate pe calculatorul utilizatorului, pentru a previzualiza websiteul creat. De asemenea conine i cteva utilitare pentru administrarea site-urilor, cum ar fi cele pentru a gsi i modifica un paragraf sau o linie de cod, n ntregul web site, pe baza oricror parametri specificai de ctre utilizator. Cu ajutorul panourilor de stare se poate crea cod JavaScript fr a avea cunotine de programare.
LUCRARE DE LICEN
PHP vine de la "Hypertext Preprocessor" i este un limbaj de comenzi-script pentru server (se spune c acioneaz pe partea serverului - server-side language). Adic fiierele cu comenzi PHP ruleaz pe serverul Web, nu n navigator, pe staia client. PHP este un limbaj relativ nou (comparativ cu alte limbaje precum Perl (CGI) i Java), dar devine rapid unul dintre cele mai rspndite i mai populare din Internet. nvarea sau mcar nelegerea unui limbaj care s permit scrierea de scripturi Web, poate schimba complet viziunea lrgind grozav posibilitile de publicare i activitate pe Web. Chiar dac se pot descrca scripturi gata fcute, din centre precum Hotscripts, acestea, de regul, includ reclama pentru autorul respectiv i nu vor oferi exact ce se dorete. nelegnd limbajul se vor edita mai uor aceste scripturi, pentru ca s fac ceea ce se dorete, sau chiar se pot creea scripturi noi, proprii. Folosirea scripturilor n propriul centru Web permite adugarea multor elemente de noutate i interactivitate, precum formularele de feedback, crile de oaspei, sistemele colaborative numite message boards, contoare ale vizitelor i multe alte elemente mai avansate precum sistemele portal, cele de management al coninutului, gestionarii de reclame (advertising managers), etc. Astfel de elemente sunt necesare pentru a obine o imagine de profesionist. Mai mult, oricine vrea acum s lucreze n industria de proiectare i dezvoltare se centre Web va descoperi c este mult mai simplu s gseasc un loc de munc atunci cnd tie PHP i programarea Web. Utilizatorii nu trebuie s-i instaleze nimic n plus, ca soft, dar pe platforma unde ruleaz serverul Web (gazda Web) trebuie s fie instalat PHP. Acesta poate fi deja inclus (ncorporat) n serverul Web. Dac serverul nu suport PHP atunci va trebui apelat la administratorul su pentru a-l instala, PHP-ul fiind un produs public - putnd fi descrcat gratuit i simplu de la www.php.net. Alt cale este gsirea altei gazde Web care suport PHP. Sau instalarea propriul server Web mpreun cu PHP. Scrierea n PHP Pentru a scrie un fiier n PHP pe calculatorul propriu nu trebuie nimic alceva dect un editor de texte (precum Notepad din Windows).Se lansez i se pregtete scrierea primul script PHP. Declaraia PHP Scripturile PHP sunt ntotdeauna incluse ntre dou taguri PHP, conform aceleai scheme ca i n HTML. Astea spun serverului s preia information dintre ele i s o interpreteze ca expresie din PHP. Exist trei forme diferite de marcare a expresiilor - comenzilor PHP, i anume: <? comenzi PHP ?> <?php comenzi PHP php?> <script language="php"> comenzi PHP </script>
40
LUCRARE DE LICEN
Toate trei acioneaz - se comport exact la fel. n cele ce urmeaz se folosete doar prima variant (<? i ?>). Dar pot fi folosite, la fel de bine oricare din cele trei. Atenie, combinarea lor nu este ns permis, nu putem folosi pentru deschidere <? iar pentru nchidere </script> , spre exemplu. Primul script Primul script PHP este desigur unul banal i totui esenial. Tot ce va face este s furnizeze informaiile despre instalarea i starea PHP-ului pe server. Scriei cu editorul de texte urmtoarele: <? phpinfo(); ?> Aa cum se vede este o singur linie de cod PHP. Este o funcie standard din PHP, numit phpinfo, care va cere serverului s scrie i s transmit un tebel standard cu informaiile de configurare a serverului. O observaie important din acest exemplu: linia de cod PHP se termin cu punct i virgul (;). Asta-i foarte important ca sintax. La fel ca n multe alte limbaje de comenzi sau de programare, liniile trebuie s se termine cu un marcaj anume,adesea tot (;), iar dac acest terminator este omis rezult o eroare. ncheierea i testarea scriptului Odat scris, scriptul trebuie salvat ca fiier cu un nume. n acest caz, i se spune phpinfo.php. Apoi trebuie ncrcat fiierul pe server, n spaiul uzual al documentelor Web. Dup asta, folosind navigatorul, se apelez scriptul prin URL-ul corespunztor. Dac lucreaz (i dac PHP este instalat pe server) atunci se va obine o list ampl, plin cu detalii despre situaia PHP pe server. Dac scriptul nu lucreaz i apare o pagin alb, atunci este sau o eroare n modul n care a fost scris scriptul, sau serverul nu suport aceast funcie (situaie extrem de puin probabil). Dac, n locul afirii informaiilor apare o ofert de descrcare a fiierului (download), sau apare chiar scriptul aa cum a fost scris (sursa), nseamn c PHP nu este instalat pe server. Caz n care trebuie cutat alt server sau instalat PHP.
LUCRARE DE LICEN
care prin apel cu navigatorul va afia pe ecran: Hello world! Funcia de afiare n PHP Ca i n alte limbaje de programare, n PHP se pot defini variabile. Exist cteva tipuri de variabile n PHP, dar cea mai uzual este variabila ir de caractere, numit String. Poate fi folosit pentru texte sau numere. Toate irurile de caractere, toate variabilele string ncep cu semnul $ . Pentru a atribui un text unei variabile string trebuie s folosete o succesiune de forma: $text_salut = "Bun venit pe site-ul meu Web!"; Este o linie simplu de neles, tot ce se afl ntre ghilimele va fi atribuit variabilei string din membrul stng. Distincia dintre majuscule i minuscule. Astfel $Welcome_Text difer de $welcome_text Numele de iruri pot conine litere, cifre i semne de subliniere (_), dar nu pot ncepe cu o cifr sau cu semnul _ Cnd se atribuie un numr la un string nu mai e nevoie de ghilimelele. Adic este acceptat construcia: $user_id = 987 Variabile de scoatere Pentru a afia o variabil pe ecran se folosete exact aceiai comand ca i pentru a afia un text, cu o mic diferen formal. Astfel, pentru a afia stringul atribuit variabilei $text_salut scriem: <? $text_salut = "Bun venit pe site-ul meu Web!"; print($text_salut); ?> Aa cum se poate vedea, singura diferen ar fi c scriem n comanda print numele variabilei, fr ghilimele, n locul textului cu ghilimele. Formatul unui text Totul apare n navigatorul cu caracterele (fontul) predefinite. PHP fiind pe server, codul se execut nainte ca pagina s fie trimis spre navigator. Ceea ce nseamn c doar rezultatele rulrii scriptului sunt trimise, astfel c, n exemplul de mai sus spre navigator se va trimite doar textul: Bun venit pe site-ul meu Web! Iar asta permite includerea elementelor de formatare - marcare standard din HTML pentru a face ca textul s apar aa cumse dorete. Acestea pot fi plasate direct n string-ul din scriptul PHP. Multe taguri HTML pretind ghilimele n sintax. Iar asta ar provoca un conflict cu ghilimelele din irul declarat n script. Putem preciza - defini ns care semne de punctuaie au rolul ghilimelelor din script, i care sunt ghilimelele care trebuie ignorate.
42
LUCRARE DE LICEN
Sre exemplu, se afieaz textul de mai sus cu Arial scris cu rou. Asta s-ar scrie: <font face="Arial" color="#FF0000"> </font> Aici sunt 4 ghilimele care ar putea ncurca scriptul. Din cauza asta trebuie adugat un backslash (\) naintea fiecrei ghilimele pentru a face ca scriptul PHP s o ignore. Astfel vom avea: <font face=\"Arial\" color=\"#FF0000\"> </font> Iar asta poate fi deja inclus n instruciunea print: print("<font face=\"Arial\" color\"#FF0000\">Bun venit pe site-ul meu Web!</font>"); care va face ca pe navigator s apar: Bun venit pe site-ul meu Web! deoarece scriptul a transmis doar codul: <font face="Arial" color="#FF0000">Bun venit pe site-ul meu Web!</font>
43
LUCRARE DE LICEN
1.4.3. Instruciunile IF
Definiia instruciunii IF Instruciunea condiional IF este folosit pentru a compare dou valori i a realiza aciuni diferite n baza rezultatelor testului. Instruciunea urmeaz sintaxa (are forma) IF - THEN - ELSE. Partea IF testeaz o condiie. Dac aceasta este adevrat, atunci este urmat ramura THEN. n caz contrar se merge pe ramura ELSE. Structura instruciunii IF n general este urmtoarea structur: IF ('ceva' == 'altceva') { 'Ramura THEN' } else { 'Ramura ELSE' } Variabilele Uzual, se compar o variabil cu o anumit poriune de text, cu un numr, sau cu alt variabil. Spre exemplu: if ($username == "webmaster") adic se compar valoarea pe care o ia variabila cu irul precizat de caractere. Ramura THEN a instruciunii fiind executat doar dac variabila are exact valoarea care apare ntre ghilimele, adic dac coincide cu cuvntul 'webmaster'. Dac are ns valoarea 'Webmaster' sau 'WEBMASTER' va fi urmat ramura ELSE. Construcia ramurii THEN n cazul de mai sus, se poate aduga o ramur THEN de forma: if ($username == "webmaster") { echo "Please enter your password below"; } care va afia cererea parolei dac numele utilizatorului este webmaster. n caz contrar, nu se afieaz nimic. Se poate lsa instruciunea n aceast form, pentru c nu este obligatoriu s apar o ramur ELSE. Asta-i util mai ales cnd sunt condiii multiple. Construcia ramurii ELSE Adugarea unei ramuri ELSE : if ($username == "webmaster") { echo "Please enter your password below"; } else { echo "We are sorry but you are not a recognised user"; } 44
LUCRARE DE LICEN
Dar nu suntem limitai doar la o singur linie. Putem aduga orice comand PHP ntre acoladele ramurii respective. Putem chiar include alte instruciuni IF (cuibrite). Alte comparaii Exist i alte moduri de a folosi instruciunea IF pentru a compara valori. Comparnd dou variabile diferite pentru a vedea dac valorile lor se potrivesc sau nu, spre exemplu: if ($parola_introdusa == $password) Dar compararea se poate face folosind oricare din simbolurile standard de comparaie, pentru a verifica dac o valoare este mai mic sau egal dect alta: if ($varsta < "13") Sau: if ($date > $finished) Mai mult, putem avea teste multiple ntr-o singur instruciune IF. Spre exemplu, dac este un formular i se verific dac vreun cmp a fost lsat necompletat: if ($name == "" || $email == "" || $password == "") { echo "Please fill in all the fields"; }
1.4.4. Cicluri
Ciclul WHILE Ciclul WHILE este una din comenzile cele mai utile din PHP. Fr a fi prea complicat. Un ciclu WHILE va executa, aa cum sugereaz i numele, o anumit parte de cod (un set de instruciuni), atta timp ct este ndeplinit o anumit condiie. Repetarea de un numr fixat de ori Dac este o anumit secven de instruciuni care trebuie repetate de un numr fixat de ori (fr a le rescrie), atunci se poate folosi un ciclu while. Spre exemplu, dac se vrea a scrie cuvintele "Hello World" de 5 ori, se poate face astfel: $times = 5; $x = 0; while ($x < $times) { echo "Hello World"; ++$x; } 45
LUCRARE DE LICEN
Primele dou linii sunt doar atribuiri ale variabilelor. Variabila $times capt valoarea din condiia ciclului, n acest caz - 5 . Variabila $x este contorul care va numra de cte ori se execut secvena. Dup aceste atribuiri, urmeaz linia WHILE. Acesta comand repetarea secvenei dintre acolade, ct vreme $x este mai mic dect $times (alfel spus, repetarea pn c,nd $x devine egal cu $times). Secvena care se execut repetat apare n urmtoarele 2 linii (ntre acolade). Dup linia echo care afieaz textul, apare o alt linie: ++$x; Din programare tim c asta nseamn incrementarea variabilei $x, adic acelai lucru cu: $x = $x + 1; Astfel, la fiecare repetare, variabila $x ia pe rnd valorile 1, 2, 3, 4, 5. La ultima, condiia din linia WHILE nu mai este ndeplinit i ciclul ia sfrit. Folosirea lui $x Variabila de contorizare ca ciclului (n cazul de mai sus $x ) poate fi folosit nu numai pentru numrare. Spre exemplu, dac se vrea crearea unei pagini web cu toate numerele de la 1 la 1000 n ea, se poate fie scrierea fiecarui numr n parte, fie folosirea urmtoarei secvene: $number = 1000; $current = 0; while ($current < $number) { ++$current; echo "$current<br>"; } S-a plasat comanda de incrementare ++$current; naintea instruciunii echo . Asta pentru c se dorete nceperea cu scrierea lui 1 , nu a lui 0. De fapt, linia ++$current; poate fi plasat oriunde n ciclul WHILE. Dup cum se pot efectua orice operaii aritmetice asupra numrului n cauz.
Vectori
Vectori i matrici Vectorii sunt structuri obinuite n majoritatea limbajelor de programare. Sunt variabile speciale care pot lua mai mult dect o singur valoare, toate stocate n spaiul propriu numerotat - n vector. Vectorii sunt extrem de utili mai ales la ciclurile WHILE. Definirea unui vector Definirea - iniializarea unui vector este puin diferit de cea a unei variabile normale. n exemplul urmtor se va introduce un vector cuprinznd 5 nume: $names[0] = 'John'; $names[1] = 'Paul'; 46
LUCRARE DE LICEN
$names[2] = 'Steven'; $names[3] = 'George'; $names[4] = 'David'; Aa cum se vede, componentele unui vector sunt numerotate, pornind de la 0. Pentru a aduga o valoare unui vector trebuie specifict poziia din cadrul vectorului - prin intermediul indicelui plasat ntre parantezele drepte [ ]. Citirea unui vector Citirea unui vector se face exact la fel ca i atribuirea. Trebuie precizat numele vectorului i numrul componentei dorite. Astfel, dac se dorete a se vedea cel de al treilea nume (din vectorul $names ) se poate folosi scriptul: echo "Al treilea nume este $names[2]"; Which would output: Al treilea nume este Steven Folosirea vectorilor i ciclurilor Una din cele mai utile utilizri a ciclurilor apare pentru a extrage informaiile dintr-un vector. Spre exemplu, dac vrem s scoatem umtoarea list de nume: Numele 1 este John Numele 2 este Paul Numele 3 este Steven Numele 4 este George Numele 5 estes David Putem folosi urmtorul cod: $number = 5; $x = 0; while ($x < $number) { $namenumber = $x + 1; echo "Numele $namenumber este $names[$x]<br>"; ++$x } Aa cum se poate vedea, folosim variabila $x din acest ciclu pentru a afia numele nregistrate ntr-un vector. Iar pentru afiare am folosit variabila $namenumber care este cu o unitate mai mare dect $x. Asta deoarece numerotarea (indixarea) vectorului pornete de la 0.
47
LUCRARE DE LICEN
LUCRARE DE LICEN
Comanda Mail fr variabile In sintaxa comenzii mail() nu conteaz numele variabilelor ci doar poziia - ordinea lor. Adic, n exemplul de mai sus putem folosi alte patru variabile numite $v1 , $v2 , $v3 i $v4 . Totul se poate scrie i ntr-o singur linie, introducnd direct textul, n forma: mail("jalobean@relis.uvvg.ro","despre PHP","PHP este unul din cele mai bune limbaje","From: webmaster@uvvg.ro\n"); Erori Este foarte uor de fcut greeli ntr-un script, dup cum e foarte simplu s intervin greeli n scrierea adreselor e-mail (n mod special dac folosim scriptul pentru a construi mesajele). Din cauza asta, se adug scriptului o secven de verificare, de forma: if(mail($to,$subject,$body,$headers)) { echo "Mesajul e-mail a fost trimis la $to cu subiectul: $subject"; } else { echo "A intervenit o eroare la trimiterea mesajului. Verificai scriptul i asigurai-v c adresa e-mail $to este corect"; } Dac mesajul este expediat fr probleme, acest fapt va fi comunicat - va apare n fereastra navigatorului. Similar, n cazul unei erori, se va recepiona atenionarea cuvenit, cu sugestii de remediere.
LUCRARE DE LICEN
Toate elementele formularului trebuie s fie cuprinse ntre tagurile <form> . Adic se folosesc aa: <form action="prelucrare.php" method="post"> Elementele Formularului i comenzile de formatare, etc. </form> unde valoarea atribuit lui form action spune care este script-ul cruia i se transmit datele (n acest caz fiierul prelucrare.php). Aici se poate avea chiar un URL complet (spre exemplu http://relis.uvvg.ro/~jalobean/Cursuri/PHP-proc/prelucrare.php). Metoda method spune formularului cum s transmit datele sale. Cu opiunea POST datele vor fi trimise scriptului ntr-un pachet (stream) atunci cnd acesta le cere. O alt opiune este GET, caz n care datele din formular sunt trimise n forma unui url astfel c vor apare dup un semn ? , precum n exemplul: http://relis.uvvg.ro/~jalobean/Cursuri/PHPproc/prelucrare.php?name=Mihai Este indicat folosirea POST-ului dac-i vorba de informaii delicate (parole, etc.) pentru ca acestea s nu poat fi vzute n bara de adrese a navigatorului. Obinerea datelor din formular Exist dou procedee diferite de extragere a datelor n PHP, care depind de modul n care datele au fost trimise (cu metoda GET sau cu POST). Diferena major dintre cele dou const n faptul c, folosind GET, variabilele i datele vor fi vizibile n adresa paginii, n timp ce folosind POST acestea sunt invizibile. Cu GET, ns, putem transmite informaii ctre script fr un formular, editnd URL-ul. Asta se poate face cam la fel cu transmiterea formularului folosind GET. Avantajul ar fi c, astfel se pot crea legturi la script-uri care vor produce efecte diferite n funcie de legtura selectat. Spre exemplu, putem construi un script care s ne arate diferite pagini Web, funcie de legtura selectat: pagina.php?user=jalobean poate arta pagina mea Web (a utilizatorului jalobean, iar: pagina.php?user=djalobeanu poate arta pagina utilizatorului djalobeanu de pe serverul Relis, folosind acelai script. Ba este posibil transmiterea script-ului mai mult dect o singur valoare a unui atribut folosind schema de mai sus i separnd elementele prin simbolul & : pagina.php?user=david&referrer=gowansnet&area=6 Aceste elemente vor putea fi accesate separat folosind variabilele GET: user, referrer i area. Pentru a prelua o variabil care a fost trimis script-ului cu metoda POST trebuie folosit un apel de forma: $nume_variabila=$_POST['variabila']; care preia, n fond, variabila de la POST (numele unui cmp din formular) i o atribuie variabilei $nume_variabila. Similar, la folosirea metodei GET vom scrie: $nume_variabila=$_GET['variabila'];
50
LUCRARE DE LICEN
Iar asta se poate face i trebuie fcut pentru fiecare variabil pe care vrem s o folosim din formular (sau din URL).
LUCRARE DE LICEN
?> Codul HTML <? Partea final a codului PHP ?> Dac codul PHP va continua de unde a fost lsat: <? IF Statement { ?> HTML For IF Being Correct <? } else { ?> HTML For IF Being Wrong <? } ?> Trebuie, s nu fie uitat nchiderea buclelor din instruciunea IF (o eroare destul de frecvent ntlnit). One Line Prints Plasarea cod HTML n scriptul PHP, dar cnd se vrea a pune valoarea unei variabile n acea parte de cod. Spre deosebire de cazul cnd se folosete instruciunile echo sau print, nu putem se poate pune numele unei variabile ntr-o seciune care nu este cod PHP. n schimb, variabila poate fi inclus ntr-o mic secven PHP. Spre exemplu, dac se vrea scrierea numelui cuiva, dintr-un script, cu formatare HTML, se poate face astfel: <font face="Arial" size="7" color="red"><b><? echo($variablename); ?></b></font> Se adaug n secvena HTML urmtoarea secven PHP: <? echo($variablename); ?> care este totuna cu: <? echo($variablename); ?> doar c-i totul pus ntr-o singur linie.
52
LUCRARE DE LICEN
Schimbarea - rotaia Banner-elor. Pentru a realiza schimbarea pe ecran a imaginilor la diferitele vizitri ale unei pagini i a asigura astfel un interes mai mare al vizitatorilor, se poate folosi un script PHP care deschide o baz de date se extrage aleator o imagine sau un set de imagini, pentru a-l include ntr-un set de pagini Web. Scriptul PHP va contoriza deasemeni numrul de cte ori a fost vzut banner-ul, putnd, cu modificri mici, s urmreasc chiar i numrul de click-uri. Pentru a aduga, schimba sau edita bannerele, tot ce este de fcut este schimbarea bazei de date iar scriptul va ncrca banner-ul corect n toate paginile site-ului Web. Forumurile Web. Sute de forumuri de dezbatere sunt acum realizate - ruleaz n PHP i MySQL. Acestea s-au dovedit mult mai eficiente dact alte sisteme, crend cte o pagin pentru fiecare mesaj i oferind o larg varietate de opiuni. Toate paginile forumului pot fi actualizate prin schimbarea unui script PHP. Bazele de Date. Un astfel de exemplu (edificator) l ofer site-urile care dau toate informaiile dintr-o baz de date. Spre exemplu, Script Avenue este rulat de cteva scripturi, care furnizeaz toate informaiile dintr-o baz de date ampl. Toate categoriile de scripturi diferite pot fi accesate ntr-un singur script exact prin schimbarea URL-ului pentru a accesa diferite pri ale bazei de date. Site-urile Web. Cnd avem un site de mari dimensiuni - cu multe pagini, i dorina de a modifica aspectul general sau a schimba proiectul, chestiune care ar cere foarte mult timp pentru aducere la zi i ncrcare. Cu PHP i MySQL ntregul site Web se poate reduce la unul sau dou scripturi PHP care s acceseze o baz de date MySQL pentru a obine informaiile pentru paginile Web. Pentru a actualiza sau a modifica proiectul centrului Web nu trebuie s schimbm dect o pagin.
Sunt necesare trei componente pentru a putea rula scripturi PHP care s acceseze baze de date cu MySQL. 1. n primul rnd, este nevoie de un server Web. Acesta poate fi sau pe calculatorul personal sau pe o 'gazd' Web. Oricare pachet - oricare tip de server Web este acceptat i va lucra cu PHP i MySQL, dar cel mai recomandat este Apache, care e public i gratis. 2. PHP trebuie s fie instalat pe server. Dac nu este deja instalat, putei s o facei sau s apelai la administratorul serverului Web, n acest sens. Pachetul de instalare poate fi descrcat - preluat de la http://PHP.net i este deasemeni public - gratuit. 3. Este nevoie de MySQL. Acesta este de fapt pachetul de programe pentru gestiunea bazelor de date. Se poate folosi deasemenea multe alte sisteme de baze de date (SQL, Oracle etc.) dar aici discutm despre PHP/MySQL, deci este nevoie de MySQL (cu toate c se folosesc comenzi care in de limbajul SQL i 'merg' la oricare din sistemele de baze de date SQL). i pachetul MySQL este public - gratuit, putnd fi preluat din pagina oficial a firmei MySQL. Dar i n cazul MySQL trebuie verificat mai nti dac nu cumva este deja instalat. Dac nu se poate instala PHP i MySQL, sau dac gazda Web nu o permite, se poate apela la alt server Web, la alt gazd. Spre exemplu, Freedom2Surf este un server Web public, care acord acces liber i suport PHP, avnd MySQL instalat. HostRocket este un alt server excelent care ofer spaiu de pn la 300 MO, i include PHP, MySQL i multe altele, dar percepe o tax de abonament. 53
LUCRARE DE LICEN
LUCRARE DE LICEN
Crearea unei Tabele Mai nainte de orice altceva cu baza de date, trebuie s v creai o tabel. O tabel este o seciune a bazei de date pentru memorarea unor informaii structurate (legate). ntr-o tabel vom defini diferite cmpuri care vor fi folosite n acea tabel. Din cauza acestei construcii, aproape toate centrele cu baze de date trebuie s fie satisfcute folosind doar o baz de date. Crearea unei tabele n PHPMyAdmin se scrie numele, se selecteaz numrul de cmpuri i &Quot; se aps" butonul (click). Se ajunge atunci la un ecran setup n care trebuie create cmpurile pentru baza de date. Dac se folosete un script PHP pentru a crea propria baz de date, iar completa creere i iniializarea vor fi fcute ntr-o singur comand. Cmpuri Exist o larg varietate de cmpuri i de atribute disponibile n MySQL . De expemplu: Tipul cmpului Descriere TINYINT Numr Intreg mic SMALLINT Numr Intreg mic MEDIUMINT Numr Intreg INT Numr Intreg VARCHAR Text (maximum 256 caractere) TEXT Text Acestea sunt doar cteva dintre cmpurile disponibile. O cutare pe Internet poate furniza lista cu toate tipurile de cmpuri permise. Crearea unei Tabele cu PHP S creeaz o tabel din PHP este ceva mai dificil dect cu MySQL. Este de parcurs urmtorii pai: CREATE TABLE nume_tabel { Fields } Cmpurile sunt definite dup cum urmeaz: fieldname type(length) extra info, Ultimul cmp introdus nu poate include nici o virgul.
Baza de date cu adrese de contact Baza de date de contact va conine toate informaiile de contact ale cunoscuilor introdui n tabel. Iar informaiile vor putea fi editate i consulate n internet. Urmtoarele cmpuri vor fi folosite n baza de date: 55
LUCRARE DE LICEN
Lungimea 15 15 20 20 20 30 30
Descrierea Un identificator unic pentru fiecare nregistrare Numele de familie al persoanei Numele de botez al persoanei Numrul de telefon Numrul de telefon mobil Numrul de fax Adresa e-mail Pagina Web personal
E folosit un tip de cmp VARCHAR pentru coloana mumr_telefon/fax, chiar dac acestea sunt formate din cifre. Chiar dac se putea folosi tipul INT, este preferabilp folosirea VARCHAR pentru c astfel vor fi permise spaii i cratime, precum i poriuni de text, la fel ca numerele scrise ca text (exemplu 1800COMPANY) i cum nu se vor iniia apeluri telefonice de pe Web, totul e n ordine. Exist nc ceva de care trebuie avut grij n aceast baz de date. Cmpul id va fi pus ca PRIMARY, INDEX, UNIQUE i iniializat ca auto_increment (poziie ce apare n Extra n PHPMyAdmin). Raiunea pentru asta este c acesta va fi cmpul identificator (primar sau index) i deci trebuie s fie unic. Definirea sa ca auto increment nseamn c la adugarea fiecrei nregistrri, ct vreme nu specificm acolo un id, acesta va primi ca valoare urmtorul numr. Dac se folosete PHPMyAdmin sau un program de management, se poate creea o tabel numit contacte. Crearea Tabelei n PHP Pentru a crea aceast tabel se va folosi urmtoarea secven de comenzi PHP. <? $user="username"; $password="password"; $database="database"; mysql_connect(localhost,$user,$password); @mysql_select_db($database) or die( "Baza de date nu poate fi selectata"); $query="CREATE TABLE contacts (id int(6) NOT NULL auto_increment,nume varchar(15) NOT NULL,prenume varchar(15) NOT NULL,telefon varchar(20) NOT NULL,mobil varchar(20) NOT NULL,fax varchar(20) NOT NULL,email varchar(30) NOT NULL,web varchar(30) NOT NULL,PRIMARY KEY (id),UNIQUE id (id),KEY id_2 (id))"; mysql_query($query); mysql_close(); ?>
LUCRARE DE LICEN
Conectarea la o baz de date Primul lucru care trebuie fcut, mai nainte de a putea face ceva, este conectare la baza de date MySQL. Acesta este un pas foarte important, pentru c, dac nu exista conexiune, comenzile ctre baza de date vor eua. Practic, pentru a folosi o baz de date trebuie precizat numele de utilizator (username), parola (password) i numele bazei de date : $username="nume_utilizator"; $password="parola"; $database="numele_bazei_de_date"; Sursa PHP este prelucrat de server nainte de a fi trimis navigatorului, astfel ncrcat este imposibil pentru orice utilizator s vad scriptul. Mai apoi, avem nevoie de o comand care s lanseze conexiunea la baza de date: mysql_connect(localhost,$username,$password); Aceast linie spune PHP-ului s se conecteze la serverul de baze de date MySQL la 'localhost' (localhost se numete serverul pe care ruleaz PHP-ul. In afara cazului n care gazda Web indic altceva, vom folosi localhost) folosind numele de cont memorat n $username i parola din $password. nc o comand: mysql_close(); Aceasta este o comand foarte important care nchide conexiunea cu serverul de baze de date. Scriptul va rula nc, dac nu se include aceast comand, iar prea multe conexiuni MySQL deschise pot cauza probleme serverului web. Este un obicei bun s se includ comanda de nchidere de mai sus dup ce s-a introdus toate comenzile ctre baza de date, pentru a menine platforma n bun stare. Selectarea bazei de date Dup conectarea la severul de baze de date, trebie selectat baza de date pe care se dorete a fi folosit. Trebuie s fie o baz de date la care s fie acces, cu respectivul nume de utilizator. Se folosete urmtoarea comand: @mysql_select_db($database) or die( "Baza de date nu poate fi selectata"); Aceasta spune PHP-ului s selecteze baza de date specificat n variabila $database (pe care am definit-o mai nainte). Dac conexiunea nu se poate realiza procesul (execuia script-ului) se oprete afind textul: Baza de date nu poate fi selectata Aceast parte suplimentar 'or die' este bun pentru ieire, chiar dac nu asigur dect un minim control al erorii. 57
LUCRARE DE LICEN
Execuia comenzilor Dup conectarea la server i selecia bazei de date dorite, putem ncepe execuia comenzilor pe server. Exist dou moduri de a executa o comand. Prima revine pur i simplu la introducerea comenzii n PHP. Asta merge atunci cnd nu apar rezultate ca urmare a execuiei comenzii. Cea de a doua variant este s definim comanda ca o variabil. Asta va atribui variabilei rezultatele operaiei. Se va folosi prima cale, deoarece nu se atept rspuns de la baze de date. Comanda va arta cam aa: mysql_query($query); Folosirea acestei forme a comenzii este util pentru c se repet aceiai comand iari i iari fr a fi nevoie s se memoreze altele. Tot ce e de fcut este schimbarea variabilei. Introducerea datelor Pentru a introduce primele informaii n baza de date: Nume: Ionescu Prenume: Gheorghe Telefon: 021 3456789 Mobil: 0724 334455 Fax: 0264 567891 E-mail: ionescughe@personal.ro Web: http://www.cinestie.inext.ro Toate acestea vor fi introduse cu o singur comand: $query = "INSERT INTO contacts VALUES ('','Ionescu','Gheorghe','021 3456789','0724 334455','0264 567891','ionescughe@personal.ro','http://www.cinestie.inext.ro')"; Mai nti, apare variabila $query creia i se atribuie o comand (vezi paragraful precedent). Urmtoarea parte, adic: INSERT INTO contacts VALUES Ea spune PHP-ului s insereze n tabel numit contacts valorile care urmeaz (scrise ntre paranteze). Acolo, ntre paranteze, avem sunt toate cmpurile de adugat. Apar toate cmpurile n ordine i sunt inserate informaiile dintre ghilimele. Spre exemplu: Ionescu va fi inserat n al 2-lea cmp, care, n aceast tabel este cmpul 'nume' . Nu a inserat nimic n primul cmp din baza de date (id). Asta din cauz c acest cmp va fi un cmp index, 58
LUCRARE DE LICEN
elementul unic de identificare. Fiecare nregistrare din baza de date va avea un unic ID. Din aceast cauz, cnd ncrcm baza de date, vom pune ID pe 'Auto Increment'. Asta nseamn c, ne-atribuindu-i nici o valoare, el va lua la fiecare nregistrare urmtoarea valoare din ir. Iar prima nregistrare va avea valoarea ID=1 .
59
LUCRARE DE LICEN
LUCRARE DE LICEN
ntr-o cerere MySQL n forma: SELECT * FROM contacts Aceasta este o comand de baz din MySQL, care va spune script-ului s selecteze toate nregistrrile din tabela contacts. Dar, de data aceasta, comanda furnizeaz un rezultat, ea va trebui executat atribuin rezultatele unei variabile: $query="SELECT * FROM contacts"; $rezultat=mysql_query($query); n acest caz, ntregul coninut al bazei de date va fi atribuit variabilei cu numele $rezultat (care va fi deci o matrice, un tablou). Mai nainte de a putea scoate aceste date vor trebui extrase ca variabile simple, separate. Pentru asta trebuie s tiut cte nregistrri avem n tabel (deci i n variabila $rezultat ). Numrarea liniilor O comand special n MySQL pentru calculul numrului de linii din tabel. Este important pentru c n baza de date se fac uzual numeroase actualizri, completri, tergeri. $num=mysql_numrows($rezultat); Astfel, variabila $num va cpta ca valoare numrul de linii din $rezultat (adic tocmai din baza de date). Acest numr va putea fi folosit n continuare pentru ciclul n care se vor analiza i desface n variable separate cmpurile fiecrei linii. Construirea ciclului Se va scrie un ciclu pentru a selecta din tabel (din rezultat) linie cu linie.... Se va defini un indice, o variabil $i care va parcurge (cu incrementare) valorile de la 1 la $num . $i=0; while ($i < $num) { OPERAIILE ASUPRA LINIEI ++$i; } Acesta este un ciclu tipic n PHP i va executa ansamblul numit OPERATIILE ASUPRA LINIEI de exact $num ori, adic de attea ori ct trebuie. La fiecare reluare $i fiind mrit cu o unitate. Astfel $i poate fi folosit i pentru a preciza numrul liniei care se prelucreaz. Asocierea datelor la variabile In partea pe care am numit OPERATIILE ASUPRA LINIEI trebuie s separat fiecare cmp din linia nregistrare asociindu-l unei variabile. Folosit pentru urmtoarea secven: $variable=mysql_result($rezultat,$i,"numele_campului"); 61
LUCRARE DE LICEN
Astfel, pentru a extrage fiecare component din baza noastr de date, se vor folosi urmtoarele instruciuni: $nume=mysql_result($result,$i,"nume"); $prenume=mysql_result($result,$i,"prenume"); $telefon=mysql_result($result,$i,"telefon"); $mobil=mysql_result($result,$i,"mobil"); $fax=mysql_result($result,$i,"fax"); $email=mysql_result($result,$i,"email"); $web=mysql_result($result,$i,"web"); Combinarea Script-ului Se poate scrie script-ul complet pentru scoaterea datelor. In acest script datele nu sunt formatate, adic vor fi afiate toate cu acelai font, predefinit. <? $username="username"; $password="password"; $database="baza_noastra_de_date"; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Baza de date nu poate fi selectata"); $query="SELECT * FROM contacts"; $rezultat=mysql_query($query); $num=mysql_numrows($rezultat); mysql_close(); echo "<b><center>Database Output</center></b><br><br>"; $i=0; while ($i < $num) { $nume=mysql_result($rezultat,$i,"nume"); $prenume=mysql_result($result,$i,"prenume"); $telefon=mysql_result($result,$i,"telefon"); $mobil=mysql_result($result,$i,"mobil"); $fax=mysql_result($result,$i,"fax"); $email=mysql_result($result,$i,"email"); $web=mysql_result($result,$i,"web"); echo "<b>$nume $prenume</b><br>Telefon: $telefon<br>Mobil: $mobil<br>Fax: $fax<br>E-mail: $email<br>Web: $web<br><hr><br>"; ++$i; } 62
LUCRARE DE LICEN
?>
LUCRARE DE LICEN
<td><font face="Arial, Helvetica, sans-serif"><? echo "$telefon"; ?></font></td> <td><font face="Arial, Helvetica, sans-serif"><? echo "$mobil"; ?></font></td> <td><font face="Arial, Helvetica, sans-serif"><? echo "$fax"; ?></font></td> <td><font face="Arial, Helvetica, sans-serif"><a href="mailto:<? echo "$email"; ?>">Email</a></font></td> <td><font face="Arial, Helvetica, sans-serif"><a href="<? echo "$web"; ?>">Website</a></font></td> </tr> <? ++$i; }
echo "</table>"; Aceast secven va afia antetul tabelului, apoi va aduga o linie suplimentar pentru fiecare nregistrare din baza de date, formatnd datele la scoatere. Se vavexplica una din liniile din tabel, spre exemplu: <a href="mailto:<? echo "$email"; ?>">E-mail</a> care construiete o legtur email la adresa transmis de variabila $email . Asta arat una dintre calitile importante i utile ale folosirii PHP pentru includerea datelor MySQL . Adic prin astfel de scoateri putem face paginile Web dinamice. Selectarea unor date La fel cu afiarea ntregii baze de date, PHP poate fi folosit pentru a selecta date individuale, doar anumite nregistrri, sau nregistrrile care verific anumite criterii. Pentru asta trebuie s folosim o variaiune a cererii SELECT . Pentru afiarea ntregii tabele am folosit cererea: SELECT * FROM contacts Dac se vrea selectarea doar pe acele persoane care au prenumele 'Mihai' se va folosi o cerere de forma: SELECT * FROM contacts WHERE prenume='mihai' Ca i la alte cereri - comenzi SQL, sunt de fapt propoziii foarte apropiate de formularea curent din limba englez. ntr-un mod asemntor se va putea selecta nregistrrile pe baza oricrui cmp din baza de date. Dar se poate selecta o nregistrare folosind mai multe cmpuri, adugnd n formularea cererii clauza: field='value' Fr a intra n prea multe detalii, se mai spune c se pot folosi variabilele pentru a transmite criteriul dorit pentru selecie. Spre exemplu, dac dintr-un formular de cutare se primete o variabil numit $nume_cautat se poate imagina urmtoarea secven: $query="SELECT * FROM contacts WHERE nume='$nume_cautat'"; 64
LUCRARE DE LICEN
$result=mysql_query($query); .
LUCRARE DE LICEN
Astfel va avea nregistrrile ncepnd cu cea mai recent i terminnd cu cea mai veche. Mai trebuie doar numrat, afind doar primele 5. nainte de a ncepe ciclul de cinci, trebuie asigurat c $num este mai mare dect 5 . Este o secven de forma: if ($num<5) { $to=$num; }else{ $to=5; } $i=0; while ($i < $to) { SECVENTA DE COMENZI mysql PENTRU SCOATERE Cu alte cuvinte, dac sunt mai mult de cinci linii n tabel atunci ciclul se va face de la 0 la 5. In caz contrar, dac sunt mai puin de 5 linii, ciclul va parcurge exact numrul respectiv de linii.
LUCRARE DE LICEN
?id=$id Cptnd identificatorul id al nregistrrii, secvena aceasta va crea o legtur la fiecare din nregistrri.
LUCRARE DE LICEN
Numrul de Telefon: <input type="text" value="ud_phone" value="<? echo "$telefon"?>"><br> Numrul de Mobil: <input type="text" value="ud_mobile" value="<? echo "$mobil"?>"><br> Numrul de Fax: <input type="text" value="ud_fax" value="<? echo "$fax"?>"><br> Adresa E-mail: <input type="text" value="ud_email" value="<? echo "$email"?>"><br> Adresa Web: <input type="text" value="ud_web" value="<? echo "$web"?>"><br> <input type="Submit" value="Update"> </form> Aceast secven construiete (scoate) un formular standard, dar n locul zonelor goale, aa cum apreau n formularul pentru introducerea datelor, de data asta avem coninutul cmpului respectiv din nregistrarea n cauz (care-i de actualizat). Asta l face mai adaptat scopului, mai comod de folosit. Actualizarea bazei de date Implic urmtoarea operaie: $query = "UPDATE contacts SET nume = '$ud_first',prenume = '$ud_last',telefon = '$ud_phone',mobil = '$ud_mobile',fax = '$ud_fax',email = '$ud_email',web = '$ud_web' WHERE id = '$ud_id'"; Aceast cerere spune sistemului de gestiune de baze de date s actualizeze tabela contacts n acele linii n care ID coincide cu valoarea din $ud_id (care, aa cum se poate vedea din formularul anterior, a primit valoarea id a nregistrrii pe care o actualizm), modificnd urmtoarele cmpuri cu valorile specificate (care au fost introduse cu ajutorul formularului). Aceast cerere poate fi nglobat ntr-un script simplu: $ud_id=$_POST['ud_id']; $ud_first=$_POST['ud_first']; $ud_last=$_POST['ud_last']; $ud_phone=$_POST['ud_phone']; $ud_mobile=$_POST['ud_mobile']; $ud_fax=$_POST['ud_fax']; $ud_email=$_POST['ud_email']; $ud_web=$_POST['ud_web']; $username="nume_utilizator"; $password="parola"; $database="baza_de_date"; mysql_connect(localhost,$username,$password); $query="UPDATE contacts WHERE id='$ud_id' SET first='$ud_first' last='$ud_last' phone='$ud_phone' mobile='$ud_mobile' fax='$ud_fax' email='$ud_email' web='$ud_web'"; mysql_query($query); echo "Actualizarea s-a fcut"; mysql_close(); Asta va actualiza baza de date transmind i o confirmare utilizatorului.
68
LUCRARE DE LICEN
tergerea nregistrrilor delete.php?id=9 Scriptul care va face asta, numit delete.php, este aproape identic cu cel de actualizare a bazei de date, cu excepia comenzii MySQL (modului n care este construit cererea). In locul comenzii SQL UPDATE , se va folosi: DELETE FROM contacts WHERE id='$id' Ciclurile Se menioneaz i un alt mod de folosire a ciclurilor cu o baz de date. Se poate folosi un ciclu pentru a executa un ir de cereri. Spre exemplu, dac trebuie schimbat- se extrag toate nregistrrile dintr-o baz de date n care apare ca prenume Serban pentru a realiza un Website www.serban.ro: Partea Standard de Conectare la Baza de Date $query=" SELECT * FROM contacts WHERE prenume='Serban'"; $rezultat=mysql_query($query); $num=mysql_numrows($rezultat); $i=0; while ($i < $num) { $id=mysql_result($rezultat,$i,"id"); $query1="UPDATE contacts SET web='http://www.serban.ro' WHERE id='$id'"; mysql_query($query); ++$i; } mysql_close();
LUCRARE DE LICEN
$database="nume_baza_de_date"; ?> n care precizm datele concrete potrivite (numele_de_utilizator_al_bazei_de_date, parola, nume_baza_de_date). Atunci n fiierele php se va folosi, chiar la nceput, urmtoarea secven, care va include scriptul de mai sus: include("dbinfo.inc.php"); sau, atunci cnd acesta se afl n alt director: include("/[traseul complet]/dbinfo.inc.php"); Atunci, se va putea folosi n continuare variabilele $username, $password i $database n script-ul nostru, fr a avea nevoie s le definim de fiecare dat. De asemeni, dac se va modifica cndva aceste informaii, spre exemplu trecnd pe alt server web, tot ce va fi de schimbat va fi n acest unic fiier. Aceeai schem se poate folosi pentru conectarea la baza de date, plasnd i comanda de conectare n fiier. Atunci va trebui, asigurarea de nchiderea conexiunii, pentru a nu avea probleme cu serverul MySQL. Cutarea n script Se poate realiza i o cutare limitat n baza de date folosind funcia special din MySQL. Adic prin folosirea funciei LIKE , n forma: SELECT * FROM nume_tabela WHERE nume_camp LIKE '%$string%' Asta nsemn c LIKE va spune bazei de date s foloseasc posibilitile proprii de cutare. Semnele % au semnificaia c orice alte date pot s apar n poziia lor i variabila $string va conine cererea de cutare. Adic poate avea acolo un cuvnt, sau un numr, spre exemplu: LIKE '%pian%' ceea ce va conduce la scoaterea liniilor care includ cuvntul pian n cmpul specificat. Similar, se poate renuna la unul din semnele % astfel pentru a preciza poziia irului de caractere: LIKE 'pian%' Astfel se va putea selecta doar liniile n care cmpul specificat ncepe cu prefixul pian, caz n care, spre exemplu, expresia urmtoare va fi evitat: Un pian se afl pe scen. Finalizarea Script-ului Se poate descrca script-ul complet ca un fiier comprimat zip, pentru a examina ntreaga aplicaie
70
LUCRARE DE LICEN
71
LUCRARE DE LICEN
72
LUCRARE DE LICEN
Tabelele folosite
Tabela informaii
73
LUCRARE DE LICEN
Tabela log_informaii
Tabela user
74
LUCRARE DE LICEN
Tabelele folosite
Descriere
INFORMAII
USERI
Utilizatorii(profesori i studeni)
75
LUCRARE DE LICEN
1.6.4 Prezentarea codului sursa de la fiarea bazei de date // Afisare baza de date function browseDB($tabel,$tip) { echo '<table id="prima-pagina" cellpadding="5" cellspacing="10"> <tr> <td class="prima-pagina-cell"><table border="1" cellspacing="0" style="font-size: 9pt; text-align: center">'; echo '<tr> <td rowspan="3">Nr. crt.</td> <td rowspan="3">ID</td> <td colspan="4">Date de identificare</td> <td colspan="20">Masuratori somatice</td> <td colspan="25">Calitati motrice</td> <td colspan="7">Calitati psihice</td> <td colspan="3">Teste specifice</td> <td rowspan="3"></td> </tr>'; echo '<tr> <td rowspan="2">Nume</td> <td rowspan="2">Prenume</td> <td colspan="2">Varsta</td> <td rowspan="2">Inaltime</td> <td rowspan="2">Greutate</td> <td colspan="2">Perimetru toracic</td> <td rowspan="2">Elasticitate toracica</td> <td colspan="6">Membre inferioare</td> <td colspan="7">Membre superioare</td> <td rowspan="2">Diametru biacromial</td> <td rowspan="2">Diametru bitrohan</td> <td colspan="3">Viteza</td> <td colspan="4">Indemanare</td> <td colspan="5">Forta</td> <td colspan="3">Rezistenta</td> <td colspan="5">Mobilitate</td> <td colspan="2">Orientare</td> <td rowspan="2">Vedere periferica</td> <td colspan="2">Inteligenta motrica</td> <td rowspan="2">Temperament Below</td> <td rowspan="2">Sociabilitate</td> <td rowspan="2">Curaj</td> <td rowspan="2">Echilibru emotional</td> <td rowspan="2">Disciplina</td> <td rowspan="2">Atentie</td> <td rowspan="2">Motivatie</td> <td rowspan="2">Test 1</td> <td rowspan="2">Test 2</td> 76
LUCRARE DE LICEN
<td rowspan="2">Test 3</td> </tr>'; echo '<tr> <td>Ani</td> <td>Luni</td> <td>Inspir.</td> <td>Expir.</td> <td>L. picior dr.</td> <td>L. picior st.</td> <td>L. talpa dr.</td> <td>L. talpa st.</td> <td>Perim. glezna dr.</td> <td>Perim. glezna st.</td> <td>L. brat dr.</td> <td>L. brat st.</td> <td>Anvergura</td> <td>L. palma dr.</td> <td>L. palma st.</td> <td>Perim. pumn dr.</td> <td>Perim. pumn st.</td> <td>Reactie</td> <td>Deplasare (30m)</td> <td>Executie</td> <td>Scarita</td> <td>Naveta</td> <td>Matorini dr.</td> <td>Matorini st.</td> <td>Detenta lungime</td> <td>Detenta inaltime</td> <td>Aruncare mg. oina</td> <td>Dinamometru dr.</td> <td>Dinamometru st.</td> <td>Aerobic</td> <td>Anaerobica</td> <td>Anduranta</td> <td>Sfoara dr.</td> <td>Sfoara st.</td> <td>Sfoara lat.</td> <td>Coloana vertebrala</td> <td>Umeri</td> <td>Spatiala</td> <td>Temporala</td> <td>Precizia in miscare</td> <td>Memoria motrica</td> </tr>'; $c=0; $result=mysql_query("SELECT * FROM `$tabel` ORDER BY `nume` ASC, `PRENUME` ASC"); while ($row=mysql_fetch_row($result)) { 77
LUCRARE DE LICEN
$c++; echo '<tr><td>'.$c.'</td>'; foreach ($row as $item) echo '<td>'.$item.'</td>'; echo '<td>'; if ($tip!= 'vizitator') echo '<span style="color: #4171FA">[<a href="index.php?section=edit&field='.$row[0].'">modifica</a>] [<a href="index.php?section=delete&field='.$row[0].'" onclick="if (!confirm(\'Sunteti sigur ca doriti sa stergeti aceasta inregistrare?\')) {return false;}">sterge</a>]</span>'; // daca utilizatorul nu are doar drepturi de citire afiseaza optiunile de alterare a inregistrarilor tabelei echo '</td></tr>'; } echo '<table></td></tr></table>'; }
Pasul 1: - administratorul creaz conturi i acord permisiuni -parola este generat automat Pasul 2: - utilizatorii primesc parola pe e-mail Pasul 3: - utilizatorii se autentific cu datele primite 78
LUCRARE DE LICEN
Pasul 4: - profesorii pot adauga informatii in baza de date si pot incarca fisiere CSV Pasul 5: - toti utilizatorii pot vizualiza informatii din baza de date sau le pot descarca in fisiere CSV Restricii: - incarcarea exclusiva a fisierelor de tip CSV - administratorul are drepturi de modificare, stergere a informatiilor despre useri, stergerea contului - utilizatorii nu isi pot modifica decat propriile date
79
LUCRARE DE LICEN
80
LUCRARE DE LICEN
Pagina de autentificare
81
LUCRARE DE LICEN
82
LUCRARE DE LICEN
83
LUCRARE DE LICEN
LUCRARE DE LICEN
LUCRARE DE LICEN
Pagina de cont
LUCRARE DE LICEN
Pagina de deconectare
87
LUCRARE DE LICEN
BIBLIOGRAFIE
1. Julie C. Meloni - Php, MySql i Apache Editura Corint, Bucureti, 2005 2. Robert Dolinger Baze de date i gestiunea tranzaciilor Editura Albastr, Cluj Napoca, 2000 3. Cosmin Vrlan - Macromedia Flash Concepte, exemple, studii de caz, Editura Polirom, 2004 4. Benot Marchal XML by Example 5. Jesus Castagnetto, Harish Rawat, Sascha Schumann, Chris Scollo, Deepak Veliath Profesional PHP Programing
88
LUCRARE DE LICEN
6. Steve Suering - MySQL Bible 7. MySQL/PHP Database Aplications Jay Greespan and Brad Bulger 8. PHP.net http://www.php.net 9. Netcraft - http://news.netcraft.com
89