Professional Documents
Culture Documents
Obiective
Proiectul individual este cea mai important pies din programul de absolvire a unui curs, an de nvmnt, perioade de pregtire. Reprezint oportunitatea de a demonstra independen i originalitate, punnd n practic tehnici i cunotine acumulate ntr-un domeniu de studiu. Indiferent de nivelul academic atins, proiectul este expresia individualitii i inspiraiei n efortul de a face proba cunoaterii. Ideea proiectului poate fi o propunere a conductorului, personal sau o combinaie ntre cele dou. Proiectul trebuie s aib alura unei investigaii care se poate termina (sau nu) cu furnizarea unui produs funcional (o aplicaie program).
Consideraii generale:
Cantitatea nu asigur calitatea (mai multe pagini nu nseamn calitate mai bun) Concizia, claritatea i elegana exprimrii sunt caliti care conteaz la evaluare pe lng coninutul n sine Orizontul proiectului ales trebuie s se ncadreze perfect posibilitilor individuale Indiferent de tema proiectului, acesta va conine urmtoarele elemente constitutive (structura exact cu titlurile capitolelor si ierarhia de subcapitole fiind la latitudinea fiecruia): o Pagina de titlu Aceasta va conine titlul proiectului, numele autorului, numele instituiei, anul. o Abstractul Acesta va fi o descriere foarte scurt (pe o jumtate de pagin maxim) a coninutului proiectului, n urma citirii creia, oricine s-i poat face o idee clar asupra problematicii propuse. o Cuprinsul lucrrii (cu indicarea numrului de pagin) o Introducerea Aceast component declar natura i scopul proiectului, obiectivele principale propuse i realizrile corespunztoare acestora. o Corpul proiectului Partea central a proiectului const ntr-un numr de capitole care detaliaz tehnica muncii depuse n vederea atingerii scopului propus al proiectului. Structura acestor capitole este dependent de fiecare proiect n parte (de exemplu pot reflecta dezvoltarea cronologic a unei aplicaii: proiectare, implementare, experiment, optimizare, evaluare etc.). o Concluzii Concluziile proiectului trebuie s puncteze acele lucruri care au fost nvate i remarcate ca rezultat al muncii depuse de-a lungul realizrii proiectului. o Bibliografia Va conine lista cu crile, revistele, articolele, manualele, adresele web, folosite la realizarea proiectului.
Pagina 1 din 86
Pagina 2 din 86
Se salveaz fiierul sub denumirea pagina1.html. Se deschide apoi fisierul n browser. Explicaia codului fisierului: Primul tag din fisier este <html>. Acest tag spune browser-ului c acesta este nceputul documentului HTML. Ultimul tag din fisier este </html>. Acest tag spune browser-ului c acesta este sfrsitul documentului HTML. Textul cuprins ntre tag-ul <head> si tag-ul </head> constituie informaie header care nu este afisat n fereastra browser-ului. Textul cuprins ntre tag-urile <title> este titlul documentului afisat n bara de titlu a browser-ului. Textul cuprins ntre tag-urile <body> este textul afisat n browser. Textul cuprins ntre <b> si </b> tags va fi afisat cu font ngrosat (bold).
Primul tag din pereche este start tag, iar al doilea este end tag Textul cuprins ntre start si end tag constituie coninutul elementului HTML Tag-urile HTML nu sunt case sensitive, <b> fiind acelasi lucru cu <B> Atribute Tag Atributele tag-urile sunt informaii adiionale despre elementele HTML din pagin. Declararea atributelor se face n pereche nume/valoare astfel:
Atributele sunt adugate ntotdeauna n tag-ul de start al elementului HTML. Exemple: 1. Acest tag defineste elementul body al paginii HTML: <body>. Cu ajutorul unui atribut bgcolor, se poate indica browser-ului culoarea de fundal (rosu) a paginii astfel:
2. Acest tag defineste un tabel HTML: <table>. Cu ajutorul unui atribut de chenar se poate indica browser-ului c tabelul nu va fi ncadrat de chenar (border):
1.3.1.1 Heading-uri
Heading-urile sunt definite cu tag-urile <h1> pn la <h6>, <h1> definindu-l pe cel mai mare, iar <h6> pe cel mai mic. HTML adaug n mod automat o extra linie blank nainte si dup heading.
1.3.1.2 Paragrafe
Paragrafele sunt definite cu tag-ul <p>. HTML adaug n mod automat o extra linie blank nainte si dup paragraf.
Pagina 4 din 86
O etichet poate avea mai multe atribute. Urmtorul exemplu prezint o pagin cu fondul de culoare albastr si textul de culoare galben.
Pagina 5 din 86
Textul afisat este caracterizat de urmtoarele atribute: Mrime (size), Culoare (color), Font (style). Acestea sunt atribute ale etichetei <basefont>. Este o etichet singular (fr delimitator de sfrsit de bloc). <basefont size = numr color = culoare style = font> unde: numr poate fi 1, 2, 3, 4, 5, 6 sau 7; (1 pentru fontul cel mai mic si 7 pentru fontul cel mai mare); culoare este o culoare precizat prin nume sau printr-o construcie RGB; font poate fi un font generic ca "serif", "san serif", "cursive", "monospace", "fantasy" sau un font specific instalat pe calculatorului clientului, ca "Times New Roman", "Helvetica" sau "Arial". Se accept ca valoare si o list de fonturi separate prin virgul, de exemplu: "Times New Roman, serif, monospace". Domeniul de valabilitate al caracteristicilor precizate de aceast etichet ncepe de la locul n care apare eticheta pn la sfrsitul paginii sau pn la urmtoarea etichet <basefont>. Dac acest atribut lipseste, atunci textul din pagina Web are atribute prestabilite sau atribute precizate de browser-ul utilizat. Atributele prestabilite sunt: size = 3, color = black si style = "Times New Roman". Poziionarea coninutului paginii Web fa de marginile ferestrei browser-ului se poate face cu ajutorul a dou atribute ale etichetei <body>: leftmargin (stabileste distana dintre marginea stnga a ferestrei browser-ului si marginea stnga a coninutului paginii); topmargin (stabileste distana dintre marginea de sus a ferestrei browser-ului si marginea de sus a coninutului paginii);
Pagina 6 din 86
Pagina 7 din 86
Exemplul urmtor ilustreaz faptul c etichetele pot fi imbricate. un fragment de text poate fi scris cu aldine si cursive n acelasi timp; pentru un fragment de text se pot folosi simultan stilurile subliniat, exponent, mrit si cursiv. Blocul <q>...</q> permite inserarea in-line a citatelor. Aceste citate sunt afisate de ctre browser cu caractere cursive.
Pagina 8 din 86
o o o o
"width" permite alegerea lungimii liniei; "size" permite alegerea grosimii liniei; "noshade" definete o linie fr umbr; "color" permite definirea culorii liniei.
Pagina 11 din 86
Pentru adugarea unui chenar n jurul imaginii, se folosete atributul "border" al etichetei <img>. Valorile acestuia sunt numere ntregi pozitive. O imagine are anumite dimensiuni pe orizontal i pe vertical, acestea fiind stabilite n momentul crerii ei. Dac nu se specific altfel, aceste dimensiuni sunt respectate n momentul afirii ei n pagina Web. Dimensiunile prestabilite ale unei imagini pot fi modificate ns prin intermediul atributelor "width" i "height".
1.3.4 Linkuri
Legturile (linkurile) transform un text obinuit n hipertext sau hiperlegtur, care premite trecerea nesecvenial de la o informaie aflat pe un anumit server la o alt informaie care se afl n alt loc (pe un alt server, de exemplu). ntr-o pagin web legturile sunt zone active.
Pagina 13 din 86
Pagina 14 din 86
Pagina 15 din 86
1.3.5 Liste
Un set de definiii, referine sau indexuri afiate ca liste (ordonate sau nu) constituie unul din elementele des ntlnite n paginile Web. Astfel o list este inclus ntr-o pereche de marcaje de list de definiii: <dl>...</dl> ("definition list"). Caracteristicile unei liste: o un termen al listei este iniiat de eticheta <dt> ("definition term"); o definiia unui termen este iniiat de eticheta <dd> ("definition description"); o definiia unui termen ncepe pe o linie nou i este indentat.
Pagina 16 din 86
Tag-urile <ul> i <li> pot avea un atribut "type" care stabilete caracterul afiat n faa fiecrui element al listei. Valorile posibile ale acestui atribut sunt: "circle" (cerc) "disc" (disc plin) (valoarea prestabilit); "square" (ptrat) Listele neordonate pot fi imbricate pe mai multe niveluri
Pagina 17 din 86
Tag-urile <ol> i <li> pot avea un atribut "type" care stabilete tipul de caractere utilizate pentru ordonarea listei.Valorile posibile sunt: o "A" pentru ordonare de tipul A, B, C, D; o "a" pentru ordonare de tipul a, b, c, d; o "I" pentru ordonare de tipul I, II, III, IV; o "i" pentru ordonare de tipul i, ii, iii, iv; o "1" pentru ordonare de tipul 1, 2, 3, 4 etc. (cifre arabe opiune prestabilit);
Tag-ul <ol> are un atribut "start" care stabilete valoarea iniial a secvenei de ordonare. Valoarea acestui atribut trebuie s fie un numr ntreg pozitiv. Urmtorul exemplu este o list ordonat cu litere mici, ncepnd de la valoarea c.
Pagina 18 din 86
Tag-ul <li> poate avea un atribut "value" care stabilete valoarea pentru elementul respectiv al listei. Valoarea acestui atribut trebuie s fie un numr ntreg pozitiv (vezi urmtorul exemplu).
1.3.6 Tabele
Tabelele permit crearea unei matrici de celule, fiecare celul avnd propriile opiuni pentru culoarea fondului i a textului, alinierea textului etc. Pentru a insera un tabel se folosesc etichetele <table>...</table>. Un tabel este format din mai multe rnduri. Pentru a insera un rnd ntr-un tabel se folosesc etichetele <tr>...</tr> ("table row"). Folosirea etichetei de sfrit </tr> este opional. Un rnd este format din mai multe celule ce conin date. O celul de date se introduce cu eticheta <td>..</td>.
n mod prestabilit, un tabel nu are chenar. Pentru a aduga un chenar unui tabel, se utilizeaz un atribut al etichetei <tabel> numit border. Acest atribut poate primi ca valoare orice numr ntreg (inclusiv 0) i reprezint grosimea n pixeli a chenarului tabelului. Dac atributul "border" nu este urmat de o valoare, atunci tabelul va avea o grosime prestabilit egal cu 1 pixel, o valoare egal cu 0 a grosimii semnificnd absena chenarului.
Pagina 19 din 86
Distana dintre tabel i celelalte elemente din pagina web poate fi stabilit cu ajutorul atributelor "hspace" i "vspace" ale etichetei <table>. Valoarea atributului "hspace" poate fi orice numr pozitiv, inclusiv 0, i reprezint distana pe orizontal dintre tabel i celelalte elemente ale paginii web. Valoarea atributului "vspace" poate fi orice numr pozitiv, inclusiv 0, i reprezint distana pe vertical dintre tabel i celelalte elemente ale paginii web.
Pagina 20 din 86
Culoarea textului din fiecare celul se poate stabili cu construcia: <font color="valoare">...</font>.
Distana dintre marginea unei celule i coninutul ei poate fi definit cu ajutorul atributului "cellpadding" al etichetei <table>. Valorile acestui atribut pot fi numere ntregi pozitive i reprezint distana n pixeli dintre celul i coninutul ei. Valoarea prestabilit a atributului "cellpadding" este 1.
Pagina 21 din 86
Exemplul urmtor permite afiarea unui text poziionat n centrul paginii web folosind facilitile oferite de crearea unui tabel.
Un tabel poate avea de asemenea celule cu semnificaia de cap de tabel. Aceste celule sunt introduse cu eticheta <th> ("tabel header") n loc de <td>. Toate atributele care pot fi ataate etichetei <td> pot fi de asemenea ataate etichetei <th>. Coninutul celulelor definite cu <th> va fi scris cu caractere aldine i centrat.
Pagina 22 din 86
Pagina 23 din 86
Pagina 24 din 86
Pagina 25 din 86
n exemplul urmtor este creat o pagin cu trei cadre mixte. Pentru a o crea se procedeaz din aproape n aproape: mai nti, pagina este mprit n dou subferestre de tip coloan, dup care a doua subfereastr este mprit n dou subferestre de tip linie.
Pagina 26 din 86
Dac este prezent atributul "noresize" al etichetei <frame>, acesta inhib posibilitatea prestabilit de redimensionare a cadrului cu ajutorul mouse-ului.
o prin plasarea n eticheta <a> a atributului "target", care precizeaz numele cadrului n care se va ncrca pagina nou referit de legtur, conform sintaxei: <a href="adresa" target="nume_frame">...</a> Observaie: o dac este prezent att un atribut target n <base>, ct i un atribut "target" n <a>, atunci cele precizate de atributul "target" din <a> au prioritate. Numele unui cadru este stabilit prin atributul "name" al etichetei <frame> conform sintaxei: <frame name="nume_frame"> n exemplul urmtor este prezentat o pagin cu dou cadre, unul numit "left" i cellalt numit "main". Toate legturile din cadrul "left" ncarc paginile n cadrul "main".
Atributul "target" al etichetei <frame> accept urmtoarele valori cu semnificaiile: o "_self" (ncrcarea noii pagini are loc n cadrul curent); o "_blank" (ncrcarea noii pagini are loc ntr-o fereastr nou anonim); o "_parent" (ncrcarea noii pagini are loc n cadrul printe al cadrului curent dac acesta exist, altfel are loc n fereastra browser-ului curent); o "_top" (ncrcarea noii pagini are loc n fereastra browser-ului ce conine cadrul curent).
1.3.8 Stiluri
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. Un stil reprezint un mod de a scrie un bloc de text (anumite valori pentru font: mrime, culoare, alinieri, distane fa de margini etc.). Stilurile permit personalizarea paginilor web. Exist dou modaliti de a defini un stil: o sintaxa CSS (Cascading Style Sheets="foi in stilul cascada"); o sintaxa Javascript.
Pagina 28 din 86
Tehnologia CSS permite crearea unui stil pentru fiecare tag HTML ntrebuinat la un moment dat, putnd ulterior s aplice acest stil n toate paginile site-ului pentru elementul respectiv (pentru tag-ul HTML stilizat). Standardul CSS permite informaiilor cu privire la stil s fie specificate i referite n mai multe feluri: stilurile pot fi specificate n interiorul fiecrui tag HTML n parte, n cadrul seciunii HEAD a documentelor HTML sau ntr-un fiier extern cu extensia ".CSS". n interiorul aceluiai document HTML pot fi referite mai multe fiiere CSS externe. Sintaxa CSS este alctuit din trei pri: un selector, o caracteristic i o valoare. Selectorul este elementul/tag-ul definit, caracteristica este atributul care se dorete a fi schimbat i fiecare caracteristic poate lua o valoare. Caracteristica i valoarea sunt separate de semnul (:) i sunt ncadrate de acolade:
Toate titlurile h1 care apar n fiier vor fi de culoare roie i centrate. Dac se dorete acelai stil pentru mai multe elemente (de exemplu: "h1", "h2" i "p"), atunci se utilizeaz o list a acestor elemente, separate prin virgul:
Dac se dorete ca un titlu de tipul h2 s foloseasc clasa de stiluri "ac", atunci se specific:
Observaii: "all" aflat n faa clasei de stiluri "ac" indic faptul c aceast clas este aplicabil tuturor blocurilor de text, atunci cnd acest lucru este necesar. La utilizarea clasei de stiluri n cadrul unui element se folosete atributul "class" avnd ca valoare numele clasei de stil. Acesta este un atribut universal adic este aplicabil tuturor elementelor. n interiorul unui bloc <style>...</style>, comentariile sunt blocuri delimitate de /* i */ (ca n C, C++, Java i JavaScript).
Pagina 29 din 86
Dac se dorete ca o clas de stiluri s fie aplicabil numai pentru anumite elemente ale documentului (de exemplu: "p"), atunci n construcie va aprea specificat acest element (de exemplu: "p.rc").
o n elementul n care se dorete utilizarea local a acestui stil, se folosete atributul "id" care primete ca valoare numele stilului definit anterior. o dac se dorete ca un stil "identificat" s fie aplicabil numai pentru anumite elemente ale documentului (de exemplu: "h2"), atunci n construcia selectorului va aprea acest element (de exemplu: "h2#ac").
Dac se dorete utilizarea unui anumit style pentru un fragment de text, atunci se include acest text ntr-un bloc cu ajutorul delimitatorilor <span>...</span>, dup care se utilizeaz atributul "style" pentru eticheta <span>.
2. n fiierul HTML care va utiliza stilurile definite n fiierul creat la punctul 1, se include n blocul <head>...</head> o etichet <link> avnd trei atribute: atributul "rel" cu valoarea "stylesheet"; atributul "href" cu valoarea-adres URL a fiierului creat la punctul 1; atributul "type" cu valoarea "text/css". Exemplu de fiier HTML cu un CSS extern:
Pagina 31 din 86
Fiierul CSS ("stil.css") asociat, plasat n acelai director cu fiierul html, este urmtorul:
Importul trebuie declarat imediat dup tag-ul <style>, naintea oricrei alte linii de cod. n exemplul de mai sus, s-a realizat importul n pagina curent a fiierului x.css din directorul fis al site-ului www.domeniu.net.
1.4. JAVASCRIPT
Pagina 32 din 86
JavaScript este un limbaj de scripting dezvoltat la origine de Netscape, permind scrierea de secvene de program care se execut la apariia unui eveniment utilizator. Acest limbaj de programare de tip script este utilizat pentru definirea comportamentului elementelor dintr-o pagin web. Spre deosebire de Java, unde codul este compilat i scris n fiiere separate numite appllet-uri, codul JavaScript este inclus ca parte integrant a codului-surs HTML i nu necesit compilri sau preprocesri, fiind un limbaj interpretat. O aplicaie simpl JavaScript care determin apariia i derularea unui mesaj este urmtorul exemplu:
Scriptul este ncadrat de marcajele <script>...</script> i toat construcia este nglobat ntrun comentariu astfel nct programele de navigare care nu interpreteaz JavaScript nu vor fi derulate de scriptul n sine.
1.4.1 Evenimente
n programarea JavaScript evenimentele sunt foarte importante. Evenimentele sunt de cele mai multe ori declanate de aciuni ale utilizatorului. Dac utilizatorul apas un buton, un eveniment de tip "Click" are loc. Dac mouse-ul este deasupra unei legturi, atunci un eveniment de tip "MouseOver" are loc. Pentru ca programul JavaScript s reacioneze la unele evenimente, exist manageri de evenimente sau gestionari de evenimente "event-handlers". Un buton poate crea o fereastr atunci cnd este apsat: aceasta nseamn c fereastra apare ca o reacie la evenimentul "Click". Managerul de evenimente (event-handler-ul) care trebuie utilizat este numit "onClick", iar acesta spune brwoser-ului computerului utilizator ce s fac atunci cnd evenimentul are loc. Urmtorul cod este un exemplu simplu de "event-handler onClick":
n codul JavaScript de mai sus se observ crearea unui buton cu ajutorul unui formular. Secvena de cod nou este codul JavaScript onClick="alert('Reactie la evenimentul Click')" n interiorul tag-ului <input>. Codul n cauz definete ce se ntmpl cnd butonul este apsat: atunci cnd un eveniment "Click" are loc, computerul execut alert ('Reactie la evenimentul Click'). Acesta este de fapt codul JavaScript (se observ c nu se utilizeaz tag-ul <script> n acest caz). "Alert()" permite crearea de ferestre de avertizare (de tip popup windows), n interiorul parantezelor specificndu-se un ir. n acest caz irul este 'Reactie la evenimentul Click' i este textul ce va fi afiat n fereastra de avertizare. Deci scriptul dat ca exemplu creeaz o fereastr cu coninutul 'Reactie la evenimentul Click' atunci cnd utilizatorul apas butonul. Evenimentele gestionate cu JavaScript sunt date n tabelul urmtor:
Pagina 33 din 86
1.4.2 Funcii
Funciile constituie o metod profesional de a lega mai multe comenzi mpreun. Ca exemplu simplu este dat un script care furnizeaz un anumit text de dou ori consecutiv:
n scriptul din seciunea BODY a documentului HTML s-a definit i apelat o funcie. Definirea s-a realizat cu urmtoarele linii de cod:
Comenzile din interiorul {} in de implementarea funciei scrieText(). Aceasta nseamn c ambele comenzi "document.write()" vor fi executate prin apelarea funciei. n acest exemplu sunt trei apelri ale funciei, deci textul va fi scris de dou ori.
Pagina 34 din 86
Exemplul 2: acest exemplu va schimba culoarea de fond a paginii prin intermediul funciilor i evenimentului click.
Exemplul 3: n acest exemplu se va modifica o imagine atunci cnd cursorul este poziionat pe ea. Exist dou versiuni ale imaginii: imaginea "on" (1.gif corespunztoare cursorului poziionat deasupra imaginii) i (2.gif corespunztoare cursorului poziionat nimaginea "off" exteriorul imaginii). Amndou imaginile se afl n folderul /imagini. Pentru a crea efectul "mouseover", tag-ul <img> este nglobat ntr-un hyperlink care cuprinde handler-ele de eveniment onMouseOver i onMouseOut:
Pagina 35 din 86
n seciunea <head> a paginii se afl codul JavaScript care prencarc fiierele imagine 1.gif i 2.gif i definete funciile event handler:
Pagina 36 din 86
Se va accesa directorul unde este instalat i server-ul web (n acest caz: C:\Program Files\EasyPHP-1.8\) i se va salva scriptul n directorul WWW, sub numele ex1.php. Directorul WWW este directorul-rdcin de unde server-ul tie s listeze paginile. Observaie: Pentru o mai bun organizare a lucrului, se poate crea n interiorul lui WWW un alt director, WORK, n care se salveaz scriptul php creat. Textul va fi afiat n pagin cu ajutorul construciei echo, care este delimitat de ghilimelele simple sau ghilimelele duble . Instruciunea echo e folosit pentru a trimite date de ieire sub form de text unui browser web. Rularea scriptului presupune urmtorii pai: 1. lansarea pachetului de programe EasyPHP-1.8
Pagina 37 din 86
4. Rezultatul va fi urmtorul:
Pagina 38 din 86
Se observ c ghilimelele construciei echo intr n conflict cu ghilimelele care ncadreaz numele fiierului din tag-ul a href. Pentru a evita aceast situaie se procedeaz astfel: Rezolvare a.) n interiorul tag-ului a href se folosesc ghilimele duble:
Rezolvare b.) n interiorul tag-ului a href se folosesc ghilimelele simple precedate de caracterul backslash \ :
Pagina 39 din 86
Numele variablei este: a, iar valoarea ei este: Cursul de php. De observat c n construcia echo apare o concatenare de trei iruri (realizat cu operatorul punct.).
Tipul unei variabile se refer la genul de date pe care aceasta le conine. PHP are opt tipuri de variabile. Patru dintre acestea sunt tipuri scalare (boolean, integer, float i string), dou sunt tipuri compuse (array i object), iar alte dou sunt tipuri speciale (resource i null). De asemenea, din motive de lizibilitate, au fost introduse trei pseudotipuri: mixed, number i callback. Mai exist i tipul double, dar semnificaia acestuia este aceeai cu cea a tipului float. Cele dou denumiri coexist doar din motive "istorice". Tipul unei variabile nu este specificat de ctre programator, ci este stabilit n timpul execuiei n funcie de contextul n care este folosit variabila. Tipul boolean: Variabilele de acest tip pot avea doar dou valori: ADEVRAT sau FALS. Aceste valori pot fi indicate prin cuvintele-cheie TRUE sau FALSE (pentru ambele nu se face distincie ntre literele mari i literele mici). Exist posibilitatea de a converti o variabil de orice tip la tipul boolean. n momentul efecturii unei conversii, sunt convertite la valoarea FALSE urmtoarele valori: numrul ntreg 0; numrul real 0.0; irul vid; irul "0"; un vector fr niciun element; un obiect fr nicio variabil membru;
Pagina 40 din 86
o variabil de tipul NULL; o variabil nedefinit. Orice alt valoare este convertit la valoarea TRUE (inclusiv resursele). Tipul integer: O variabil de tip integer reprezint o valoare din mulimea numerelor ntregi. Aceste numere pot fi specificate n baza 10, n baza 16 sau n baza 8, conveniile fiind aceleai ca i n limbajele C/C++ sau Java. Modul de reprezentare depinde de platforma utilizat; de obicei se folosete reprezentarea pe 32 de bii. Interpretorul PHP nu ofer suport pentru numerele ntregi fr semn. Trebuie remarcat faptul c n PHP nu exist niciun operator pentru efectuarea de mpriri ntregi. De exemplu, rezultatul operaiei 5/2 nu va fi numrul ntreg 2 (ca n C/C++ sau Java), ci numrul real (float) 2.5. i pentru numerele ntregi exist posibilitatea efecturii de conversii: valoarea logic TRUE este convertit la valoarea ntreag 1; valoarea logic FALSE este convertit la valoarea ntreag 0; un numr real este convertit prin "rotunjire nspre 0"; aadar, valoarea real 3.5 va fi convertit la valoarea ntreag 3, n timp ce valoarea real -3.5 va fi convertit la valoarea ntreag -3; un ir de caractere este convertit lund n considerare doar primele caractere care conin informaii numerice, aadar irul "102" va fi convertit la valoarea ntreag 102; de asemenea irul "102 pachete" va fi convertit tot la valoarea 102; dac primele caractere nu conin informaii numerice, rezultatul conversiei va fi valoarea 0. Tipul float: O variabil de tip float poate fi specificat folosind fie forma zecimal, fie cea tiinific (cu exponent). La fel ca i n cazul tipului integer, precizia variabilelor de tipul float este dependent de platforma utilizat. De obicei se folosete standardul IEEE 64. Exist posibilitatea de a converti o variabil de orice tip la tipul float. Pentru numerele reale se pot efectua urmtoarele conversii: un ir de caractere este convertit lund n considerare doar primele caractere care conin informaii numerice; n toate celelalte cazuri se realizeaz conversii la numere ntregi care apoi sunt convertite la valorile reale corespunztoare. Tipul string: O variabil de tip string reprezint un ir de caractere. Un caracter se reprezint pe un octet, deci exist 256 de caractere distincte. Acest lucru implic faptul c interpretorul PHP nu ofer suport nativ pentru setul de caractere Unicode. Lungimea variabilelor de tip string nu este limitat de ctre interpretor. Literalii de tip ir de caractere pot fi specificai n trei moduri diferite: prin folosirea ghilimelelor simple (exemplu $a='acesta este un sir de caractere'). Pentru a avea n cadrul irului simbolul "`", atunci naintea acestuia trebuie scris caracterul "\", iar pentru a putea specifica simbolul "\", acesta trebuie dublat; prin folosirea ghilimelelor duble. Folosind aceast notaie, pot fi specificate mai multe caractere speciale, pe lng caracterele de la varianta anterioar, printre care: sfrit de linie ("\r"), rnd nou ("\n"), tab orizontal ("\t"), semnul dolar ("\$"), ghilimelele duble ("\""), secvene de caractere pentru specificarea faptului c o expresie regular este n notaie octal ("\ [0-7]{1,3}") i secvenele de caractere pentru specificarea faptului c o expresie regular este n notaie hexazecimal ("\x[0-9A-Fa-f]{1,2}"). Cel mai important lucru este acela c, folosind acest mod de specificare a literalilor de acest tip, numele de variabile care apar n interior vor fi transformate n valoarea lor. De exemplu, dac $a este o variabil de tipul integer i are valoarea 45, atunci irul de caractere "Variabila a are valoarea $a." va fi transformat n irul "Variabila a are valoarea 45". notaia heredoc. Acest tip de notaie a fost introdus la versiunea 4 a interpretorului PHP. Pentru a specifica un ir de caractere folosind aceast notaie, trebuie utilizat operatorul "<<<" urmat de un identificator ales de utilizator. Toate caracterele care se afl ntre operatorul "<<<", urmat de un
Pagina 41 din 86
identificator pe o singur linie, i acelai identificator pe o alt linie, vor constitui valoarea irului de caractere. De exemplu:
Construcia va avea ca rezultat un ir de caractere format din trei linii de text. Pentru a accesa un anumit caracter din irul de caractere, dup numele variabilei de tip string se folosete indicele caracterului care trebuie accesat, scris ntre acolade. De exemplu, $my_string {3} returneaz al treilea caracter din irul de caractere $my_string. Exist posibilitatea de a converti o variabil de orice tip la tipul string. Pentru irurile de caractere, se pot efectua urmtoarele conversii: valoarea logic TRUE va fi convertit la irul "1", iar valoarea logic FALSE va fi convertit la irul vid (""); un numr ntreg va fi convertit la un ir de caractere care reprezint valoarea numrului n baza 10; un numr real va fi convertit la un ir de caractere care reprezint notaia tiinific a acestuia; obiectele sunt ntotdeauna convertite la irul "Object"; variabilele de tipul resource sunt convertite la irul "Resource id #n", unde n reprezint un numr unic ataat resursei respective de ctre interpretorul PHP; valoarea NULL este convertit la irul vid (""). Tipul array: Variabilele care au o singur valoare se numesc scalare. O variabil care stocheaz mai multe valori se numete variabil tablou (array) sau vector. Un array este o colecie de perechi cheie-valoare. Accesul individual la fiecare element al unui tablou este posibil prin intermediul cheii asociate fiecrui element. Aadar vectorii n PHP sunt mulimi formate din chei. Fiecrei chei din vector i se ataeaz o valoare. Acest tip de date este optimizat astfel nct s poat fi folosit n locul urmtoarelor structuri de date: liste, tabele de dispersie, dicionare, colecii, stive, cozi etc. Datorit faptului c o valoare poate fi reprezentat de un alt vector, se pot simula arborii n-dimensionali sau tablourile n-dimensionale. Valoarea unei variabile de tip vector se poate specifica folosind construcia: De exemplu, urmtoarea instruciune PHP va construi un vector cu dou elemente, dintre care unul este de tip string, iar cellalt de tip boolean: Variabila $a reprezint un vector, $a["ch"] are valoarea sir, iar $a[12] are valoarea TRUE. n cazul n care nu se specific o cheie pentru o valoare, atunci acea valoare va fi ataat unei chei care va fi cheia maxim de tip integer folosit anterior, la care se adaug valoarea 1. Cheile pot avea i valori negative. Dac nu exist chei de tip integer, atunci valoarea va fi ataat cheii 0. De exemplu, urmtoarele dou instruciuni sunt echivalente:
Pagina 42 din 86
Dac se folosete valoarea logic TRUE ca i cheie, atunci aceasta va fi convertit la cheia de tip intreg 1, iar valoarea FALSE va fi convertit la numrul ntreg 0. Nu se pot folosi pentru chei variabile de tipul array sau object. O variabil de tip array se poate modifica prin setarea explicit de valori. De exemplu, instruciunea $a["x"] = 42; adaug n vectorul $a valoarea 42 ataat cheii "x". Dac se folosete un vector care nu a fost definit anterior, atunci acesta este creat automat. Aadar printr-o instruciune de forma $a[7] = 50, n cazul n care vectorul $a nu exist, atunci se va crea un vector cu un singur element. Cheia acestuia va fi numrul ntreg 7, iar valoarea sa va fi 50. De asemenea, exist posibilitatea de a crea un element nou fr a-i preciza cheia. Sintaxa are forma: Aceast instruciune are ca efect adugarea unui element a crui cheie este un numr ntreg mai mare cu 1 dect cel mai mare numr ntreg care este cheie a unui alt element al vectorului. Dac nu exist nicio astfel de cheie, atunci noul element va avea cheia 0. De exemplu, urmtoarele dou secvene sunt echivalente:
Prin conversia la un vector a unei variabile de tip scalar (boolean, integer, float, string) sau resource se creeaz un vector cu un singur element; cheia acestui element este numrul ntreg 0, iar valoarea este cea a variabilei convertite. Dac se convertete un obiect (variabila de tip object), atunci vectorul rezultat va conine cte un element pentru fiecare variabil membru a obiectului. Cheile elementelor vor fi date de denumirile proprietilor obiectului (variabilele membru ale obiectului), iar valorile elementelor vor fi valorile proprietilor obiectului. Dac se realizeaz o conversie a unei variabile de tip NULL, atunci rezultatul va fi un vector vid (care nu conine niciun element). Exemplu: Se creeaz un vector ale crui elemente sunt caracteristicile cursului de PHP:
Pagina 43 din 86
Tipul object: Pentru a defini un obiect care poate fi folosit pentru afiarea mesajului Acest script folosete variabila de tip object!, se scrie urmtoarea secven php:
Este afiat textul Acest script folosete o variabila de tip object!, text ce a fost introdus n funcia AfiseazaMesaj(). Pentru a utiliza o variabil de tip obiect, se realizeaz o instaniere prin intermediul instruciunii new. Sintaxa este: Astfel, variabila $a devine un obiect ale crui metode pot fi utilizate. Deci pentru afiarea propriu-zis a mesajului se va executa metoda AfiseazaMesaj() printr-o instruciune de tipul: Tipul resource: Variabilele de tip resource sunt folosite pentru pstrarea unor referine ctre anumite resurse externe cum ar fi conexiuni la baze de date, fiiere etc. Resursele sunt create i utilizate de anumite funcii speciale. Datorit specificului acestui tip de date, valoarea nici unei variabile de alt tip nu poate fi convertit la tipul resource. Tipul NULL: Valoarea special NULL este atribuit oricrei variabile care nu a fost iniializat. Aceasta valoare este singura pe care o pot avea variabilele de tip NULL. Se consider c o variabil are tipul NULL dac: i s-a atribuit constanta NULL; nu a fost iniializat; a fost deziniializat prin intermediul funciei unset ().
Pagina 44 din 86
$key este opional, i atunci cnd este specificat va conine valoarea cheii iterate curent, aceasta putnd fi un ntreg sau un ir. & este opional i se specific atunci cnd se dorete modificarea $value Un exemplu simplu de folosire a buclei foreach:
Parcurgerea iterativ a unui array se mai poate face cu ajutorul unei combinaii ntre construcia list() i funcia each() ca n exemplul urmtor:
Funcia each() returneaz perechea curent key/val i mut pointer-ul intern pe urmtorul element al array-ului, iar construcia list() este destinat asignrii elementelor array-ului unor variabile, ntr-o singur declaraie. Reset() este folosit nainte de a ncepe procesul iterativ pe array-ul n cauz.
dou metode. $_COOKIE conine valorile variabilelor care cuprind informaii referitoare la cookie-urile pstrate pe calculatorul utilizatorului ce acceseaz pagina web. $_FILES conine variabile primite de script prin intermediul ncrcrilor de fiiere prin metoda post. $_ENV conine variabile disponibile prin intermediul mediului n care este executat. $_REQUEST conine variabile disponibile prin intermediul oricrui tip de mecanism cu ajutorul cruia utilizatorul poate introduce date. $_SESSION conine variabile care corespund sesiunii curente a scriptului.
2.3.4 Constante
O constant stocheaz o valoare, la fel ca o variabil, dar aceast valoare, dup ce a fost stabilit, nu mai poate fi modificat n script. Pentru a defini o constant, se folosete funcia define(). Numele constantelor este scris cu majuscule, aceast opiune nefiind obligatorie. O constant nu are n faa ei semnul $.
Codul php este nglobat n codul html, fiind ncadrat ntretag-urile sale specifice <?php i ?>. Ori de cte ori interpretorul PHP ntlnete tag-ul deschis <?php, va rula codul php pn cnd va ntlni tag-ul de nchidere ?> i-l va nlocui cu output-ul su (dac exist), n timp ce orice alt text non-php (HTML n acest caz) va fi pasat mai departe aa cum este, clientului web. Se salveaz codul de mai sus sub numele embedded_php.php n directorul WORK menionat la
Pagina 46 din 86
2.3.6 Comentarii
Comentariile n php pot fi scrise n trei moduri diferite: mod C /* Acesta este un comentariu ca n C * care se poate extinde pe mai multe linii * pn la tag-ul de nchidere */ mod C++ // Acesta este un comentariu ca n C++, care se ncheie la sfritul liniei. modul Shell # Acesta este un comentariu shell, care se ncheie la sfritul liniei.
Pagina 47 din 86
Acest operator acioneaz similar instruciunilor if i else. Astfel codul de mai sus se interpreteaz: dac valoarea variabilei este egal cu valoarea dat, n cazul nostru curs, atunci se afieaz un text.., dac nu, se afieaz alt text cu un mesaj de eroare 5. Operatori increment/decrement Aceti operatori acioneaz doar asupra variabilelor. Sunt prezentai n urmtorul tabel:
Exemplul 1:
Exemplul 2:
Aceleai reguli se aplic i n cazul pre i post-decrementrii. 6. Operatori Cast PHP furnizeaz o cale de a fora conversia de tip a unei valori prin intermediul operatorilor cast. Operandul va aprea n partea dreapt a operatorului cast, iar rezultatul este tipul convertit conform urmtorului tabel: Operator Schimb tipul la (int), (integer) Intreg (float), (real), (double) Floating point (string) Sir (bool), (boolean) Boolean (array) Array (object) Obiect Spre exemplu: variabilei $num i se asigneaz valoarea ntreag 5, $str rmnnd de tip ir.
Pagina 48 din 86
Instruciunea ELSE Pe lng decizia de a executa o aciune atunci cnd condiia este adevrat, se dorete executarea unei alte aciuni n caz contrar (atunci cnd condiia nu este adevrat). Exemplul urmtor are ca rezultat afiarea mesajului corespunztor executrii codului pe ramura instruciunii else.
Instruciunea ELSEIF Aceast instruciune este o combinaie ntre instruciunea if i else. Aceasta poate verifica fiecare condiie pn n momentul n care una dintre condiiile gsite returneaz o valoare adevrat, ca n exemplul urmtor:
Pagina 49 din 86
Instruciunea SWITCH Aceast instruciune funcioneaz asemntor cu if, permind ns condiiilor s aib mai mult de 2 valori. ntr-o instruciune if, condiia poate fi adevrat sau fals, iar ntr-o instruciune switch condiia poate lua un numr de valori diferite. Aceast instruciune trebuie s conin de asemenea: instruciune case necesar manevrrii fiecrei valori specificate; instruciune break necesar ncheierii execuiei i saltului la codul ce urmeaz dup construcia switch.
De reinut c opiunea default: atunci cnd este folosit trebuie s figureze ultima n list.
Pagina 50 din 86
Se salveaz codul de mai sus n fiierul while.php, iar rezultatul n urma rulrii este urmtorul:
Bucla FOR O alternativ cu o funcionalitate mai ridicat pentru utilizarea buclelor este structura repetitiv for. Sintaxa este asemntoare cu cea din limbajele C/C++:
Prima expresie este evaluat o singur dat, nainte de nceperea execuiei ciclului. Expresia "condiie" este testat naintea fiecrei repetri a buclei. Dac expresia returneaz fals, repetarea se oprete. Expresia 2 este executat la sfritul fiecrei repetri, iar instruciunea se execut la fiecare repetare a buclei. Oricare dintre cele trei expresii poate lipsi; n cazul n care o expresie lipsete, se consider c ea are valoarea true. n continuare este dat acelai exemplu de la bucla while, scris acum cu for:
Pagina 51 din 86
Bucla FOREACH Aceast structur este folosit n vederea realizrii unei repetri printre toate elementele unui vector. Nu poate fi folosit dect mpreun cu vectori (array). Pentru aceast structur exist dou sintaxe acceptate:
n prima variant, la fiecare iteraie valoarea elementului curent este atribuit variabilei $valoare, i apoi se trece la elementul urmtor (a crui valoare va fi atribuit variabilei la urmtoarea iteraie). Execuia ciclului se ncheie n momentul n care nu mai exist alte elemente n vector. Diferena care apare n cazul celei de-a doua variante este faptul c la fiecare iteraie valoarea cheii elementului curent este atribuit variabilei $cheie. n continuare se d un exemplu de folosire a celor dou sintaxe ale structurii foreach.
Pagina 52 din 86
Instruciunea BREAK Aceast instruciune se folosete pentru a ntrerupe forat execuia unui ciclu sau a secvenei de instruciuni corespunztoare unei structuri switch. Instruciunea poate fi urmat de un argument care indic numrul de structuri imbricate a cror execuie se ncheie. Valoarea implicit este 1, deci se ntrerupe execuia unei singure structuri. Urmtorul exemplu de cod PHP realizeaz parcurgerea elementelor unui vector de numere ntregi, pn n momentul n care se ntlnete un numr pozitiv.
Instruciunea break poate fi utilizat pentru ntreruperea execuiei secvenelor de instruciuni corespunztoare structurilor for, foreach, while, do-while i switch. Instruciunea CONTINUE Aceast instruciune este folosit pentru a ntrerupe execuia secvenei de instruciuni din interiorul unui ciclu i a trece la urmtoarea iteraie. n cazul instruciunii for, nainte de urmtoarea iteraie se evalueaz (execut) expresia de incrementare (expresia #3 din sintaxa general). La fel ca i n cazul instruciunii break, poate aprea un argument care indic numrul structurilor imbricate asupra crora are efect. n exemplul urmtor se realizeaz afiarea elementelor unui ir de numere ntregi care sunt mai mari dect 500.
2.6. FUNCII
O funcie PHP poate fi funcie predefinit (built in) sau funcie definit de utilizator. Forma general a unui apel de funcie este urmtoarea:
func(arg1,arg2,)
Numrul de argumente variaz de la o funcie la alta, fiecare argument putnd fi o expresie valid, inclusiv alte apeluri de funcii. Un exemplu simplu de funcie predefinit:
strlen este o funcie PHP standard PHP care returneaz lungimea unui ir. Astfel variabilei $lungime i se asigneaz lungimea irului, adic 10.
Pagina 53 din 86
Prima dat va fi executat strlen("qwertzuiop") care va da ca rezultat ntregul 10, astfel codul se va simplifica la: $lungime = strlen(10); Funcia strlen() ateapt un ir, de aceea va converti (datorit conversiei automate ntre tipuri n PHP) ntregul 10 la irul "10", i astfel valoarea rezultat a variabilei $lungime este 2, lungimea lui "10".
unde: exf este numele funciei, $arg_1, $arg_2, ... , $arg_n sunt argumentele funciei, $val este valoarea returnat de funcie. Exemplul 1: o funcie care adun 2 variabile.
Pagina 54 din 86
Atribute necesare:
Pagina 55 din 86
Atribute opionale:
Pagina 56 din 86
Atribute opionale:
Pagina 57 din 86
Exemplul 2: Formular cu caseta de fiier (type="file"): ntr-o pereche "name = value" a unui formular se poate folosi ntregul coninut al unui fiier pe post de valoare, atributul "value" primind ca valoare adresa URL a fiierului care va fi expediat odat cu formularul. Aceast valoare poate fi atribuit direct atributului "value", poate fi tastat ntr-un cmp de editare ce apare odat cu formularul sau poate fi selectat prin intermediul unei casete de tip File Upload sau Choose File care apare la apsarea butonului Browse... din formular. Atributul "enctype" precizeaz metoda utilizat la criptarea fiierului de expediat. Valoarea acestui atribut este "multipart/form-data".
Pagina 58 din 86
Efect:
Exemplul 3: Formular cu casete de validare (type="checkbox") pentru selectarea sau deselectarea unei opiuni.
Efect:
Exemplul 4: Formular cu caset password (type="password"). Dac se utilizeaz eticheta <input> avnd atributul "type" configurat la valoarea "password", atunci n formular se introduce un element asemntor cu un cmp de editare obinuit (introdus prin type="text"), toate atributele unui cmp de editare rmnnd valabile. Singura deosebire const n faptul c acest cmp de editare nu afieaz caracterele n clar, ci numai caractere * (la expedierea formularului ns valoarea tastat ntr-un cmp de tip "password" se transmite n clar).
Pagina 59 din 86
Efect:
Exemplul 5: Formular cu butoane radio (type="radio"). Butoanele radio permit alegerea, la un moment dat, a unei singure variante din mai multe posibile.
Efect:
La expedierea formularului se va transmite una dintre perechile "sex=b" sau "sex=f", n funcie de alegerea fcut de ctre utilizator.
Pagina 60 din 86
Atribute opionale:
O list de selecie permite utilizatorului s aleag unul sau mai multe elemente dintr-o list finit. Lista de selecie este inclus n formular cu ajutorul etichetelor corespondente <select> i </select>. Elementele unei liste de selecie sunt incluse n list cu ajutorul etichetei <option>. Cele dou atribute utile ale etichetei option sunt: o atributul "value" primete ca valoare un text care va fi expediat server-ului n perechea "name=value"; dac acest atribut lipsete, atunci ctre server va fi expediat textul ce urmeaz dup <option>; o atributul "selected" (fr alte valori) permite selectarea prestabilit a unui element al listei.
Pagina 61 din 86
Efect:
O list de selecie care permite selecii multiple se creeaz ca i o list de selecie obinuit. n plus, eticheta <select> are un atribut "multiple" (fr alte valori). Cnd formularul este expediat ctre server, pentru fiecare element selectat al listei se insereaz cte o pereche "name=value" unde name este numele listei.
Efect:
Pagina 62 din 86
ntr-un formular, cmpurile de editare multilinie pot fi incluse cu ajutorul etichetei <textarea>. Eticheta are urmtoarele atribute: o atributul "cols", care specific numrul de caractere afiate ntr-o linie; o atributul "rows", care specific numrul de linii afiate simultan; o atributul "name", care permite ataarea unui nume cmpului de editare multilinie; o atributul "wrap", (de la "word wrap"=trecerea cuvintelor pe rndul urmtor), care determin comportamentul cmpului de editare fa de sfritul de linie. Acest atribut poate primi urmtoarele valori: a) "off"; n acest caz: ntreruperea cuvintelor la marginea dreapt a editorului se produce numai cnd dorete utilizatorul; caracterul de sfrit de linie este inclus n textul transmis serverului o dat cu formularul; b) "hard "; n acest caz: se produce ntreruperea cuvintelor la marginea dreapt a editorului; caracterul de sfrit de linie este inclus n textul transmis server-ului odat cu formularul; c) "soft "; n acest caz: se produce ntreruperea cuvintelor la marginea dreapt a editorului; nu se include caracterul de sfrit de linie n textul transmis server-ului odat cu formularul.
Efect:
Pagina 63 din 86
Efect:
Pagina 64 din 86
Cum se afieaz
Pagina 65 din 86
Pagina 66 din 86
4. Din fereastra aplicaiei easyPHP se lanseaz comanda LocalWeb, rezultnd fereastra browser-ului n care se va alege fiierul formular.html din folder-ul WORK.
n urma completrii formularului (afiat la punctul 2), trimiterii datelor i prelucrrii acestora de ctre scriptul prelucrare.php, va rezulta ecranul cu rezultatul obinut:
Pagina 67 din 86
2. Partea de verificare va avea n acest caz condiii legate prin operatorul OR:
Observaii: Formularul exemplu dat n acest subcapitol a folosit metoda POST (method=post); n cazul folosirii metodei GET (method=get), n scriptul prelucrare.php variabilele definite se vor modifica corespunztor n variabile $_GET. n pagina web rezultatul va fi acelai, cu specificaia c informaiile formularului sunt postate i n adresa din browser (url) sub forma:
http://localhost/prelucrare.php?nume=popescu&prenume=bogdan&varsta=peste 18&parola=yyxcv&Trimite=Trimite
Este recomandat folosirea metodei POST.
Pagina 68 din 86
Observaie: nainte de a accesa http://localhost/phpmyadmin, se va pune folderul phpMyAdmin n folder-ul www. Se vor indica n continuare paii parcuri n vederea crerii unei baze de date folosind interfaa phpMyAdmin. n seciunea MySQL a ferestrei phpMyAdmin se va tasta numele noii baze de date care va fi creat, de exemplu baza cu numele academia:
Pagina 69 din 86
Pentru a aduga un tabel n baza academia, se va completa cmpul corespunztor de creare tabel nou n baza de date, i anume tabelul studenti cu 4 cmpuri, conform urmtoarei figuri:
n urma crerii, se vor completa cele patru cmpuri conform figurii urmtoare:
iar n urma salvrii se va obine: Observaie: cmpul id este cheie primar. Fiecare cmp al unei nregistrri dintr-un tabel al bazei de date are un nume i un tip. Cele mai folosite tipuri de cmpuri sunt urmtoarele: a. Tipuri numerice: INT Stocare octei 4 BIGINT 64 bii b. Tipuri de ir: CHAR Interval 1-255 caractere
Pagina 70 din 86
VARCHAR Interval 1-255 caractere c. Tipuri de text: TEXT Lungime maxim de caractere 65.535 LONGTEXT Lungime maxim de caractere 4.294.967.295 nregistrrile n tabel se vor introduce prin acionarea butonului Insert. Dup ce se introduc nregistrri, acestea pot fi vizualizate prin acionarea butonului Browse. De observat c n urma fiecrei operaiuni se afieaz rezultatul nsoit n partea superioar de sintaxa SQL. n aceast baz de date se pot crea n continuare i alte tabele.
Explicaii: 1. n acest script se va modifica valoarea variabilei $Parola_Baza_Date cu parola setat a bazei de date (iniial, n interfaa phpMyAdmin, la linkul Privileges s-a stabilit o parol dup care ea a fost specificat i n fiierul config.inc.php, adic s-a setat parola n cmpul $ cfg ['Servers'] [$i] ['password'] = , i anume n acest caz $cfg ['Servers'] [$i] ['password'] = parola_mysql; 2. Variabila $adresa_baza_date este definit cu valoarea localhost deoarece aceasta este adresa server-ului pe care ruleaz serviciul MySQL (server-ul Apache+PHP este instalat pe acelai calculator ca i pachetul MySQL). 3. Variabila $utilizator_baza_date este definit cu valoarea root, acesta fiind utilizatorul cu
Pagina 71 din 86
toate drepturile de acces asupra bazei de date (identificatorul de utilizator MySQL). 4. Variabila $parola_baza_date este definit cu valoarea corespunztoare i este parola MySQL asociat identificatorului de utilizator. 5. Variabila $conexiune este definit prin invocarea funciei mysql_connect care realizeaz conectarea la server-ul MySQL. Aceast funcie are ca argumente variabilele definite la punctele 2, 3 i 4. Funcia returneaz o valoare identificator de legtur care servete ca instrument de manipulare pentru accesul la server-ul MySQL, iar n caz de eec valoarea false. 6. Variabila $nume_baza_date este definit cu valoarea academia, acesta fiind numele bazei de date asupra creia se va lucra. 7. Prin invocarea funciei mysql_select_db se specific baza de date la care scriptul PHP va avea acces n urma obinerii conexiunii la server. Funcia returneaz true dac poate obine accesul, respectiv false n cazul eecului.
Explicaii: 1. Prima linie din script conine funcia require_once, funcie care va include datele din config.php, o singur dat, n pagina extragere.php. 2. n linia $cerereSQL = 'SELECT * FROM `studenti`'; este definit variabila $cerereSQL cu valoarea cererii SQL pentru a extrage datele din tabela studeni. Ea se interpreteaz astfel: selecteaz tot din studenti. 3. n linia $rezultat = mysql_query($cerereSQL); este definit variabila $rezultat cu valoarea funciei mysql_query care are ca argument irul care conine interogarea care urmeaz a fi executat. 4. Rndurile setului de rezultate se obin prin folosirea funciei mysql_fetch_array care returneaz un tablou asociativ (valorile indexurilor din tablou le reprezint numele coloanelor din setul de rezultate). 5. n urma rulrii scriptului extragere.php, se va obine urmtorul rezultat (se vor afia numele
Pagina 72 din 86
Sintaxa SELECT este foarte complex i se va da i un exemplu n care se va face din nou o selecie din tabelul studenti, de data aceasta cu o anumit condiie, prin intermediul clauzei WHERE, conform codului:
Setul de rezultate returnat de interogare conine doar numele i prenumele studenilor din nregistrrile care ndeplinesc condiia dat de WHERE.
n urma rulrii acestui script, se va verifica prin intermediul interfeei phpMyAdmin adugarea noii nregistrri (cu valorile specificate n comanda INSERT) n tabelul studenti al bazei de date academia.
Se va rula acest script observndu-se apoi efectele produse, adic modificarea numelui i a prenumelui n nregistrarea cu valoarea constantin a cmpului nume, din tabelul studenti al bazei de date academia.
n urma rulrii acestui script se va observa, prin verificarea n interfaa phpMyAdmin, a efectului produs, adic tergerea nregistrrii care avea n cmpul nume valoarea Ciontea.
Pagina 74 din 86
b. Tot n folder-ul academia se creeaz fiierul index.php (care se va vedea c este de fapt formularul html) cu urmtorul cod:
Observaie: La lansarea comenzii Local Web a aplicaiei easyPHP apare fereastra browser-ului conform figurii:
Pagina 76 din 86
n mod normal, fiecare folder al rdcinii www va gzdui o aplicaie distinct. Atunci cnd se indic cu ajutorul mouse-ului aplicaia (folder-ul) dorit, se realizeaz mai nti o cutare n folder-ul respectiv a unui fiier numit index.php care, dac este gsit, va fi rulat, iar dac nu este gsit se va deschide pur i simplu folder-ul respectiv, afindu-se coninutul su de subfoldere i fiiere. De aceea am denumit fiierul care conine formularul propriu-zis, cu numele index.php, pentru ca acesta s fie gsit i rulat atunci cnd se indic aplicaia academia. Adresa URL din browser va fi astfel http://127.0.0.1/academia/.
verificarea
datelor
trimise
prin
intermediul
Datele trimise de formular prin metoda $_POST vor fi verificate i introduse n baza de date. a. Se va crea un fiier prelucrare.php cu urmtorul cod:
Observaie: Funcia require de argument nume de fiier permite obinerea accesului la programul PHP specificat cu nume fiier, existent deja. Atunci cnd este ncrcat un script PHP care conine o instruciune require, coninutul fiierului specificat este inserat n script, nlocuind instruciunea require. b. Se completeaz date n formular i se trimit prin acionarea butonului Trimite. n urma completrii i trimiterii se va obine n fereastra browser-ului urmtorul rezultat:
Pagina 77 din 86
c. Se va crea fiierul vizualizare.php care va fi rulat la activarea linkului aici. Acesta va avea urmtorul cod:
Parcurgerea pailor indicai n realizarea acestei aplicaii a condus la obinerea unui numr de patru fiiere .php care sunt localizate n folder-ul academia al folder-ului www din aplicaia EasyPHP:
Pagina 78 din 86
Pagina 79 din 86
3.3.7.6. mysql_field_table() determinarea tabelului MySQL asociat unei coloane din set
Funcia mysql_field_table() returneaz tabelul MySQL, dac exist, asociat coloanei din setul de rezultate al crei index este dat de argumentul funciei. Codul urmtor folosete funcia mysql_ field_table() pentru a determina tabelul asociat celei de a patra coloane din setul de rezultate:
Pagina 81 din 86
Pagina 82 din 86
Pagina 83 din 86
Pagina 84 din 86
n urma rulrii scriptului, n fereastra browser-ului se vor afia numele tabelelor incluse n baza de date mysql specificat:
Pagina 85 din 86
Pagina 86 din 86