web

Upload: liana-chenderes

Post on 14-Jul-2015

134 views

Category:

Documents


0 download

TRANSCRIPT

Cuprins 2.3.2 Structura unei pagini .................................................................................. 3 2.3.3 Paragrafe. Atribute ale unui tag ................................................................. 4 2.3.4 Elemente pentru formatarea textului.......................................................... 5 2.3.5 Liste ........................................................................................................... 8 2.3.6. Imagini .................................................................................................... 12 2.3.7. Specificarea culorilor n HTML. ............................................................ 17 2.3.8. Tabele...................................................................................................... 18 2.3.9 Legturi (link-uri) .................................................................................... 23 2.3.10. Elemente de structur (HTML, HEAD, BODY). ................................. 26 2.3.11. Pagini cu cadre (FRAMESET, FRAME, IFRAME). ........................... 29 2.3.12. Bare de separare (HR)........................................................................... 35 2.3.13 Formulare ............................................................................................... 36 2.4. Extinderi ale limbajului HTML standard: HTML dinamic, script-uri. .......... 43 2.4.1. CSS (Cascading Style Sheets). ............................................................... 44 2.4.2 JavaScript ................................................................................................. 47 2.4.3. DOM (Document Object Model). ........................................................... 50 3. Limbajul PHP ....................................................................................................... 57 3.1. Introducere scurt istoric al apariiei limbajului PHP; mod de funcionare. 57 3.2. Cerine tehnice pentru rularea limbajului ...................................................... 58 3.3. Testarea instalrii. Structura unui fiier PHP. ................................................ 60 3.4. Constante. Variabile. Operatori. Afiarea datelor. ......................................... 64 3.5. Instruciuni ale limbajului PHP...................................................................... 70 3.5.1. Instruciunea expresie. ............................................................................ 70 3.5.2. Instruciunea bloc (se mai numete i compus). ................................... 70 3.5.3. Instruciunea if. ....................................................................................... 71 3.5.4. Instruciunea while. ................................................................................. 71 3.5.5. Instruciunea do...while. .......................................................................... 72 3.5.6. Instruciunea for. ..................................................................................... 73 3.6. Transmiterea datelor prin intermediul formularelor. ..................................... 73 3.7. Funcii n PHP. ............................................................................................... 84 3.8. Prelucrarea irurilor de caractere. .................................................................. 88 3.9. iruri (masive) n PHP. .................................................................................. 93 3.10. Upload de fiiere via PHP. ........................................................................... 97 3.11. Programare grafic utiliznd PHP. ............................................................ 100 3.12. Exploatarea bazelor de date MySQL prin intermediul limbajului PHP. ... 106 3.12.1. Introducere n MySQL. ....................................................................... 106 3.12.2. Testarea instalrii MySQL. Configurarea bazei de date. .................... 107 3.12.3. Crearea unei baze de date. .................................................................. 109 3.12.4. Tabele.................................................................................................. 110 3.12.5. Tipuri de date n MySQL. ................................................................... 113

3.12.6. Operatori utilizai n MySQL. Variabile. ............................................ 116 3.12.7. Funcii predefinite n MySQL............................................................. 120 3.12.8. Coloane calculate prin intermediul unei interogri............................. 122 3.12.9. Valoarea NULL. ................................................................................. 124 3.12.10. Valori implicite pentru coloanele unei tabele. .................................. 125 3.12.11. Cheie primar i cheie unic. ............................................................ 125 3.12.12. Coloane cu valori de tip autoincrementare. ...................................... 127 3.12.13. Sortarea datelor. ................................................................................ 128 3.12.14. Filtrarea datelor. ................................................................................ 129 3.12.15. Actualizarea datelor. ......................................................................... 129 3.12.16. Funcii agregate................................................................................. 131 3.12.17. Subinterogri. .................................................................................... 132 3.12.18. Gruparea datelor. .............................................................................. 133 3.12.19. Uniuni de tabele. ............................................................................... 134 3.12.20. Exploatarea bazelor de date MySQL utiliznd limbajul PHP. ......... 140 4. ASP.NET ............................................................................................................ 145 4.1. Limbajul de scripting ASP.NET (server-side) ............................................. 147 4.1.1. Structura unei pagini ASP.NET ............................................................ 147 4.1.2 Controale ASP.NET............................................................................... 149 4.1.3. Ciclul de via a unei pagini web .......................................................... 150 4.2. Modelul client-server ................................................................................... 151 4.2.1. Controalele server web ......................................................................... 151 4.2.2. Post Back .............................................................................................. 158 4.2.3. Controale pentru validarea datelor ........................................................ 158 4.2.4. Controale server web avansate ............................................................. 160 4.2.5. Conectarea la o surs de date a controalelor ......................................... 162 4.2.6. Pstrarea informaiilor ntre paginile Web............................................ 163 4.3. Interaciunea cu baza de date web ............................................................... 164 4.3.1. Rolul bazelor de date ............................................................................ 164 4.3.2. Accesarea bazelor de date web ............................................................. 165 4.3.3. Proiectarea bazelor de date ................................................................... 167 4.3.4. Accesul direct la date prin intermediul ADO.NET............................... 170 4.3.5. Crearea unei conexiuni ......................................................................... 170 5. Aplicaii practice i metodologice ...................................................................... 174 5.1. Prelucrarea irurilor de caractere ................................................................. 174 5.2. Backtracking ................................................................................................ 176 5.3. Divide et impera........................................................................................... 181 5.4. Cifrele unui numr, numere prime, factori primi ......................................... 183 5.5. Probleme propuse pentru atestat (SGBD) .................................................... 187

2.3.2 Structura unei pagini Pagina ex1.html este primul exemplu si are urmtorul coninut:

Rezultatul interpretrii acestui cod de ctre Mozilla Firefox este urmtorul:

Observm c: O pagin ncepe ce tag-ul i se termin cu tag-ul ; O pagin conine un antet (HEAD) i corpul propriu-zis (BODY); Antetul este cuprins ntre etichetele i ; Corpul este cuprins ntre etichetele i ; Opional, antetul poate conine titlul paginii, cuprins ntre tag-urile i . Titlul apare pe bara de titlu a ferestrei afiate n browser. Corpul poate conine texte i/sau imagini. n exemplu, pagina conine textul Acesta este primul exemplu de pagina...

Comentariile, care nu sunt afiate de ctre browser, pot fi scrise ntre tagurile . Numele tag-urilor nu sunt case sensitive, deci pot fi scrise att cu litere mici ct i cu litere mari.

2.3.3 Paragrafe. Atribute ale unui tag n general, textele coninute de o pagin se pot gsi n mai multe paragrafe. Un paragraf se introduce ntre tag-urile ... . La afiare, dou paragrafe consecutive vor fi separate printr-o linie goal. Tag-ul poate lipsi; un nou paragraf poate fi detectat prin tag-ul . n cadrul unui fiier HTML, enter-ul nu are nici un efect. De asemenea, dac dou cuvinte ale unui paragraf sunt separate prin mai multe spaii sau alte caractere albe (enteruri, tab-uri), browser-ul afieaz doar un singur spaiu. Majoritatea tag-urilor accept atribute. Acestea determin comportamentul mai amnunit al elementului respectiv. Un atribut se specific nainte de nchiderea parantezei unghiulare a tag-ului (>) prin: nume_atribut=valoare. n cazul paragrafului, atributul align controleaz alinierea textului din cadrul paragrafului. Dac acest atribut nu este prezent, alinierea este fcut n mod implicit la stnga. Acest atribut poate lua una dintre valorile center, left, right, justify, dup cum arat exemplul urmtor.

Alinierea paragrafelor Aliniat in centru Aliniat la dreapta Aliniat la stinga Paragraf aliniat justify

Rezultatul acestui cod (ex002.html) este interpretat de Mozilla Firefox n modul urmtor:

2.3.4 Elemente pentru formatarea textului
: Are ca efect forarea afirii a ceea ce urmeaz pe rndul urmtor. Acest tag nu creeaz un nou . ... : Are rolul de a afia bold (ngroat) textul cuprins ntre cele dou taguri ale sale. Un tag sinonim al lui este: ..., ... : Are rolul de a afia italic (nclinat) textul cuprins ntre cele dou tag-uri ale sale. Tag-uri sinonime ale lui sunt: ...,...,..., ... : Are rolul de a afia subliniat textul cuprins ntre cele dou tag-uri ale sale. Un tag sinonim al lui este: ..., ... : Are rolul de a afia tiat (cu o linie orizontal) textul cuprins ntre cele dou tag-uri ale sale. Un tag sinonim al lui este: ..., ... : Are rolul de a afia textul cuprins ntre cele dou tag-uri ale sale mai mare dect textul n care este cuprins. ... : Are rolul de a afia textul cuprins ntre cele dou tag-uri ale sale mai mic dect textul n care este cuprins. ... : Are rolul de a afia textul cuprins ntre cele dou tag-uri ale sale mai sus (ca o putere) ... : Are rolul de a afia textul cuprins ntre cele dou tag-uri ale sale mai sus (ca un indice) ... : Are rolul de a afia textul cuprins ntre cele dou tag-uri ale sale mai sus monospaiat (toate caracterele ocup aceeai lungime practic, se folosete fontul Courier New)n cod-ul HTML de mai jos gsii toate aceste tag-uri exemplificate (ex003.html): Formatare text Text folosind tag-ul B
Text folosind tag-ul STRONG
Text folosind tag-ul I
Text folosind tag-ul DFN
Text folosind tag-ul EM
Text folosind tag-ul U
Text folosind tag-ul INS
Text folosind tag-ul S
Text folosind tag-ul DEL
Normal Mai mare Normal
Normal Mai mic Normal
Exponent exponent
Indice indice
Text monospatiat Codul interpretat de Mozilla Firefox:Pentru scrierea titlurilor se utilizeaz tag-urile ..., ..., . . . , .... Practic, n funcie de numrul de dup H mrimea fontului difer ( utilizeaz fontul de dimensiune maxim, fontul de dimensiune minim) iar textul care apare ntre tag-uri este scris ngroat (bold).Pentru stabilirea font-ului se folosete tag-ul .... Atributele acestuia sunt: o face indic numele font-ului o size indic mrimea (trebuie s fie un numr cuprins ntre 1 i 7. Implicit este 3) o color permite specificarea culorii. Aceasta se specific fie prin intermediul constantelor predefinite ale HTML-ului (numele englezesc al culorii) fie prin componentele sale de Rou, Verde i Albastru exprimate n hexazecimal, de forma #RRGGBB.Iat un exemplu de utilizare al lor (ex004.html): Exemplificare titluri si font Acesta este un titlu de tip H1 Acesta este un titlu de tip H2 Iar acesta este un titlu de tip H3 Acest text este scris cu fontul Arial, albastru, dimensiune 4
Iar acest text este scris normal
Iata si culorile cucubeului, scrise cu font-ul Comic Sans MS, bold, dimensiune 7:
R O G V A I V Vizualizat n browser:Aa cum am vzut, dac n cadrul unui text din cadruldocumentului HTML apare un grup de mai multe spaii, n browser va fi afiat doar unul singur. Dac dorim forarea afirii unui spaiu, se folosete identificatorul special (ultimul caracter, ;, face parte din identificator)2.3.5 Liste Acestea permit ca anumite enunuri (texte, elemente) s fie numerotate sau marcate ntr-un anumit fel. O astfel de organizare poart numele de liste.n HTML distingem 3 feluri de liste: Liste ordonate (Ordered Lists): sunt liste n care elementele sunt numerotate. Inserarea lor n cadrul documentului HTML se face prin tag-urile ..., elementele (itemii) lor fiind introduse ntre aceste dou tag-uri prin ... (tag-ul de sfrit nefiind obligatoriu). Implicit, numerotarea se face cu numere arabe (1, 2, 3, ...). Ea poate fi modificat prin folosirea atributului type n cadrul tag-ului OL. Acesta poate lua una dintre valorile: o a : numerotarea se va face cu litere mici (a, b, c, ...) o A : numerotarea se va face cu litere mari (A, B, C, ...) o i : numerotarea se va face cu numere romane mici (i, ii, iii, iv ...) o I : numerotarea se va face cu numere romane mari (I, II, III. IV, ...) o 1 : (implicit) numerotarea se va face cu numere arabe obinuite (1, 2, 3, ...) Iat un exemplu de cod i vizualizarea sa n browser (ex005.html): Liste Iata o lista ordonata implicita: Primul item Al doilea item Al treilea item Al patrulea item Iata si o alta lista, cu numere romane Primul item Al doilea item Al treilea item Al patrulea item Liste neordonate (Unordered Lists): sunt liste n care elementele nu sunt numerotate, ci n dreptul fiecruia este afiat un marcator. Inserarea lor n cadrul documentului HTML se face prin tag-urile

...,elementele (itemii) lor fiind introduse ntre aceste dou tag-uri prin ... (tag-ul de sfrit nefiind obligatoriu). Implicit, marcarea lor se face prin cerculee pline. Ea poate fi modificat prin folosirea atributului type n cadrul tag-ului UL. Acesta poate lua una dintre valorile: o disc : marcarea se face cu cerculee pline (implicit) o square : marcarea se face cu ptrele o circle : marcarea se face cu cerculee goaleIat un exemplu de cod i vizualizarea sa n browser (ex006.html): Liste Iata o lista neordonata implicita: Primul item Al doilea item Al treilea item Al patrulea item Iata si o alta lista, marcata cu patratele Primul item Al doilea item Al treilea item Al patrulea item Si alta, marcata cu cerculete goale Primul item Al doilea item Al treilea item Al patrulea item Liste de definiie (Definition Lists): au rolul de a descrie o list de definiii. Inserarea lor n cadrul documentului HTML se face prin tag-urile ....Elementele lor sunt de dou tipuri: o Termenul care este definit: este introdus ntre tag-urile ... (tag-ul de sfrit nefiind obligatoriu). o Definiia propriu-zis: este introdus ntre tag-urile ... (tagul de sfrit nefiind obligatoriu). Iat un exemplu de cod i vizualizarea browser (ex007.html): Liste Iata o lista de definitie: Curentul electric reprezinta deplasarea dirijata a sarcinilor electrice. Exista doua marimi fizice care caracterizeaza curentul electric: intensitatea curentului electric is densitatea de curent Intensitatea curentului electric numita adesea, curent electric, caracterizeaza global curentul masurand cantitatea de sarcina electrica ce trabate sectiunea considerata in unitatea de timp. Se masoara in amperi Densitatea de curent sa neste o marime vectoriala Asociata fiecarui punct, intensitatea curentului regasindu-se ca integrala pe intreaga sectiune a conductorului din densitatea de curent. Se masoara in amperi pe metru patrat. 2.3.6. Imagini Tag-ul utilizat pentru inserarea unei imagini este . Forma general a acestui element este . Acest tag nu are i form de nchidere. Atributele sale sunt: src identific fiierul efectiv de pe disc, ce conine imaginea respectiv. Dac imaginea se afl n directorul curent, se specific doar numele i extensia sa. Dac se afl ntr-un subdirector, acesta se specific naintea numelui i extensiei imaginii, separat prin caracterul /. Imaginile recunoscute de majoritatea browser-elor internet sunt de tip .jpg, .gif, .png align specific tipul de aliniere al imaginii n raport cu textul n cadrul cruia se afl. Acesta poate lua una dintre valorile urmtoare: o right : imaginea se aliniaz n dreapta, iar textul care urmeaz este scris n locul rmas liber, n stnga acesteia; o left : imaginea se aliniaz n stnga, iar textul care urmeaz este scris n locul rmas liber, n dreapta acesteia; o top : doar latura de sus a imaginii se aliniaz cu rndul de text n cadrul cruia se afl; urmtorul rnd de text va fi afiat dup imagine, ocupnd ntreaga lime a ecranului; o middle : rndul de text n cadrul cruia se afl imaginea se aliniaz la jumtatea nimii acesteia; urmtorul rnd de text va fi afiat dup imagine, ocupnd ntreaga lime a ecranului; o bottom : doar latura de jos a imaginii se aliniaz cu rndul de text n cadrul cruia se afl; urmtorul rnd de text va fi afiat dup imagine, ocupnd ntreaga lime a ecranului;Dac dorim ntreruperea unei alinieri de imagine de tip right sau left nainte ca textul s fi umplut spaiul liber din stnga, respectiv dreapta acesteia, putem folosi tag-ul br, cruia i adugm unul dintre atributele clear=left sau clear=right sau clear=all, dup caz. atributul alt=text permite specificarea unui text alternativ ce va fi afiat fie dac meninem cursorul de mouse asupra imaginii, fie n locul imaginii propriuzise, n cazul n care imaginea nu poate fi ncrcat din cauza unei probleme de conexiune. Iat cteva exemple: atributul align=right ex008.html Imagini Acest text este asezat inaintea imaginii
In schimb, acest text este aliniat in stinga imaginii, deoarece am folosit atributul align="right" in momentul in care am inserat imaginea in pagina noastra web prin intermediul tag-ului src. atributul align=right mpreun cu tag-ul
- ex009.html Imagini Acest text este asezat inaintea imaginii
Acest text, aliniat in stinga imaginii, il intrerupem fortat AICI
In acest fel, restul textului se va alinia in mod obisnuit, sub imagine, restul spatiului din stinga raminind liber. atributul align=top - ex010.html Imagini Acest text este asezat inaintea imaginii
Se observa ca doar primul rind al textului este aliniat cu latura de sus a imaginii, restul textului fiind afisat dupa imagine atributul align=middle - ex011.html Imagini Acest text este asezat inaintea imaginii
Se observa ca doar primul rind al textului este aliniat la jumatatea inaltimii imaginii, restul textului fiind afisat dupa imagine atributul align=bottom - ex012.html Imagini Acest text este asezat inaintea imaginii
Se observa ca doar primul rind al textului este aliniat cu latura de jos a imaginii, restul textului fiind afisat dupa imagine atributele height i width permit specificarea altor dimensiuni pentruimagine, dect cele reale ale acesteia.Evident, dac dimensiunile nu sunt proporionale cu cele reale, imaginea va fi deformat. Totodat, dac specificm dimensiuni mai mari dect cele reale, imaginea se va vedea mai puin clar. n realitate, imaginea este transferat de pe server la dimensiunile sale originale, redimensionarea avnd loc doar la nivelul calculatorului pe care este vizualizat pagina - ex013.html. Imagini Imaginea originala are dimensiunile 250x135:

Iat-o redimensionata proportional la 125x77:

Iat-o si deformata:
sau
atributul border determina grosimea afirii unui chenar n jurul imaginii. ex014.html Imagini Imaginea originala are dimensiunile 250x135 is este inconjurata de un chenar de grosime 10:
atributele hspace=nr.pixeli i vspace=nr.pixeli stabilesc distana minim pe orizontal sau verticala fa de celelalte obiecte din pagina. ex015.html Imagini Iata o aliniere a imaginii de tip "right", aliniere in cadrul careia nu am modificat nici unul dintre cele doua atribute care controleaza spatierea dintre imaginesi restul elementelor, pe orizontala respeciv pe verticala

Iata acum o aliniere a imaginii tot de tip "right", aliniere in cadrul careia am modificat ambele atribute care controleaza spatierea dintre imagine si restul elementelor, stabilind valorile de 20 pe verticala respeciv de 15 pe orizontala
2.3.7. Specificarea culorilor n HTML. O serie de elemente din HTML permit utilizarea de atribute de culoare. Acestea pot fi specificate n dou moduri: prin constanta HTML ce reprezint numele culorii (n englez, bineneles). Exist 216 astfel de constante recunoscute de majoritatea browser-elor. Ne vom limita n a le enumera doar pe cele 16 care sunt considerate de baz, exemplificndu-le pe fiecare:prin constante de tip RGB (Red, Green, Blue) Principiul de baz al redrii electronice ale unei imagini n culori se bazeaz peamestecarea n proporii diferite ale culorilor Rou, Verde i Albastru. n acest mod, se poate obine orice culoare se dorete. n cazul culorilor pe care le poate reda un browser HTML, fiecare dintre aceste componente de culoare poate avea 256 de stri posibile: de la0, care nseamn c respectiva culoare lipsete cu desvrire, pn la 255, care nseamn c respectiva culoare este folosit la intensitatea maxim. n acest fel, prin amestecuri diferite, putem obine 2563, deci aproximativ 16 milioane de nuane diferite. Componentele de culoare n HTML se specific folosind numere hexazecimale. Astfel, fiecare dintre numerele dintre 0 i 255 se codific n hexazecimal printr-un numr ntre 00 i FF. Constanta HTML pentru specificarea unei culori are forma general#RRGGBB,n care RR, GG respectiv BB reprezint cte un numr hexazecimal cuprinsntre 00 i FF.2.3.8. Tabele Tabelele reprezint un element foarte important al unei pagini web. n foarte multe cazuri, tabele cu chenare invizibile sunt folosite ca i schelet al paginii, pentru a putea realiza alinieri complexe ale elementelor acesteia. Tag-ul pentru descrierea unui tabel este .... n cadrul acestora trebuie descrise liniile (rndurile) tabelului, n cadrul fiecrui rnd trebuind descrise celulele acestuia. Descrierea unui rnd se face ntre tag-urile .... La rndul lor, celulele din cadrul rndului se descriu ntre .... Att tag-ul ct i tag-ul pot fi omise. Un prim atribut al tag-ului este border=grosime_pixeli. Dac acest atribut este omis, tabelul va avea un chenar invizibil. Dac se specific doar atributul, omind grosimea, aceasta va fi luat, implicit, ca fiind 1. Iat un exemplu de cod pentru definirea unui tabel (ex016.html): Tabele Rindul 1, celula 1 Rindul 1, celula 2 Rindul 2, celula 1 Rindul 2, celula 2 Atribute ale tag-ului cellpadding=nr_pixelipermite stabilirea unui spaiu care va fi lsat, n fiecarecelul a tabelului, ntre coninutul celulei i marginile acesteia. Dac nu se specific acest atribut, el este n mod implicit considerat 0 cellspacing=nr_pixelipermite stabilirea spaiului care va fi lsat ntre chenarelecelulelor vecine n tabel (i inclusiv ntre ele i chenarul exterior al tabelului). Dac nu se specific acest atribut, el este n mod implicit considerat 2. Coninutul unei celule poate fi ct se poate de general: de la text i imagini pn la alte tabele (se pot deci construi chiar i tabele imbricate) width=limepoate stabili ct de lat s fie tabelul. Limea poate fi dat nprocente, caz n care se va calcula ca i procent din limea ferestrei browserului (ex: width=50%) sau n pixeli (ex: width=500); height=nlimepoate stabili ct de nalt s fie tabelul. Limea poate fi dat, lafel ca i n cazul atributului width, n procente sau n pixeli;aligndetermin alinierea tabelului n pagin. Poate la una dintre valorile left, rightsau center. Dac, pe lng tabel, mai scriem i text, acesta se va poziiona fa de tabel n acelai mod n care se poziioneaz i fa de imagini; bgcolor=culoarepermite stabilirea culorii de fundal a tuturor celulelor tabelului; permite stabilirea culorii chenarului (deopotriv cel interiorbordercolor=culoarect i cel exterior) Exemplu din fisierul ex017.html: Tabele Poza
Accesori Microfon Dif. ext Filtru Antene Deltaloop Ground plane Windom Atribute ale tag-ului align determin, pentru toate celulele de pe linie, modul alinierii coninutului pe orizontal, n interiorul celulelor. Poate la una dintre valorile left, right, center sau justify; valign determin, pentru toate celulele de pe linie, modul alinierii coninutului pe vertical, n interiorul celulelor. Poate la una dintre valorile top, bottom sau middle;bgcolor determin, pentru toate celulele de pe linia respectiv, culoarea de fundal.Atribute ale tag-ului width i height determin, pentru celula respectiv, limea i nlimea. Poate fi dat n procente sau pixeli. Dac e specificat n procente, se va lua din limea, respectiv nlimea tabelului. Modificarea limii i a nlimii unei celule va avea efect i asupra celorlalte celule, pentru ca tabelul s fie aliniat; align i valign stabilesc, la fel ca i n cazul lui , modul n care este aliniat coninutul n interiorul celulei, pe orizontal respectiv pe vertical, fiind prioritare fa de alinierea la nivel de linie colspan=nstabilete ntinderea celulei respective n dreapta cu n coloane(echivalentul operaiei Merge Cells din Word, n cazul n care unim celule adiacente pe orizontal); rowspan=nstabilete ntinderea celulei respective n jos cu n linii (echivalentuloperaiei Merge Cells din Word, n cazul n care unim celule adiacente pe vertical); bgcolordetermin, pentru celula respectiv, culoarea de fundal. Este prioritar fade acelai atribut la nivel de linie.Tag-ul ... Poate nlocui .... Atributele sunt aceleai. Singura diferen este c textele de dup tag-ul sunt, n mod implicit, tiprite ngroat (Bold) iar alinierea lor se face pe centru;Tag-ul ... Permite scrierea unui titlu pentru tabel. Acest tag trebuie s se gseasc imediat dup.Acest tag suport atributul align. Acesta poate lua una dintre valorile: left (titlulva fi poziionat n stnga sus), right (poziionare dreapta sus), top (poziionare pe centrusus), bottom (poziionare pe centru jos);Exemplul ex018.html: Tabele Banda 05h00 - 10h00 10h00 - 16h00 16h00 - 22h00 80m (3.7MHz) Buna Redusa 40m (7.100 MHz) Redusa Buna 20m (14.100MHz) Buna Redusa Buna 10m (28.2MHz) Inchisa 2.3.9 Legturi (link-uri) Aa cum am vzut n partea introductiv a acestui capitol, noiunea de www este strns legat de documentele de tip hipertext. Tot ceea ce am prezentat din limbajul HTML pn n momentul de fa, reprezint doar partea descriptiv a acestuia, cu ajutorul creia putem crea un coninut static. Link-urile reprezint mecanismul prin care: putem face ca un vizitator al paginii, prin executarea unui click, s poat accesa o alt pagin, la care dorim s-i crem posibilitatea unui acces rapid i, dac acesta dorete, s poat reveni n pagina iniial prin apsarea butonului Back al browserului de Internet; putem face ca un vizitator al paginii noastre s primeasc un anumit fiier, de orice tip, care se gsete pe site-ul nostru (download); putem face ca un vizitator al paginii noastre s poat asculta un mesaj sonor sau chiar s poat viziona un film; putem ca, printr-un click, s putem vizualiza o pagin (inclusiv cea curent) doar dintr-un anumit loc, fr a folosi barele de derulare; putem ca, prin accesarea unui click, cel care viziteaz pagina s ne poat trimite un e-mail.Pentru toate acestea, vom folosi tag-ul ..., numit i Ancor.Ancore de legtur Acestea permit ca un anumit element din document s conin legtura ctre o alt pagin. Elementul care face legtura este de obicei un text sau o imagine. De regul, elementul legat i schimb aspectul fa de cel clasic: textul va fi subliniat i colorat altfel, iar imaginea va avea un chenar colorat. n momentul n care ducem cursorul deasupra elementului legat, acesta capt forma unei mini, indicndu-ne astfel c este vorba de un link pe care l putem utiliza. Printr-un simplu click, accesm pagina ctre care este fcut legtura. Acest tip de legtur se realizeaz practic folosind atributul href, exemplul ex019.html) Tabele Prin efectuarea unui click pe acest text browserul deschide pagina dedicata radioamatorilor Dup cum se observ, atributul href primete adresa complet a paginii ctre care dorim s facem legtura. Dac e vorba de un fiier local, din acelai director cu pagina din care facem legtura, la href este suficient s scriem numele i extensia (de ex:href=pagina.html)Ancore de legtur ctre fiiere (pentru download) Se realizeaz n mod analog cu cele ctre alte pagini, la atributul href trebuind specificat adresa fiierului respectiv (dac este n acelai director cu pagina din carefacem legtura, e suficient s-i scriem numele i extensia). Ex: n cazul n care fiierul pentru download este local: Pentru download arhiva executa un clickaiciEx: n cazul n care fiierul pentru download se afl la alt adres:Pentru a descarca calendarul concursurilor nationale si internationale, da un click aiciLegturile ctre fiiere de tip sunet sau film se fac absolut n aceeai manier. n funcie de extensia lor (.pdf, .mid, .wav, .mp3, .avi) n momentul executrii unui click asupra obiectului care face legtura ctre ele, acestea vor fi deschise automat ctre browser cu programul corespunztor.Legturi relative la coninutul documentului (paginii) Sunt acele ancore care permit accesarea direct a unei pagini web ntr-un anumit loc, fr a mai folosi barele de derulare pentru a ajunge n acel loc. Pentru aceasta, locul respectiv trebuie marcat. Acest lucru se face tot cu ajutorul tag-ului , ns folosind atributul id, care va denumi locul respectiv printr-un identificator, ca n exemplul de mai jos (a se observa c ntre tag-ul de deschidere i cel de nchidere putem s nu punem nici un element):Accesarea direct a acestui loc cu ajutorul unui link se poate face astfel: Din interiorul aceleii pagini: specificnd la atributul href identificatorul respectiv (cel de la id) nainte de care se pune de caracterul #, ca n exemplul urmtor:Salt direct la concursurile nationaleDin alt pagin: specificnd la atributul href adresa paginii accesate (a fiierului html) urmat de caracterul #, ca n exemplul urmtor:Deschide documentul extern, direct la concursurile nationale#capitolul 2Ancor de legtur pentru trimiterea unui e-mail Acestea permit ca, atunci cnd o persoan ne viziteaz site-ul, dac dorete, s ne poat trimit un e-mail fcnd un simplu click pe legtura respectiv. Totui, pentru ca acest lucru s fie funcional, cel care viziteaz site-ul trebuie s aib configurat pe calculatorul su un client de e-mail (cel mai frecvent este Outlook Express). Iat un exemplu pentru o astfel de ancor: Click aici pentru a trimite un e-mail (tag-ul ... nu face altceva dect s afieze textul din cadrul su italic) Dup cum se observ, pentru trimiterea unui e-mail, dup atributul href trebuie specificat mailto: urmat de adresa de e-mail a destinatarului.2.3.10. Elemente de structur (HTML, HEAD, BODY). Dup cum am vzut n partea introductiv, orice document html este cuprins ntre tag-urile i . El este alctuit dintr-un unic antet (HEAD) i un unic corp (BODY). Aceste 3 elemente au rolul de a defini structura documentului. Din acest motiv ele se mai numesc i elemente de structur.Tag-ul BODY poate conine urmtoarele atribute: background=fiier_imaginepermite specificarea unei imagini de fundal. Aceastase va repeta att pe orizontal ct i pe vertical, pn cnd se acoper ntreagasuprafa necesar corpului; bgcolor=culoare text=culoare link=culoarepermite specificarea unei culori de fond;permite specificarea culorii ntregului text cuprins n pagin; permite specificarea culorii unui link nevizitat; permite specificarea culorii unui link activ; un link estealink=culoareconsiderat activ n timpul vizitrii i imediat dup aceasta;vlink=culoarepermite specificarea culorii unui link vizitat, care nu mai esteactiv.Coninutul seciunii n cadrul acestei seciuni putem ntlni diverse alte tag-uri. Despre tag-ul am discutat deja, el permind scrierea unui titlu pentru pagin. n afar de acestea, vom aminti nc alte 3 tag-uri: permite stabilirea unei adrese de baz pentru resurse. Acest tag sefolosete n special atunci cnd resursele (sau, n fine, o mare parte a acestora) se gsesc n alt director dect cel n care se afl documentul curent. n acest fel, folosirea fiierelor din directorul specificat n BASE se poate face direct prin numele i extensia lor. Specificarea se face prin: este folosit pentru a furniza informaii motoarelor de cutare. Uneledintre acestea viziteaz doar antetul pentru a obine informaii. Informaiile coninute de acest element nu sunt afiate de browser, ns este important s l folosim pentru ca informaiile coninute n site-ul nostru s fie accesibile. Locul tag-ului este n antet ().Atributele tag-ului sunt name i content. Folosirea lor este ceva mai particular, rezultnd din exemplele urmtoare: pentru a specifica autorul unui document:pentru a specifica titlul unui document:pentru a preciza cuvintele cheie dup care s fie regsit site-ul:pentru a specifica limba n care este scris site-ul:Exist i alte atribute ale elementului META, ns cele dou deja prezentate sunt suficiente. este utilizat pentru introducerea stilurilor. Acestea permit stabilirea mai amnunit a modului n care apar, implicit, diferitele elemente din document. Valorile se trec ntre .... Exemplu: P {font-family:Comic Sans MS; font-size:14pt;} Prin specificarea lui P nainte de paranteza acolad, stabilim ca modul implicit de afiare al paragrafelor (s ne reamintim c este tag-ul pentru paragraf) s fie cel descris ntre parantezele acolade, deci, n cazul exemplului de fa font-ul folosit s fieComic Sans MS,iar dimensiunea caracterelor s fie de 14.este utilizat pentru introducerea anumitor secvene de program n cadrulpaginilor web. Exist mai multe limbaje (numite de scriptare) care permite scrierea acestor secvene, cum ar fi JavaScript, VBscript. Specificarea limbajului n care este codat scriptul se face cu ajutorul atributului language, ca n exemplul de mai jos: function calcul() { s=0; for(i=1;i Schimbarea culorii de fundal a unui tabel, culoare pe care o compunem cu ajutorul a 3 valori pentru componentele R, G, B (ntre 0 i 255) pe care le scriem n nite zone text. Culoarea astfel formata va fi afiat intr-o caset (ex035.html) Exemplu de JavaScript function toHex(numar) {//aceasta functie converteste numarul parametru din zecimal //in hexazecimal. Ne bazam ca este cuprins intre 0 si 255 c1=parseInt(numar/16); c2=numar%16; //in c1 si c2 am obtinut cele 2 cifre hexazecimale if(c1>9) c1=String.fromCharCode(65+c1-10); //daca c1 este mai mare decit 9, o inlocuim cu litera corespunzatoare (A=10, B=11, ..., // F=15) adunind la codul ASCII al lui A (65) diferenta corespunzatoare. Conversia, in //JavaScript, de la codul ASCII la caracter se face prin //String.fromCharCode(codul ascii al caracterului) if(c2>9) c2=String.fromCharCode(65+c2-10); return String(c1)+String(c2); } function rgb(red,green,blue) {//aceasta functie genereaza constanta HTML de tip culoare plecind de la valorile lui //red, green, blue, numere cuprinse intre 0 shi 255.Ea se foloseste de functia de mai sus return "#"+toHex(red)+toHex(green)+toHex(blue); } 49 function coloreaza() {//aceasta functie se apeleaza la apsarea butonului definit in cadrul lui BODY. Inprimul //rind testam daca valorile sunt intregi. Observati ca am folosit identificatorii dati la //atributul id pentru a extrage valorile din cimpurile text. In primul rind, pentru a //accesa obiectele de tip va trebui sa ne folosim de o //functie speciala DOM, si anume document.getElementById. Aceasta functie ne intoarce //o variabila prin intermediul careia putem accesa in continuare obiectul cu ID-ul //respectiv. //In cazul nostru, obtinem variabilele r, g si b pe baza cimpurilor text cu ID-urile //rr, gg si bb definite in cadrul sectiunii , mai jos. //Pe baza variabilelor de tip obiect r, g si b, cimpul "value" ne va intoarce taman //valoarea scrisa in acestea r=document.getElementById("rr"); g=document.getElementById("gg"); b=document.getElementById("bb"); nr=parseInt(r.value);ng=parseInt(g.value); nb=parseInt(b.value); if(nr!=r.value)//daca valoarea convertita la intreg nu coincide //cu cea neconvertita, inseamna ca nu este inteaga, deci dam un mesaj {alert("Valoarea lui r nu este corecta!"); return;}//si iesim fortat (ca in C) cu return //procedam analog pentru celelalte doua if(ng!=g.value) {alert("Valoarea lui g nu este corecta!");return;} if(nb!=b.value) {alert("Valoarea lui b nu este corecta!");return;} //acum verificam sa fie cuprinse intre 0 si 255 if(nr255) { alert('Valoarea lui r nu este cuprinsa intre 0 si 255');return;} if(ng255) { alert('Valoarea lui g nu este cuprinsa intre 0 si 255');return;} if(nb255) { alert('Valoarea lui b nu este cuprinsa intre 0 si 255');return;} //in fine, daca am trecut de aceste filtre, valorile lui r, g si b sunt corecte // si putem, in fine, stabili culoarea de fundal a celuilalt tabel (caruia i-am dat //id-ul tabel) la cea pe care o obtinem din combinatia r, g, b introdusa. tbl=document.getElementById("tabel"); //La fel ca mai sus, getElementById ne intoarce o variabila prin intermediul //careia putem accesa obiectul cu id-ul respectiv tbl.style.backgroundColor=rgb(nr,ng,nb); //apoi, prin intermediul variabilei intoarse, si anume tbl, //stabilim culoarea de fundal a tabelului. Pentru intoarcerea culorii //in formatul recunoscut de HTML, adica #RRGGBB apelam functia //rgb scrisa tot de noi, mai sus } Introdu componentele de culoare (numere intre 0 si 255):

Rosu Verde Albastru
Testeaza

TEST AREA Prin intermediul unui control de tip vom cere utilizatorului s introduc un numr x ntre 4 si 20. Pe baza acestui numr (pe care-l validm) vom genera, ntr-un element de tipul iframe, un tabel cu x linii i x coloane, n care punem numerele de la 1 la x2 i ale crui celule le colorm alternativ, la fel ca pe o tabl de ah. (ex036.html) function genereaza() { n=document.getElementById("nn"); nr=parseInt(n.value); if(nr!=n.value)//verificam daca in n este un numar intreg {alert('Numarul introdus nu este intreg');return;} else if(nr20)//verificam si daca este intre 4 si 20 {alert('Numarul trebuie sa fie intre 4 si 20'); return;} d=document.getElementById("ifr").contentWindow.document; //obtinem in variabila d referinta DOM catre documentul din iframe d.open();//deschidem acest document pentru rescriere d.write(''); k=0;//si generam, prin script, in cadrul sau, codul HTML//care creeaza tabelul anuntat for(i=1;i Genereaza tabelul

3. Limbajul PHP3.1. Introducere scurt istoric al apariiei limbajului PHP; mod de funcionare.PHP este un limbaj de programare destinat n primul rnd Internetului, aducnd dinamic unei pagini web. Este unul dintre cele mai importante limbaje de programare web open-source (este gratuit i, n plus, utilizatorii pot aciona liber asupra procesului de dezvoltare) i server-side (codul surs nu se ruleaz pe calculatorul celui care vizualizeaz pagina, ci pe serverul web). Numele su este un acronim recursiv: Php este un Hypertext Processor. Limbajul a fost nceput n 1994 ca o extensie a limbajului server-side Perl, i apoi ca o serie de CGI-uri compilate, de ctre Rasmus Lerdorf, pentru a genera un curriculum vitae i pentru a urmri numrul de vizitatori ai unui site. A evoluat apoi n PHP/FI 2.0, dar proiectul open-source a nceput s ia amploare dup ce Zeev Suraski i Andi Gutmans au lansat o nou versiune a interpretorului PHP n vara anului 1998, aceast versiune primind numele de PHP 3.0. Tot ei au schimbat numele n acronimul recursiv amintit mai sus, pn atunci PHP-ul fiind cunoscut ca Personal Home Page tools. n prezent este utilizat versiunea 6 a acestui limbaj. Prin CGI (Common Gateway Interface) se nelege o interfa a unui server de web, care extinde funcionalitile acestuia. CGI nu se refer la un anumit limbaj de programare, ci definete un modul standardizat, prezent n cadrul unui server HTTP. Prin intermediul acestui modul se stabilesc regulile prin care server-ul va pasa datele primite de la un utilizator ctre o aplicaie scris ntr-un anumit limbaj de programare, pentru ca apoi s ntoarc rezultatele acestei aplicaii napoi la utilizator. Limbajul PHP, n marea majoritate a cazurilor, se folosete sub form de secvene de cod inserate n cadrul unui document HTML. Din acest motiv, vom prefera termenul de script PHP celui de program PHP. Structura unui script PHP este foarte asemntoare cu cea a unui cod scris n limbajul C, mai ales n sensul n care structurile de programare au aceeai sintax i aceeai funcionalitate.Rolurile de baz ale unui script PHP constau n aceea c scipt-ul poate prelua date trimise de ctre o pagin web de la un client (n general, datele pot fi trimise de ctre o pagin web prin intermediul formularelor) i de a executa o secven de program n urma creia va rezulta un cod HTML, cod pe care clientul l va primi sub forma unei pagini web. Clientul nu va avea acces la codul efectiv al script-ului, ci, prin faptul c acesta se afl pe server i se ruleaz tot pe acesta, va primi direct HTML-ul generat de script.3.2. Cerine tehnice pentru rularea limbajuluiCerine tehnice pentru rularea limbajului PHP pe un sistem Windows. Detalii asupra instalrii Dup cum am vzut n capitolul precedent, PHP nu este un limbaj de programare de sine-stttor (cum ar fi C++, spre exemplu) ci se folosete n simbioz n primul rnd cu HTML, i deci pentru a rula, are nevoie neaprat de un server de web (http server). Practic, pentru a face ca pe calculatorul nostru s poat rula fiiere php, avem nevoie s instalm, pe lng limbajul PHP, i un server de web, i de a face legtura dintre cele dou. Acest lucru se poate face separat, ns sunt necesare o serie de setri foarte minuioase i greoaie. Din acest motiv, pentru testarea aplicaiilor pe care le vom studia, vom folosi un pachet gratuit, disponibil pe Internet, numit XAMPP. Acest pachet, foarte simplu de instalat, conine mai multe aplicaii. Cele care ne vor interesa pe noi sunt serverul Apache (pentru http), un server de MySQL, i suport pentru limbajul PHP. Cerinele tehnice pentru rularea n bune condiii sunt minimale: practic, pe orice calculator care este capabil s ruleze Windows 2000, XP sau Vista, pachetul XAMPP va rula fr probleme. Dei instalarea sa poate fi fcut n mai multe feluri, cel mai la ndemn este s folosim o versiune de tip Installer a sa. Adresa de unde poate fi descrcat pachetul gratuit este: http://www.apachefriends.org/en/xampp-windows.htmlDownloadai executabilul installer-ului: derulai pagina pn cnd dai de seciunea Download, accesnd primul link Installer, ca n figura de mai jos:Lansai n execuie installer-ul. Vom alege instalarea n limba englez. Lsm nemodificat directorul propus pentru instalare (c:\xampp). n fereastra urmtoare vom bifa toate cele 3 csue care ne propun instalarea server-elor Apache, Mysql respectiv Filezilla (acesta din urm fiind de fapt un server de FTP) ca i servicii.La sfritul instalrii, server-ul de web este deja funcional, avnd inclus att suport php ct i baza de date MySQL. Prin intermediului panoului de control XAMPP putem vedea care este starea curent a server-elor instalate, i le putemde asemenea gestiona. Pentru a testa efectiv funcionalitatea server-ului web, deschidem un browser de internet, scriind la adres: http://localhost. Dac instalarea a fost fcut cu succes, ne apare o pagin din care suntem invitai s alegem limba de operare, dup care suntem dui n pagina HOME a instalrii fcute. Directorul rdcin al documentelor web este c:\xampp\htdocs. n vederea testrii aplicaiilor PHP pe care le vom studia n continuare, vom crea n acest director un alt subdirector phpapps. Dup ce l-am creat, putem testa existena sa deschiznd browser-ul de internet n care scriem adresa: http://localhost/phpapps n browser trebuie s ne apar un director gol. n mod implicit, toate fiierele i subdirectoarele pe care le punem n acesta vor fi vizibile prin intermediul server-ului de http. Numele index.htm, index.html respectiv index.php sunt rezervate: dac denumim vreun fiier n acest mod, la intrarea n directorul care l conine, n loc de a ne arta ceea ce se gsete n acest director, serverul web ne va arta direct pagina coninut de fiierul respectiv.3.3. Testarea instalrii. Structura unui fiier PHP.Spre deosebire de fiierele .html care o dat create pe discul local cu un editor de texte pot fi deschise imediat tot local, direct n browser-ul de Internet, pentru a rula codul PHP este absolut necesar ca fiierele s fie puse n directorul n care rezid documentele serverului web, iar vizualizarea lor s fie fcut prin intermediul acestuia. n mod implicit, un fiier care conine un script PHP trebuie s fie salvat cu extensia .php. S crem primul nostru script PHP. Vom descrie operaiile necesare acestui lucru, bazndu-ne pe instalarea pachetului XAMPP descris n capitolul anterior. Astfel, toate scripturile pe care le vom crea le vom pune n directorul c:\xampp\htdocs\phpapps. Cu ajutorul unui editor de texte (de exemplu Notepad, Notepad++) creai urmtorul fiier, pe care l salvai n directorul de mai sus sub numele ex037.php (codulde mai jos este preluat aa cum apare vizualizat n editor). Pagina continand script PHP Titlu de nivel H1 Observai structura absolut identic celei a unui fiier HTML. Noutatea este adus de scriptul PHP, care este inserat ntre tag-urile . Instruciunea echo cuprins ntre acestea este o instruciune specific limbajului PHP, ea avnd rolul de a scrie n pagina web textul ce urmeaz dup, cel cuprins ntre ghilimele. S vizualizm acum pagina rezultat n urma acestui fiier. Pentru aceasta, deschidei browser-ul de Internet, scriind urmtoarea adres: http://localhost/phpapps. Dac XAMPP a fost corect instalat, vei obine urmtoarea pagin:n pagin v este artat coninutul directorului n care este creat fiierul ex037.php, aa cum este vizualizat prin intermediul serverului de web. n aceast pagin facei un click pe fiierul ex037.php, pentru a-l vizualiza prin intermediul serverului web. Dac totul este n regul, coninutul afiat n browser trebuie s fie urmtorul:nainte de a trece la detalierea limbajului de programare PHP, s mai ncercm un exemplu. n acelai director (c:\xampp\htdocs\phpapps) creai fiierul ex038.php, cu urmtorul coninut: Numere perfecte Primele 10 patrate perfecte Remarcai similitudinea dintre limbajul PHP i C, n cazul instruciunilor din cadrul scriptului: n afara faptului c variabila, care n C ar fi fost i, aici este $i, instruciunea for are aceeai sintax. Sintaxa lui echo este uor de asimilat, prin analogie cu coutVariabile n PHP identificatorii rezervai variabilelor ncep cu caracterul $. n continuare, respect aceleai specificaii din C, deci imediat dup caracterul $ trebuie s fie o liter sau liniua de subliniere (_), iar n rest pot fi folosite i cifrele. Spre deosebire de C, variabilele nu se declar la nceput, ci tipul lor este definit (implicit, de ctre limbaj) atunci cnd sunt folosite. Mai mult, i pot schimba tipul n funcie de valoarea pe care o rein. Exemplu de script (ex040.php): Remarcai faptul c valoarea atributului color (i anume red) a trebuit a fi scris ntre ghilimele. Textul din cadrul echo-ului n care am afiat acest atribut, fiind deja n interiorul unor ghilimele, a trebuit s folosim caracterul special \ pentru a face aceast afiare posibil. Dac am fi folosit, pur i simplu, ghilimele obinuite, instruciunea echo ar fi considerat c n acel loc se ncheie stringul, iar din acest caz n-ar mai fi putut interpreta caracterele urmtoare, ceea ce s-ar fi terminat cu producerea unei erori. n PHP este posibil i adresarea indirect. Acest lucru nseamn c, dac o variabil conine o expresie de tip string n care este reinut numele unei variabile, putem afia direct valoarea variabilei reinut de string. Pentru aceasta se va folosi nc o dat caracterul $ (de forma $$x). Exemplu de script (ex041.php): Operatori Muli dintre operatorii limbajului PHP sunt cunoscui din C++. Acesta este motivul pentru care vom prezenta doar anumite particulariti specifice limbajului PHP. i prezentm, n ordine descresctoare a prioritilor lor: 1. ! , ++ , -- , (int) , (double) , (string) ; 2. * , % , / ; 3. < , , >= ;4. == , != , === , !== ; 5. & ; 6. ^ ; 7. && ; 8. ?: ; 9. = , += , -= , /= , *= , %= , &= , |= , ^= ; 10. And ; 11. Xor ; 12. Or ; 13. , ;n PHP se pot folosi operatori de conversie explicit, cunoscui din C++. Ca i n C++, ei se aplic prefixat. Astfel, exist: (int) conversie ctre o valoare ntreag, (string) conversie ctre ir, iar (double) conversie ctre real. Exemplu de script (ex042.php): Exemplu de script (ex043.php): Exemplu de script (ex044.php): Exemplu de script (ex045.php): Afiarea datelor Dup cum am vzut deja, una dintre cele mai folosite instruciuni de afiare n PHP este echo. Are dou forme: data afiat se scrie ntre paranteze rotunde (aceast form nu poate fi folosit pentru afiarea mai multor date): echo(Ana are mere); datele afiate sunt scrise dup echo, fr a fi grupate ntre paranteze i separate prin virgule: echo Ana are , 1+2, mere;O alt instruciune de afiare este print. Dup ea urmeaz o singur dat, care poate fi sau nu pus ntre paranteze. Funcioneaz ca i echo, n plus, n cazul n care folosim forma cu paranteze, va ntoarce valoarea true dac afiarea a fost fcut cu succes, respectiv false n caz contrar.Alte dou instruciuni folosite n special pentru cazurile n care dorim s depanm un program sunt: var_dump(expresie) print_r(variabila) afieaz tipul expresiei urmat de valoarea sa; n cazul unor variabile compuse (iruri, obiecte) produce o afiarea tuturor componentelor ale acestora.Dup cum am vzut deja prin exemplele date, n loc de ghilimele, se pot folosi i apostrofuri. Diferena este dat de faptul c, n cazul folosirii ghilimelelor, dac irul de caractere conine numele unor variabile, acestea vor fi evaluate, deci se va afia coninutul lor, pe cnd n cazul apostrofurilor se va afia numele variabilei ca atare. Nu putem folosi ghilimele incluse n cadrul altei perechi de ghilimele, i nici apostrofuri incluse ntre alte perechi de apostrofuri, n schimb, putem include ghilimele ntr-un ir delimitat de apostrofuri sau apostrofuri ntr-un ir delimitat de ghilimele. Exemplu de script (ex046.php): 3.5. Instruciuni ale limbajului PHP.Instruciunile PHP sunt asemntoare cu cele din C. Din acest motiv, ne vom limita la o scurt prezentare a lor i la cteva exemple de utilizare.3.5.1. Instruciunea expresie. La fel ca i n C++ se folosete n special pentru calcule i atribuiri. Exemplu: $x=$x*10+3;3.5.2. Instruciunea bloc (se mai numete i compus). Are aceeai sintax i funcionalitate ca n C, i anume de a grupa mai multe instruciuni, astfel nct acestea s joace rolul sintactic al uneia singure. Instruciunile se scriu ntre paranteze acolade: { ... ... }3.5.3. Instruciunea if. Are aceeai form i funcionalitate ca i n C: if(expresie) instruciune1; [else instruciune2;] Deci, dac expresia este evaluat ca fiind adevrat (sau diferit de 0) se executinstruciune1. instruciune2.Dac este fals (sau 0) iar ramura else este prezent, se va executa La fel ca i n C, dac n loc de o singur instruciune sunt mai multe, se vorgrupa ntr-un bloc. Exemplu de script (ex047.php) care conine un if: 3.5.4. Instruciunea while. Are aceeai form i funcionalitate ca i n C: while(expresie) instruciune; Principiul de executare este urmtorul: Se evalueaz expresia; Dac aceasta este adevrat (sau diferit de 0) se execut instruciunea subordonat,dup care se revine la Pasul P1. n caz contrar se termin execuia repetitivei while, trecndu-se la instruciunea urmtoare n codul surs. Exemplu de script (ex048.php) care conine while: 3.5.5. Instruciunea do...while. Are aceeai form i funcionalitate ca i n C: do instruciune; while(expresie); Principiul de executare este urmtorul: Se execut instruciunea subordonat (cea de dup do); Se evalueaz expresia. n cazul n care valoarea evaluat este false (sau 0), executarea instruciunii do...while se termin. n cazul n care este adevrat (sau nenul) se reia executarea pasului anterior. Exemplu de script (ex049.php) care conine do...while: 3.5.6. Instruciunea for. Are aceeai form i funcionalitate ca i n C: for(expresieiniializare;expresiecontinuare;expresieincrementare) instruciune; Principiul de executare este uor de neles, datorit faptului c for-ul se poate transcrie n mod perfect echivalent prin urmtoarea secven de program: expresieiniializare; while(expresiecontinuare) { instruciune; expresieincrementare; } Dei for-ul este, n limbajul C, deci i n PHP, o instruciune mult mai general dect n alte limbaje, totui, cel mai utilizat scop al su este de a atribui unui contor, rnd pe rnd, valori (de regul ntregi) cuprinse ntre dou limite. Exemplu de script (ex050.php) care conine un for: 3.6. Transmiterea datelor prin intermediul formularelor.Am amintit de formulare i de rolul pe care acestea l joac n dinamizarea paginilor web. Formularele reprezint un mecanism prin care se pot trimite date ctre serverulHTML. Aceste date pot fi preluate de ctre script-urile PHP i n continuare folosite n cadrul programelor. S nu uitm c formularele sunt elemente HTML. Fie urmtorul unui formular, pe care l crem n fiierul ex051.html : Formulare Introdu o valoare numerica:

Atributul action al tag-ului form se refer la numele fiierului PHP care se va ocupa de prelucrarea datelor iar atributul method de metoda prin care sunt trimise datele ctre server. Tag-ul creeaz un cmp de date de tip text. Atributul name al acestuia specific un identificator prin care PHP-ul va prelua valoarea din acesta. Tag-ul creeaz un buton de trimitere a datelor. Practic, apsarea pe acest buton permite trimiterea coninutului ntregului formular ctre server. Preluarea datelor trimise ctre server prin intermediul metodei POST, n cadrul unui script PHP se face prin intermediul vectorului predefinit$_POST[nume_cmp_din_formular].Atenie la faptul c $_POST trebuie scris cu majuscule !. De exemplu, n cazul nostru, putem recupera aceast valoare prin intermediul lui$_POST[a].Analog, dac datele ar fi trimise ctre server prin intermediul metodei GET (deci n mod vizibil, n cererea URL, de exemplu http://page.html?a=13), n cadrul script-uluiPHPasociat,preluarealorsefaceprinintermediulvectoruluipredefinit$_GET[nume_cmp_formular].n cazul n care un anumit cmp nu exist, n momentul cererii $_POST[...] din cadrul PHP-ului, acesta s-ar putea sa genereze un mesaj de tip atenionare (warning) n funcie de setri. Pentru a evita acest lucru, n faa caracterului $ (de la $_POST[...]) punem caracterul @. Semnificaia acestuia este de a ignora mesajele de tip warning. Codul lui ex052.php, scriptul PHP pe care l-am anunat n atributul action al formularului ex051.html, script care va trebui s se afle n acelai director cu ex051.html. Scriptul preia valoarea cmpului text din form i afieaz att valoarea recuperat ct i ptratul su: Formulare Vom studia, n continuare, modul n care se preiau datele din toate tipurile de elemente care pot s apar ntr-un formular obinuit: n cazul unui input de tip text, am vzut deja cum se face acest lucru. n exact acelai mod se preiau datele dintr-un input de tip password, de tip hidden sau de tiptextarea.n cazul unui input de tip submit, valoarea (care este de fapt textul scris pe buton) se poate prelua doar n cazul n care, n cadrul tagului apare i atributul name. Evident, n cazul n care formularul are un singur control de tipsubmit,e destul de ilogic sa dorim sa vedem ce valoare are.Totui, n cazul n care un formular are dou sau mai multe butoane de tip sumbit, crora vrem s le asignm funcii diferite, este foarte important s tim care dintre ele a fost apsat. Iat mai jos un astfel de exemplu:ex053.html+ ex054.php primul fiier conine un formular cu dou cmpuri text, ncare introducem valori numerice. n funcie de controlul submit pe care-l apsm, al doilea fiier va prelua datele i va calcula fie produsul fie suma celor dou valori numerice:ex053.html: Formulare Introdu o valoare numerica: Introdu o alta valoare numerica: ex054.php: Formulare n cazul unui control de tip radio, s ne amintim mai nti c toate tag-urile de tipul trebuie s aib la atributul name acelai nume, iar la atributul value valori diferite, prin care vom identifica opiunea aleas. Aceast valoare va fi trimis ctre PHP. Iat un exemplu de utilizare al controlul de tip radio: ex055.html + ex056.php. Cu aceast ocazie vom folosi i instruciunea switch a limbajului PHP, instruciune pe care nu am prezentat-o, ns care are exact aceeai sintax i funcionalitate ca n C. ex055.html: Formulare Introdu o valoare numerica: Introdu o alta valoare numerica: Alege operatia pe care doresti
sa o faci cu cele doua:
Suma
Diferenta
Produsul
Citul Fisierul ex056.php Formulare n cazul unui control de tip checkbox, s ne reamintim c fiecare control de acest tip are un nume separat. Dac este bifat, va trimite ctre PHP valoarea indicat n atributul value a tag-ului (ca ir de caractere). Dac acest atribut nu este prezent, valoarea trimis ctre PHP va fi irul de caractere on. n schimb, dac nu este bifat, pur i simplu nu va trimite nimic, deci s-ar putea ca cererea $_POST[...] sa genereze un warning (depinde i de setrile PHP-ului). Pentru ca acest lucru s nu se ntmple, indiferent de setri, aa cum am anunat mai nainte, folosim caracterul @ n faa cererii $_POST[...].Iat mai jos un exemplu: ex057.html + ex058.php ex057.html: Formulare Alege, dintre cele de mai jos,
limbile straine pe care le cunosti: Engleza
Franceza
Germana
Italiana
Spaniola
ex058.php: Formulare - n cazul unui control de tip select simplu, PHP-ul va putea recupera valoarea cu ajutorul numelui stabilit n atributul name al tag-ului , valoarea trimis fiind cea stabilit n atributul value al tag-urilor option nglobate n cadrul select-ului. Iat mai jos un exemplu (ex059.html + ex060.php) care reia ideea din ex055.html cu deosebirea c, n loc de a alege operaia dorit prin intermediul unui control radio, o alegem cu ajutorul controlului select. A se remarca faptul c fiierul care prelucreaz datele (ex060.php) a rmas identic cu cel care prelucra datele din ex055.html. ex059.html: Formulare Introdu o valoare numerica: Introdu o alta valoare numerica: Alege operatia pe care doresti
sa o faci cu cele doua: Suma Diferenta Produsul Citul ex060.php: Formulare n cazul unui control de tip select multiplu, form-ul va trimite ctre PHP un ir n care vom regsi valorile selectate. Este obligatoriu, totui, ca atributul name din cadrul tag-ului s specifice faptul c se va trimite un ir. Acest lucru se face punnd un set de paranteze ptrate dup numele cmpului, deci de forma name=nume_sir[]. Preluarea n PHP se face n mod normal, prin@variabila=@$_POST[nume_sir] (remarcai faptul c nu se mai pun []). Acest ir va conine pe post de elemente valorile stabilite prin atributul value ale opiunilor selectate. irul va ncepe de la indicele 0, numrul su total de elemente fiind dat de funcia count(nume_ir). Iat un exemplu care exploateaz o list de tipul (ex061.html + ex062.php) ex061.html: Formulare Alege, dintre cele de mai jos,
limbile straine pe care le cunosti.
Poti selecta, evident, mai multe
daca tii apasata tasta Control in
timpul selectarii Engleza Franceza Germana Italiana Spaniola ex062.php: Formulare una dintre facilitile transmiterii datelor prin intermediul formularelor const n posibilitatea trimiterii rezultatului mai multor controale sub forma elementelor unui ir sau chiar matrice. n acest caz, atributul name al controlului din form trebuie s specifice acel element din ir (sau matrice) care va primi valoarea sa, deci s fie de forma: name="nume_ir[indice]" respectiv name="nume_matrice[indice_linie][indice_coloan]". Iat un exemplu n care crem un form cu 4 controale de tip input type="text", ale cror valori vor fi preluate de ctre un ir cu 4 elemente (ex063.html + ex064.php): ex063.html: Formulare Introdu 4 valori numerice intregi:

prima valoare:

valoarea a 2-a:

valoarea a 3-a:

valoarea a 4-a:


ex064.php: Formulare 3.7. Funcii n PHP.n PHP se pot scrie funcii ntr-un mod foarte similar fa de ceea ce tim din C/C++. S considerm exemplul urmtor, n care se utilizeaz o funcie care calculeaz i ntoarce suma cifrelor unui numr ntreg pe care l primete ca parametru: ex065.php: Functii PHP Pentru a ntoarce un rezultat din corpul unei funcii, se folosete, aa cum suntem deja obinuii, instruciunea return. Forma sa general este: return expresie. n cazul unei funcii care nu ntoarce rezultat (deci echivalentul unei funcii de tip void din C++), cuvntul cheie function rmne obligatoriu (fr a specifica nimic suplimentar) putnd s apar oriunde n cadrul funciei cuvntul cheie return fr a mai fi urmat de vreo expresie, avnd ca efect ieirea imediat din funcie. El poate fi, de asemenea, omis, ieirea din funcie producndu-se n acest caz n mod natural. Transmiterea parametrilor se poate face att prin valoare ct i prin referin, n acelai mod n care se face i n C++ :o Parametrii specificai n mod direct sunt cei transmii prin valoare. Chiar dac valoarea unui astfel de parametru este schimbat n cadrul funciei, ea rmne totui neschimbat dup executarea acesteia. Atunci cnd apelm funcia, pe poziiile acestor parametri se pot transmite att valori ct i coninutul unor variabile. Script-ul urmtor afieaz valoarea variabilei de dinainte de apelul funciei chiar dac n funcie s-a ncercat modificarea valorii transmise (ex066.php): Functii PHP o Parametrii pe care dorim s-i transmitem prin referin, trebuie precedai de caracterul & n antetul funciei. Dac valoarea unui astfel de parametru este modificat n cadrul funciei, ea rmne modificat i dup executarea acesteia. Evident, atunci cnd apelm funcia, pe poziiile acestor parametrii e obligatoriu s specificm variabile. Relum scriptul anterior, punnd un & n faa parametrului $x. n acest fel, valoarea variabilei dup ce apelm funcia nu va mai fi cea anterioar (10) ci cea obinut n urma modificrii ex067.php: Functii PHP n funcie de domeniul de vizibilitate, i n PHP variabilele se clasific n variabile locale i variabile globale. Cele globale sunt cele definite n afara oricrei funcii. Implicit, ele nu pot fi adresate din corpul vreunei funcii. Totui, exist o posibilitate de a face acest lucru: n cadrul funciei n care vrem s utilizm variabile globale, le specificm pe toate, precedate de cuvntul cheie global. Putei observa acest mecanism n exemplu urmtor: ex068.php: Functii PHP Variabilele locale sunt variabilele create n corpul unei funcii sau cele create prin transmiterea parametrilor formali . Ele nu sunt recunoscute n afara funciilor. i n PHP funciile pot fi recursive. Pentru a nu ncrca foarte mult un anumit script, putem ngloba toate definiiile complete ale funciilor ntr-un singur fiier de tip text (preferabil cu extensia .php, pentru a nu putea fi vizualizat accidental prin intermediul server-ului http). Mecanismul includerii este unul asemntor cu cel din C/C++ (clauza #include...) cu deosebirea c, putem include codul surs al funciilor n orice loc dorim. Acestlucru se face cu ajutorul funciei predefinite PHP: require(nume_fisier); . Codul surs al funciilor trebuie inclus i el ntre tag-urile . n exemplul de mai jos, vom crea dou fiiere: ex069.php, ce conine definiia corect a unei funcii care verific dac un numr este prim, i un altul ex070.php, ce afieaz toate numerele prime dintre 1 i n, folosind funcia din ex069.php: ex069.php: Functii PHP ex070.php: 5.2. BacktrackingSe citete, prin intermediul unui cmp de tip text al unui formular, o valoare pozitiv nenul n mai mic sau egal cu 7. S se scrie un program PHP care genereaz toate permutrile de n, afindu-le ntr-un tabel. Fiecare linie a tabelului va conine elementele unei permutri. pb003.html Introdu ordinul permutarilor: pb004.php

2. S se realizeze o aplicaie pentru gestionarea crilor unei biblioteci. Se vor memora ntro baz de date ISBN-ul, autorul, titlul, anul apariiei i numrul de volume al fiecrei cri. Aplicaia va permite adugarea de noi cri i afiarea pe ecran a crilor care sunt ntr-un numr de n volume, n fiind citit de la tastatur. Adugarea i listarea vor fi accesibile dintrun meniu. pba00201.php Atestat problema 2 Problema 2. Atestat
pba00202.php Atestat problema 2 Problema 2. Atestat
pba00203.html Atestat problema 2 Problema 2. Atestat
ISBN: Autor: Titlu: Anul aparitiei: Numarul de volume: pba00203.php Atestat problema 2 Problema 2. Atestat