Sunteți pe pagina 1din 13

PROGRAMAREA IN PHP

2.1 Serverul si functionarea acestuia


Cand pronuntam cuvantul "server", majoritatea ne gandim la un computer de mare performanta, conectat la Internet ce ofera diferite servicii diferitilor clienti. In mare parte aceasta este o definitie corecta. Noi vom separa notiunea de "server" in "software server" si "hardware server". Astfel, in momentul in care ne vom gandi la un server din punct de vedere hardware el devine ca mod de functioneare si structura aidoma cu un computer obisnuit, facand abstractie de performantele acestuia. Cand vom discuta despre server din punct de vedere software serverul reprezinta o aplicatie instalata pe computer care ofera diferite servicii la nivel web. Serviciile care ne intereseaza pe noi la dezvoltarea de aplicatii web cu ! sunt " interpretarea si transferul paginilor cu e#tensia .php $de care se ocupa serverul Apache% si " interpretarea instructiunilor &'S() $de care se ocupa serverul &'S()%* entru noi nu este important sa intelegem acum functionalitatea din punct de vedere sofware a serverelor pe care le utilizam, ci sa intelegem modul in care un computer "gandeste" pentru procesarea unor informatii* Aceasta lectie se ocupa de descrierea modului de functionare a unui sistem+ Componentele de baza ale unui sistem sunt+ C , $Central rocessing ,nit - rocesorul% &emoria laca grafica laca de baza &agistralele I-. In vederea intelegerii programarii trebuie mai intai sa intelegem modul de functionare al procesorului si al memoriei. Procesorul " reprezinta creierul unui computer. Are rolul de a interpreta instructiuni simple in oridinea pe care o primeste, o singura instructiune odata. Aceste instructiuni se proceseaza foarte rapid. /impul de pocesare este calculat la nivel de nanosecunde $ns%. 0ezvoltarea unui program inseamna practic comandarea e#ecutarii unor instructiuni intr"o anumita ordine. ,n set de instructiuni intr"o anumita ordine se numeste algoritm. Serverul Apache folosit pentru interpretarea instructiunilor ! traduce aceste linii scrise de programator in limbajul ! in limbaj masina $limbajul cunoscut de sistem%* Memoria " se poate clasifica in memorie interna si memorie e#terna* e acestea la vom dicuta separat* Memoria externa " este reprezentata de+ hard dis1 $!00%, cd"rom, flopp', flash drive, blue"ra' disc etc. Are rolul de a stoca informatie pe termen lung. Memoria interna " este reprezantata de 2A& $2andom Access &emor'% " este memoria in care se incarca programul pentru a fi e#ecutat. Aici sunt stocate informatiile necesare la e#ecutarea programului. &emoria 2A& este volatila " ceea ce inseamna ca nu stocheaza informatii pe termen lung, ci numai pe timpul cat computerul este deschis. )a inchiderea

acestuia informatiile din memoria 2A& sunt sterse*

2.2 Rularea in sistem local a fisierelor PHP


3isierele cu e#tensia .p p vor fi rulate in sistem local cu ajutorul unui server local numit !AMPP. 3isierele vor fi stocate in directorul t"ocs pe care aplicatia 4A& il creaza la instalare. Adresa de apelare a fisierelor cu e#tensia .p p este ttp#$$12%.&.&.1$numefisier.p p sau ttp#$$local ost$numefisier.p p

2.' Re(ervarea (onelor "e memorie


In vederea dezvoltarii aplicatiilor web avem in vedere faptul ca lucram cu informatii. 0e fapt, un program, fie ca este stand"alone sau la nivel web are rolul de a procesa informatii. entru a procesa date si informatii este necesar ca mai intai sa le putem stoca in memoria computerului. entru a folosi memoria computerului in scopul stocarii datelor cu care vom lucra vom rezerva zone de memorie pe care le vom numi "variabile". Aceste variabile sunt identificate de un nume dat de programator. In ! numele de variabile incep cu simbolul 5 si trebuie sa respecte urmatoarele reguli+ nu pot contine caractere speciale nu pot incepe cu cifre nu pot contine operatori $6, ", 7, -, 8 etc.% 9#emple de variabile+ 5var: 5numar 5imagine 5sir 5sir;de;caractere ! nu are diferite tipuri de date in vederea construirii variabilelor. Asta inseamna ca orice variabila poate folosita pentru orice fel de data care trebuie stocata. 0e e#emplu, o variabila care a stocat pana la un moment dat in e#ecutie un sir de caractere poate sa retina daca este nevoie mai apoi un numar. Atribuirea valorilor variabilelor se face cu ajutorul operatorului < &ai jos aveti e#emple de atribuiri de valori variabilelor* 5numar < :=* 5numar= < :=.>* 5sir;de;caractere < ",n sir de caractere se pune intre ghimele"* < se numeste operator de atribuire si este folosit pentru atribuirea unei valori unei variabile la un moment dat. )a atribuirea unei valori, vechea valoare a variabilei, daca aceasta a mai fost initializata anterior, va fi stearsa. . variabila poate retine o singura valoare la un moment dat* 0e retinut este si faptul ca o atribuire este considerata instructiune in ! . )a sfarsitul

fiecarei instructiuni se foloseste operatorul * $punct si virgula% .peratorul * $punct si virgula% reprezinta finalizarea unei instructiuni si este esential in programare. 3ara a"l folosi programul nu functioneaza.

2.) Operatori si scrierea co"ului PHP


entru a putea scrie instructiuni ! mai intai trebuie sa ne asiguram ca pagina noastra are e#tensia .php* 9#tensia .php nu influenteaza in nicun fel interpretarea codului !/&) din pagina web. Nu este obligatoriu ca pagina sa aiba e#tensia .html, pentru ca web browser"ul sa interpreteze codul !/&), dar este esential sa aiba e#tensia .php pentru ca serverul sa recunoasca scriptul. Concluzia este+ vom scrie orice pagina in care e#ista script ! cu e#tensia .php* .ricare script din pagina incepe cu operatorul ?@php $operatorul de deschidere script% si se finalizeaza cu operatorul @A $operatorul de inchidere script%* 9ste obligatoriu sa scriem orice linie de cod ! intre acesti doi operatori, admiteri acestea nu vor fi interpretate* entru a face diferite operatii cu variabilele sau cu valori trebuie folositi operatori* Bom clasifica operatorii pe mai multe categorii* Acestia pot fi+ :. =. F. G. >. H. &atematici+ 6, 7, ", -, 8 )ogici+ CC, DD, E 0e comparare+ ?, A, ?<, A<, <<, E< 0e incrementare- decerementare+ 66, ""* 0e autooperare+ 6<, "<, 7<, -<, 8< aranteze+ $ %

.peratorii matematici se folosesc intre doi operanzi* Iata e#emple de folosire a fiecaruia dintre acestia+ 5a < 5b 6 :* 5a < 5b " 5c* 5a < > - 5c* 5a < >7F* .peratorul matematic modulo $8% este folosit pentru preluarea restului unei impartiri a doua numere intregi " de e#emplu+ I8= < : $deoarece restul imaprtirii lui I la = este :% :J8> < J $deoarece restul impartirii lui :J la > este J%* 5a < 5a8>* .peratorii de incrementare si decrementare+ 66 si "" * Se folosesc pentru incrementarea unei valori cu o unitate sau decrementarea cu unu* 9#emple+ 5a < K* 5a66* In e#emplul de mai sus valoarea lui 5a devine :J*

5a< K* 5a""* In acest e#emlpu valoare lui 5a devine L*

2.* Operatii simple cu numere si afisarea re(ultatului


entru a efectua diferite operatii cu numere vom folosi operatorii matematici invatati si, desigur, operatorul de atribuire* Afisarea oricarei valori in ! , fie care este ea numar sau sir de caractere se face folosind functia print. Iata un e#emplu in care adun doua numere stocate in variabilele 5a si 5b si afisez pe pagina rezultatul+ ?@php 5a<>* 5b<I* 5c< 5a65b* print 5c* @A In cazul de mai sus functia print afisaza pe pagina web valoarea variabilei 5c* Aceasta valoare este suma valorilor variabilelor 5a si 5b, adica >6I* rin urmare pe pagina web ar trbui sa vedeti afisata valoarea :=* . alta versune a script"ului de mai sus ar fi fost sa afisam direct suma celor doua variabile 5a si 5b fara a mai rezerva inca o zona de memorie $5c%. ?@php 5a<>* 5b<I* print 5a65b* @A In cazul operatiilor cu numere e#ista posibiltatea sa folosim mai multi operatori intr"o singura instructiune. Iata de e#emplu modul in care putem calcula media artmetica a F numere stocate in diferite zone de memorie+ ?@php 5a <K* 5b<G* 5c<=>* print $5a65b65c%-F* @A

.ridinea efectuarii operatiilor este cea cunoscuta din matematica.In cazul de mai sus, deoarece am folosit parantezele, se vor efectua intai adunarile iar apoi impartirea la F* ,n rezultat poate fi stocat in aceeasi zona de memorie cu care se face si operatia* Iata e#emplul de mai jos de inmultire+ ?@php 5a<K* 5b<I* 5a<5a75b* print 5a* @A Baloarea rezultatului operatiei de multiplicare dintre valoarea zonei de memorie 5a si cea a zonei de memorie 5b a fost stocata tot in zona 5a* entru a inlocui instructiunea de inmultire de mai sus se poate folosi unul dintre operatorii de autooperare+ 5a<5a75b este echivalent cu 5a7<5b 5a<5a"5b este echivalent cu 5a"<5b 5a<5a65b este echivalent cu 5a6<5b 5a<5a-5b este echivalent cu 5a-<5b Acesta este modul de utilizare a operatorilor de auto"operare*

2.+ Operatii simple cu siruri "e caractere


,n sir de caractere reprezinta o secventa de caractere de o anumita lungime* ,n sir de caractere are luncgimea zero daca nu contine niciun caracter* .rice sir de caractere este delimitat de operarorii "" $gilimilele%* Iata cum atribuim un sir de caractere unei zone de memorie+ 5sir < "Sir de caractere"* 5sir= < MAlt sir de caractereM* 5sirF < "Sir de caractere Nn pe doua linii"* .bservati ca am putut defini sirurile de caractere atat folosind ghilimele duble $""% cat si ghilimele simple $MM%* entru a putea introduce caracterul " $ghilimele% in interiorul unui sir de caractere este necesr sa il precedam de caracterul N $bac1slash%* iata metoda+ 5sir < "Sir de caractere cu N" ghilimele N" intre ghilimele + "* 5sir= < "Sir de caractere cu NM ghilimele simple NM intre ghilimele simple+ "* Sirurilede caractere se pot concatena $alipi% folosind operatorul . $punct%* 9#emplu+ 5sirF < 5sir=.5sir:* 5sir= <",n sir de caractere"."concatenat cu un alt sirE"*

'.1 Structuri "e control si utilitatea acestora


2ezervarea zonelor de memorie pentru sotcarea diferitelor informatii nu este suficienta pentru crearea unei aplicatii. In vederea dezvoltarii unor algoritmi este necesar uneori sa "invatam" computerul sa ia decizii in functie de diferiti factori sau sa repete anumite instructiuni de un anumit numar de ori in functie de anumite conditii date de prograsmator. Acest lucru se poate face folosind structurile de control, instructiuni ce fac parte, in general, din orice limbaj de programare* Structurile de control pot fi clasificate in doua categorii principale+ Structuri "e control "eci(ionale Structuri "e control repetitive Structurile de control decizionale sunt cele prin care putem crea un computer sa ia dezicii in e#ecutarea unor instructiuni in functie de una sau mai multe conditii date. 9#ista doua structuri de control decizionale+ if,else s-itc Structurile de control repetitive sunt cele prin care putem conditiona repetarea unor instructiuni. In functie de structura de control folosita si modul in care o utilizam in cadrul programului putem face un set de instructiuni sa se repete de un numar definit de ori, sau, sa se reprete pana la nerespecarea unei conditii date de programator* Structurile de control repetitive prezinta un risc in constructia programului si necesita o atentie sporita la utilizarea lor, deoarece, daca nu sunt puse toate conditiile necesare este posibil ca setul de instructiuni sa se repete la infinit, fapt ce genereaza blocarea aplicatiei sau a sistemului pe care aceasta este e#ecutata* In principal in ! crearea gresita a unei structuri repetitive duce la neincarcarea paginii web respective* Structurile de control repetitive sunt+ - ile "o,- ile for In urmatoarele lectii voi prezenta modul de folosire al fiecareia dintre cele cinci structuri de control*

'.2 Structura "e control "eci(ionala if,else


Structura de control decizionala if"else este in general cea mai folosita structura de control decizionala* In orice situatie e#ista posibilitatea sa ne folosim de if"else, chiar prin inlocuirea structurii switch. Iata sinta#a pentru folosirea structurii de control decizionale+ if$conditie% O -- aici se e#ecuta diferite instructiuni daca conditia este adevarata

P elseO -- aici se e#ecuta instructiunile daca conditia este falsa P In cazul structurii de control if"else blocul de instructiuni else poate lipsi cu totul in cazul in care nu trebuie sa se e#ecute nimic daca conditia este falsa. In aceasta situatie sinta#a devine+ if$conditie%O --instructiuni care se e#ecuta daca conditia este adevarata P 0e asemenea atat in cazul if cat si in cazul else pot lipsi acoladele in cazul in care nu este necesar sa se e#ecute decat o singura instructiune* Iata e#emplele de folosire sau nu a acoladelor+ if$conditie% print "conditia este valida"* if$conditie% Oprint "conditia este valida ?br -A"* print "deci se e#ecuta cele doua instructiuni daca sunt incadrate de acolade"*P Se observa faptul ca in primul e#emplu am putut omite folosirea acoladelor, deoarece nu e#ecutam decat o singura instructiune* In cel de"al doilea e#emplu pentru ca foloseam doua instructiuni $deci mai mult de una% acestea trebuie sa fie incadrate de acolade*

'.' Structura "e control "eci(ionala s-itc


Structura de control decizionala switch este folosita pentru tratarea a difertie cazuri in functie de valoarea unei variabile $zone de memorie%* Iata cum arata in general aceasta structura de control+ switch$?nume;variabilaA%O case ?valoare:A+ instructiune:* instructiune=* .... brea1* case ?valoare=A+ instructiune:* instructiune=* .... brea1* case ?valoareFA+ instructiune:* instructiune=* .... brea1* . . . default+ instructiune:* instructiune=* .... brea1* P 0esi arata complicat nu este deloc asa* Iata cum functioneaza+ 0aca valoarea variabilei pe care am precizat"o la inceput intre parantezele rotunde este egala cu valoarea1 se e#ecuta setul de instructiuni din dreptul ca(ului valaore1 pana la .rea/0 Idem pentru restul cazurilor* 0aca niciun caz nu se potriveste atunci se e#ecuta "efault* Iata un e#emplu concret+ 5var<F* switch$5var%O case :+ print "Ianuarie"* brea1* case =+ print "3ebruarie"* brea1* case F+ print "&artie"* brea1* case G+ print "Aprilie"* brea1*

case >+ print "&ai"* brea1* case H+ print "Iunie"* brea1* case I+ print "Iulie"* brea1* case L+ print "August"* brea1* case K+ print "Septembrie"* brea1* case :J+ print ".ctombrie"* brea1* case ::+ print "Noiembrie"* brea1* case :=+ print "0ecembrie"* brea1* default+ print "Nu e#ista decat := luniEEE"* brea1* P In cazul de mai sus, pentru ca valoarea zonei de memorie var este F se va afisa "&artie"* 5var<:>* switch$5var%O case :+ print "Ianuarie"* brea1* case =+ print "3ebruarie"* brea1* case F+ print "&artie"* brea1* case G+ print "Aprilie"* brea1* case >+ print "&ai"* brea1* case H+ print "Iunie"* brea1* case I+ print "Iulie"* brea1* case L+ print "August"* brea1* case K+ print "Septembrie"* brea1* case :J+ print ".ctombrie"* brea1* case ::+ print "Noiembrie"* brea1* case :=+ print "0ecembrie"* brea1* default+ print "Nu e#ista decat := luniEEE"* brea1* P 0aca insa variabila are valoare :> ca in e#emplul de mai sus, pentru ca nu e#ista niciun caz aferent valorii :> se va e#ecuta default, adica se va afisa+ "Nu e#ista decat := luniEEE"*

'.) Structura "e control repetitiva - ile


Cea mai importanta structura de control repetitiva este - ile* .ricare dintre urmatoarele doua structuri repetitive "o,- ile si for, pot fi inlocuite de - ile daca este cazul* Aceasta structura de control este in general folosita pentru a repeta diferite innstructiuni cat timp o conditie este valida* Iata sinta#a de folosire while+ while$conditie%O -- aici se e#ecuta instructiunile daca conditia este valida, apoi se trece din nou la testarea conditiei P ractic functioneaza in modul urmator+ :. se testeaza conditia+ =. se e#ecuta instructiunile daca conditia este valida F. se intoarce la testarea conditiei si daca aceasta este adevarata de e#ecuta din nou pasul =

G. daca conditia este falsa se iese din ciclu si se trece la urmatoarele dintructiuni de dupa acesta daca e#ista* 0e fiecare data cand cream un astfel de ciclu trebuie sa ne asiguram ca la un moment dat conditia nu va mai fi valida si ciclul se va incheia* ,n e#emplu practic de folosire al structurii while ar fi+ 5var<G* while$5varAJ%O print 5var* 5var""* P Acest ciclu se va opri in momentul in care 5 var va retine valoarez J* &a asigur ca se va intampla acest lucru prin folosirea operatorului de decrementare ""* ractic acest ciclu afisaza GF=:, adica valoare variabilei 5var in timpul fiecarei ciclari*

'.* Structura "e control repetitiva "o,- ile


Structura de control repetitiva "o,- ile este foarte asemanatoare cu - ile. Singura diferenta este de ordine a testarii conditiei* entru do"while, spre deosebirede while conditia se testeaza la sfarsit $adica dupa e#ecutarea conditiilor%* Cu alte cuvinte cel putin o data se e#ecuta instructiunile, apoi, daca este nevoie acestea sunt repetate $in functie de conditia pusa%* Iata sinta#a de folosire a structurii de control do"while+ doO -- aici se e#ecuta instructiunile* Pwhile$conditie%* asii de functionare a structurii de control do"while sunt urmatorii+ :. =. F. G. Se e#ecuta instructiunile Se testeaza conditia 0aca conditia este adevarata se e#ecuta instructiunile din nou 0aca conditia este falsa se trece la urmatoarele instructiuni de dupa ciclu

entru a face structura do"while sa functioneza in acelas fel ca while nu este necesar decat sa adaugam o conditie inainte instructiunilor* Acest lucru se poate face folosind structura de control decizionala if* if $conditie% doO -- aici se e#ecuta instructiunile* Pwhile$conditie%* ractic sinta#a de mai sus este identica in raport de e#ecutie cu+ while$conditie%O -- aici se e#ecuta instructiunile* P 0e retinut este faptul ca do"while e#ecuta cu un ciclu mai mult decat while*

'.+ Structura "e control repetitiva for


0e obicei structura de control repetitiva for se foloseste pentru e#ecutarea unui set de instructiuni de un numar definit de ori* 0e e#emplu aceasta structura de control se poate folosi pentru siruri de numere* Iata sinta#a structurii de control for+ for$5i<valoare*5i?<valoare*5i66%O --se e#ecuta instructiuni P 5i se numeste contor si reprezinta o zona de memorie ce se incrementeaza sau se decrementeaza in cazul unui for* Intre parantezele rotunde ale structurii de control for e#ista trei zone importante delimitate de operatorul * $punct si virgula% Aceste trei zone sunt+ :. zona de initializare contor =. zona conditionala F. zona de incrementare-decrementare Aceste trei zone sunt separate, dar de cele mai multe ori lucreaza prin referire la aceeasi zona de memorie $a contorului 5i%* &ai jos puteti vedea un e#emplu se sinta#a for efectiva+ for$5i<:*5i?<>*5i66%O print "5i?br -A"* P In cazul de mai sus se afisaza pe pagina pe linii separate+ : = F G > Cum functioneaza scriptul+ :. =. F. G. >. H. I. 5i are valoarea : se testeaza conditia si se observa ca : este mai mic sau egal decat > $5i?<>% se e#ectua instructiunile dintre acolade $se afisaza 5i in acest caz% 5i este incrementat se verifica din nou conditia daca conditia este adevarata se repeta ciclu daca conditia este falsa se iese din structura

).1 1ormulare H2M3


3ormularele !/&) reprezinta inceputul crearii unei interfete care "comunica" cu utiizatorul* rin formulare putem introduce diferite tipuri de date care mai apoi pot fi procesate in vederea dezvoltarii algoritmului aplicatiei web. 3orumularele sunt dezvoltate pe pagina web prin taguri !/&) si reprezinta colectiide componente de introducere de informatie* . componenta pentru introducerea de informatie reprezinta o modalitate prin

care utilizatorul poate introduce un anumit tip de data prin pagina web pe care este atasat formularul* 9#emple de componente pentru introducerea de date sunt+ butonul lista de selectie chec1bo# radio button te#tfield te#tarea butonul submit password field

. sa incepem prin crearea unui formular simplu de logare* resupunem ca aplicatia noastra web identifica utilizatorii prin user si parola+ entru dezvoltarea acestui formular vom avea nevoie de trei componente+ un textfiel", un pass-or"fiel" si un buton de tip su.mit* .rice formular are rolul de a colecta informatie pe care o trimite catre o alta pagina a aplicatiei pentru a fi procesata. rin urmare avem nevoie de o pagina a aplicatiei care sa colecteze informatia $cea care contine formularul% si o alta care sa proceseze aceasta informatie $cea catre care se trimite informatia%* /rimiterea informatiei se poate face prin doua metode+ GE2 sau POS2* entru inceput voi e#plica dezvoltarea unui astfel de formular care foloseste metoda Q9/ fara a e#plica modul de functionare a metodei. 0upa ce vom intelegem modul in care datele sunt transferate de la o pagina la alta voi trata in paralel cele doua metode Q9/ si .S/* /ag"urile de deschidere si de inchidere a formularului sunt ?formA si ?-formA

).2 4omponente , ta5ul 6input $7


In lectia anterioara ati putut vedea un e#emplu de aplicatie care trimite doua informatii catre acceasi pagina unde sunt procesate. In continuare voi prezenta functionalitatea aplicatiei din lectia G.:* Sa incepem cu formularul !/&)* Acesta este scris intre tag"urile ?formA si ?-formA* Intre aceste doua taguri putem descrie componente ale caror valori vor fi trimise dupa ce se efectueaza o instructiune submit* &ajoritatea componentelor pot fi descrise folosind tagul ?input -A* Acest tag are trei atribute importante+ name, t'pe si value* Sa intelegem aceste trei atribute* 8t9pe8 este atributul care defineste practic ce componenta descriem* Acest atribut poate avea urmatoarele valori+ te#t password button chec1bo# radio file hidden

submit reset image In e#emplul anterior am folosit primele doua tipuri enumerate $te#t si password% si tipul submit* 8name8 este un identificator " un nume dat de programator acelei compoente* Numele este folosit mai apoi pentru accesarea informatiei, el devenind numele zonei de memorie din pagina in care se trimite informatia cu ajutorul careia se pot accesa datele trimise* 8value8 este folosit pentru a da o valoare in prealabil acelei componente* In general acest atribut nu este folosit decat pentru tipurile button, reset si submit, in acest caz, value fiind atributul care descrie te#tul care apare pe buton* /ipul "te#t" descrie o componenta te#tfield $in care se pot introduce siruri de caractere%, tipul "password" este asemanator tipului te#t cu observatia ca acesta ascunde caracterele. /ipul "submit" estefoarte important. Il vom adauga la fiecare formular si descrie un buton la apasarea caruia se e#ecuta o instructiune submit $de trimitere a datelor%* In cazul e#emplului de mai sus butonul de login este de tip submit pentru ca la apasarea lui datele sunt trimise catre pagina sepecificata prin atributul "action " al tagului ?form -A*

).' Meto"e "e transfer a "atelor :GE2 si POS2;


)a crearea formularului in afara de descrierea componentelor si a butonului submit trebuie sa intelegem modul in care datele sunt transferate catre pagina specificata* entru a specifica o pagina si una dintre cele doua metode de trimitere avem in vedere definirea atributelor "method" si "action" ale tag"ului ?formA. Atributul "method" primeste ca valoare "get" sau "post" in functie de metoda pe care doresc sa fie folosita pentru trimiterea datelor, iar atributul "action" primeste locatia e#cata a paginii catre care se transfera informatia. Aceasta pagina poate fi chiar pagina in care se afla formularul $nu este obligatoriu sa definim o alta pagina care sa proceseze informatia%. In e#emplul din lectia G.: am folosit metoda Q9/ pentru a trimite informatiile catre aceeasi pagina in care am descris si formularul !/&)* Sinta#a pentru tagul ?formA a fost+ ?form action<"inde#.php" method<"get"A Cu alte cuvinte se trimite informatia din componetele descrise in interiorul tagurilor ?formA?-formA catre pagina inde#.php cu metoda Q9/ la apasarea butonului submit* 0upa scrierea paginii incercam formularul si observam ca la apasarea butonului submit pagina se reincarca si adresa ,2) a paginii este usor modificata+ Adresa ,2) devine+ inde#.php@user<laurentiuCpass<parolaCsubmit<)og in 0aca va amintiti user, pass si su.mit erau numele date de noi componetelor formularului* Cele trei componente pe care la are formularul nostru sunt+ te#tfield"ul user, password"field" ul pass si butonul de submit ce avea numele su.mit* 0upa operatorul < sunt scrise valorile fiecarei componente+ laurentiu, parola si )og in* /oate acestea sunt despartite folosind operatorul C $and% si se afla definite dupa numele paginii despartite de acesta prin operatorul @* $revedeti adresa ,2) pentru a intelege%* Acum ca avem aceste valori trimise le putem folosi in script"ul nostru* Sinta#a pentru

numele zonelor de memorie in care au fost stocate aceste valori este+ 5;metodaRMnume"componentaMS In cazul nostru variabilele in care s"au stocat valorile din formular sunt+ 5;Q9/RMuserMS 5;Q9/RMpassMS 5;Q9/RMsubmitMS Incercam sa facem urmatorul e#ercitiu+ <aca s,au trimis "ate prin formular verificam daca userul este laurentiu, daca parola este parola si in cazul in care acestea sunt introduse astfel se afisaza mesajul "Sunteti logat" altfel se afisaza mesajul ",ser sau parola gresite"* Cum facem acest lucru. Intram in pagina catre care am trimis datele $in cazul e#emplului dat este chiar aceeasi pagina cu formularul insa nu este obligatoriu sa se intample asta de fiecare data%* Nu uitam sa scriem operatorii de deschidere si de inchidere script 6=p p si =70 Intre acestia doi putem incepe scrierea instructiunilor+
:. 0aca s"a apasat pe submit " if:isset:>?GE2@Asu.mitAB;; =. 0aca userul este laurentiu si parola este parola " if :>?GE2@AuserAB CC 8laurentiu8

DD >?GE2@ApassAB CC 8parola8; F. Afisaza "Sunteti logat" " print 8Sunteti lo5at80 G. altfel afisaza ",ser sau parola gresite"* " else print 8Eser sau parola 5resite80

).) GE2 vs POS2


0e obicei nu metoda Q9/ este folosita pentru trnasferul datelor din formulare ci metoda .S/. 0iferenta intre aceste doua metode este ca metoda .S/ nu mai modifica ,2)"ul astfel ca numele variabilelor si valorile trimise nu se mai pot vedea in clar. /otusi acestea se trimit similar catre acea pagina si se pot accesa folosind aceeasi sinta#a prezentata in lectia anterioara+ 5;metodaRMnume"componentaMS 5; .S/RMuserMS 5; .S/RMpassMS 5; .S/RMsubmitMS Exercitiu# Creati aplicatia prezentata anterior care sa foloseasca metoda .S/ de transfer a datelor* Intelegeti diferentele pe e#emplu si intrebati la laborator*

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