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 PHP sunt - interpretarea si transferul paginilor cu extensia .php (de care se ocupa serverul Apache) si - interpretarea instructiunilor MySQL (de care se ocupa serverul MySQL); Pentru 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: CPU (Central Processing Unit / Procesorul) Memoria Placa grafica Placa de baza Magistralele I/O

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. Timpul de pocesare este calculat la nivel de nanosecunde (ns). Dezvoltarea unui program inseamna practic comandarea executarii unor instructiuni intr-o anumita ordine. Un set de instructiuni intr-o anumita ordine se numeste algoritm. Serverul Apache folosit pentru interpretarea instructiunilor PHP traduce aceste linii scrise de programator in limbajul PHP in limbaj masina (limbajul cunoscut de sistem); Memoria - se poate clasifica in memorie interna si memorie externa; Pe acestea la vom dicuta separat; Memoria externa - este reprezentata de: hard disk (HDD), cd-rom, floppy, flash drive, blue-ray disc etc. Are rolul de a stoca informatie pe termen lung. Memoria interna - este reprezantata de RAM (Random Access Memory) - este memoria in care se incarca programul pentru a fi executat. Aici sunt stocate informatiile necesare la executarea programului. Memoria RAM este volatila - ceea ce inseamna ca nu stocheaza informatii pe termen lung, ci numai pe timpul cat computerul este deschis. La inchiderea

acestuia informatiile din memoria RAM sunt sterse;

2.2 Rularea in sistem local a fisierelor PHP


Fisierele cu extensia .php vor fi rulate in sistem local cu ajutorul unui server local numit XAMPP. Fisierele vor fi stocate in directorul htdocs pe care aplicatia XAMPP il creaza la instalare. Adresa de apelare a fisierelor cu extensia .php este http://127.0.0.1/numefisier.php sau http://localhost/numefisier.php

2.3 Rezervarea zonelor de memorie


In vederea dezvoltarii aplicatiilor web avem in vedere faptul ca lucram cu informatii. De fapt, un program, fie ca este stand-alone sau la nivel web are rolul de a procesa informatii. Pentru a procesa date si informatii este necesar ca mai intai sa le putem stoca in memoria computerului. Pentru 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 PHP numele de variabile incep cu simbolul $ si trebuie sa respecte urmatoarele reguli: nu pot contine caractere speciale nu pot incepe cu cifre nu pot contine operatori (+, -, *, /, % etc.) Exemple de variabile: $var1 $numar $imagine $sir $sir_de_caractere PHP 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. De exemplu, o variabila care a stocat pana la un moment dat in executie un sir de caractere poate sa retina daca este nevoie mai apoi un numar. Atribuirea valorilor variabilelor se face cu ajutorul operatorului = Mai jos aveti exemple de atribuiri de valori variabilelor; $numar = 12; $numar2 = 12.5; $sir_de_caractere = "Un 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. La atribuirea unei valori, vechea valoare a variabilei, daca aceasta a mai fost initializata anterior, va fi stearsa. O variabila poate retine o singura valoare la un moment dat; De retinut este si faptul ca o atribuire este considerata instructiune in PHP. La sfarsitul

fiecarei instructiuni se foloseste operatorul ; (punct si virgula) Operatorul ; (punct si virgula) reprezinta finalizarea unei instructiuni si este esential in programare. Fara a-l folosi programul nu functioneaza.

2.4 Operatori si scrierea codului PHP


Pentru a putea scrie instructiuni PHP mai intai trebuie sa ne asiguram ca pagina noastra are extensia .php; Extensia .php nu influenteaza in nicun fel interpretarea codului HTML din pagina web. Nu este obligatoriu ca pagina sa aiba extensia .html, pentru ca web browser-ul sa interpreteze codul HTML, dar este esential sa aiba extensia .php pentru ca serverul sa recunoasca scriptul. Concluzia este: vom scrie orice pagina in care exista script PHP cu extensia .php; Oricare script din pagina incepe cu operatorul <?php (operatorul de deschidere script) si se finalizeaza cu operatorul ?> (operatorul de inchidere script); Este obligatoriu sa scriem orice linie de cod PHP intre acesti doi operatori, admiteri acestea nu vor fi interpretate; Pentru a face diferite operatii cu variabilele sau cu valori trebuie folositi operatori; Vom clasifica operatorii pe mai multe categorii; Acestia pot fi: 1. 2. 3. 4. 5. 6. Matematici: +, *, -, /, % Logici: &&, ||, ! De comparare: <, >, <=, >=, ==, != De incrementare/ decerementare: ++, --; De autooperare: +=, -=, *=, /=, %= Paranteze: ( )

Operatorii matematici se folosesc intre doi operanzi; Iata exemple de folosire a fiecaruia dintre acestia: $a = $b + 1; $a = $b - $c; $a = 5 / $c; $a = 5*3; Operatorul matematic modulo (%) este folosit pentru preluarea restului unei impartiri a doua numere intregi - de exemplu: 7%2 = 1 (deoarece restul imaprtirii lui 7 la 2 este 1) 10%5 = 0 (deoarece restul impartirii lui 10 la 5 este 0); $a = $a%5; Operatorii de incrementare si decrementare: ++ si -- ; Se folosesc pentru incrementarea unei valori cu o unitate sau decrementarea cu unu; Exemple: $a = 9; $a++; In exemplul de mai sus valoarea lui $a devine 10;

$a= 9; $a--; In acest exemlpu valoare lui $a devine 8;

2.5 Operatii simple cu numere si afisarea rezultatului


Pentru a efectua diferite operatii cu numere vom folosi operatorii matematici invatati si, desigur, operatorul de atribuire; Afisarea oricarei valori in PHP, fie care este ea numar sau sir de caractere se face folosind functia print. Iata un exemplu in care adun doua numere stocate in variabilele $a si $b si afisez pe pagina rezultatul: <?php $a=5; $b=7; $c= $a+$b; print $c; ?> In cazul de mai sus functia print afisaza pe pagina web valoarea variabilei $c; Aceasta valoare este suma valorilor variabilelor $a si $b, adica 5+7; Prin urmare pe pagina web ar trbui sa vedeti afisata valoarea 12; O alta versune a script-ului de mai sus ar fi fost sa afisam direct suma celor doua variabile $a si $b fara a mai rezerva inca o zona de memorie ($c). <?php $a=5; $b=7; print $a+$b; ?> In cazul operatiilor cu numere exista posibiltatea sa folosim mai multi operatori intr-o singura instructiune. Iata de exemplu modul in care putem calcula media artmetica a 3 numere stocate in diferite zone de memorie: <?php $a =9; $b=4; $c=25; print ($a+$b+$c)/3; ?>

Oridinea 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 3; Un rezultat poate fi stocat in aceeasi zona de memorie cu care se face si operatia; Iata exemplul de mai jos de inmultire: <?php $a=9; $b=7; $a=$a*$b; print $a; ?> Valoarea rezultatului operatiei de multiplicare dintre valoarea zonei de memorie $a si cea a zonei de memorie $b a fost stocata tot in zona $a; Pentru a inlocui instructiunea de inmultire de mai sus se poate folosi unul dintre operatorii de autooperare: $a=$a*$b este echivalent cu $a*=$b $a=$a-$b este echivalent cu $a-=$b $a=$a+$b este echivalent cu $a+=$b $a=$a/$b este echivalent cu $a/=$b Acesta este modul de utilizare a operatorilor de auto-operare;

2.6 Operatii simple cu siruri de caractere


Un sir de caractere reprezinta o secventa de caractere de o anumita lungime; Un sir de caractere are luncgimea zero daca nu contine niciun caracter; Orice sir de caractere este delimitat de operarorii "" (gilimilele); Iata cum atribuim un sir de caractere unei zone de memorie: $sir = "Sir de caractere"; $sir2 = 'Alt sir de caractere'; $sir3 = "Sir de caractere \n pe doua linii"; Observati ca am putut defini sirurile de caractere atat folosind ghilimele duble ("") cat si ghilimele simple (''); Pentru a putea introduce caracterul " (ghilimele) in interiorul unui sir de caractere este necesr sa il precedam de caracterul \ (backslash); iata metoda: $sir = "Sir de caractere cu \" ghilimele \" intre ghilimele :P "; $sir2 = "Sir de caractere cu \' ghilimele simple \' intre ghilimele simple:P "; Sirurilede caractere se pot concatena (alipi) folosind operatorul . (punct); Exemplu: $sir3 = $sir2.$sir1; $sir2 ="Un sir de caractere"."concatenat cu un alt sir!";

3.1 Structuri de control si utilitatea acestora


Rezervarea 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 de control decizionale Structuri de control repetitive Structurile de control decizionale sunt cele prin care putem crea un computer sa ia dezicii in executarea unor instructiuni in functie de una sau mai multe conditii date. Exista doua structuri de control decizionale: if-else switch 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 executata; In principal in PHP crearea gresita a unei structuri repetitive duce la neincarcarea paginii web respective; Structurile de control repetitive sunt: while do-while for In urmatoarele lectii voi prezenta modul de folosire al fiecareia dintre cele cinci structuri de control;

3.2 Structura de control decizionala if-else


Structura de control decizionala if-else este in general cea mai folosita structura de control decizionala; In orice situatie exista posibilitatea sa ne folosim de if-else, chiar prin inlocuirea structurii switch. Iata sintaxa pentru folosirea structurii de control decizionale: if(conditie) { // aici se executa diferite instructiuni daca conditia este adevarata

} else{ // aici se executa instructiunile daca conditia este falsa } In cazul structurii de control if-else blocul de instructiuni else poate lipsi cu totul in cazul in care nu trebuie sa se execute nimic daca conditia este falsa. In aceasta situatie sintaxa devine: if(conditie){ //instructiuni care se executa daca conditia este adevarata } De asemenea atat in cazul if cat si in cazul else pot lipsi acoladele in cazul in care nu este necesar sa se execute decat o singura instructiune; Iata exemplele de folosire sau nu a acoladelor: if(conditie) print "conditia este valida"; if(conditie) {print "conditia este valida <br />"; print "deci se executa cele doua instructiuni daca sunt incadrate de acolade";} Se observa faptul ca in primul exemplu am putut omite folosirea acoladelor, deoarece nu executam decat o singura instructiune; In cel de-al doilea exemplu pentru ca foloseam doua instructiuni (deci mai mult de una) acestea trebuie sa fie incadrate de acolade;

3.3 Structura de control decizionala switch


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_variabila>){ case <valoare1>: instructiune1; instructiune2; .... break; case <valoare2>: instructiune1; instructiune2; .... break; case <valoare3>: instructiune1; instructiune2; .... break; . . . default: instructiune1; instructiune2; .... break; } Desi arata complicat nu este deloc asa; Iata cum functioneaza: Daca valoarea variabilei pe care am precizat-o la inceput intre parantezele rotunde este egala cu valoarea1 se executa setul de instructiuni din dreptul cazului valaore1 pana la break; Idem pentru restul cazurilor; Daca niciun caz nu se potriveste atunci se executa default; Iata un exemplu concret: $var=3; switch($var){ case 1: print "Ianuarie"; break; case 2: print "Februarie"; break; case 3: print "Martie"; break; case 4: print "Aprilie"; break;

case 5: print "Mai"; break; case 6: print "Iunie"; break; case 7: print "Iulie"; break; case 8: print "August"; break; case 9: print "Septembrie"; break; case 10: print "Octombrie"; break; case 11: print "Noiembrie"; break; case 12: print "Decembrie"; break; default: print "Nu exista decat 12 luni!!!"; break; } In cazul de mai sus, pentru ca valoarea zonei de memorie var este 3 se va afisa "Martie"; $var=15; switch($var){ case 1: print "Ianuarie"; break; case 2: print "Februarie"; break; case 3: print "Martie"; break; case 4: print "Aprilie"; break; case 5: print "Mai"; break; case 6: print "Iunie"; break; case 7: print "Iulie"; break; case 8: print "August"; break; case 9: print "Septembrie"; break; case 10: print "Octombrie"; break; case 11: print "Noiembrie"; break; case 12: print "Decembrie"; break; default: print "Nu exista decat 12 luni!!!"; break; } Daca insa variabila are valoare 15 ca in exemplul de mai sus, pentru ca nu exista niciun caz aferent valorii 15 se va executa default, adica se va afisa: "Nu exista decat 12 luni!!!";

3.4 Structura de control repetitiva while


Cea mai importanta structura de control repetitiva este while; Oricare dintre urmatoarele doua structuri repetitive do-while si for, pot fi inlocuite de while daca este cazul; Aceasta structura de control este in general folosita pentru a repeta diferite innstructiuni cat timp o conditie este valida; Iata sintaxa de folosire while: while(conditie){ // aici se executa instructiunile daca conditia este valida, apoi se trece din nou la testarea conditiei } Practic functioneaza in modul urmator: 1. se testeaza conditia: 2. se executa instructiunile daca conditia este valida 3. se intoarce la testarea conditiei si daca aceasta este adevarata de executa din nou pasul 2

4. daca conditia este falsa se iese din ciclu si se trece la urmatoarele dintructiuni de dupa acesta daca exista; De 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; Un exemplu practic de folosire al structurii while ar fi: $var=4; while($var>0){ print $var; $var--; } Acest ciclu se va opri in momentul in care $ var va retine valoarez 0; Ma asigur ca se va intampla acest lucru prin folosirea operatorului de decrementare --; Practic acest ciclu afisaza 4321, adica valoare variabilei $var in timpul fiecarei ciclari;

3.5 Structura de control repetitiva do-while


Structura de control repetitiva do-while este foarte asemanatoare cu while. Singura diferenta este de ordine a testarii conditiei; Pentru do-while, spre deosebirede while conditia se testeaza la sfarsit (adica dupa executarea conditiilor); Cu alte cuvinte cel putin o data se executa instructiunile, apoi, daca este nevoie acestea sunt repetate (in functie de conditia pusa); Iata sintaxa de folosire a structurii de control do-while: do{ // aici se executa instructiunile; }while(conditie); Pasii de functionare a structurii de control do-while sunt urmatorii: 1. 2. 3. 4. Se executa instructiunile Se testeaza conditia Daca conditia este adevarata se executa instructiunile din nou Daca conditia este falsa se trece la urmatoarele instructiuni de dupa ciclu

Pentru 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) do{ // aici se executa instructiunile; }while(conditie); Practic sintaxa de mai sus este identica in raport de executie cu: while(conditie){ // aici se executa instructiunile; } De retinut este faptul ca do-while executa cu un ciclu mai mult decat while;

3.6 Structura de control repetitiva for


De obicei structura de control repetitiva for se foloseste pentru executarea unui set de instructiuni de un numar definit de ori; De exemplu aceasta structura de control se poate folosi pentru siruri de numere; Iata sintaxa structurii de control for: for($i=valoare;$i<=valoare;$i++){ //se executa instructiuni } $i 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 exista trei zone importante delimitate de operatorul ; (punct si virgula) Aceste trei zone sunt: 1. zona de initializare contor 2. zona conditionala 3. 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 $i); Mai jos puteti vedea un exemplu se sintaxa for efectiva: for($i=1;$i<=5;$i++){ print "$i<br />"; } In cazul de mai sus se afisaza pe pagina pe linii separate: 1 2 3 4 5 Cum functioneaza scriptul: 1. 2. 3. 4. 5. 6. 7. $i are valoarea 1 se testeaza conditia si se observa ca 1 este mai mic sau egal decat 5 ($i<=5) se exectua instructiunile dintre acolade (se afisaza $i in acest caz) $i este incrementat se verifica din nou conditia daca conditia este adevarata se repeta ciclu daca conditia este falsa se iese din structura

4.1 Formulare HTML


Formularele HTML reprezinta inceputul crearii unei interfete care "comunica" cu utiizatorul; Prin formulare putem introduce diferite tipuri de date care mai apoi pot fi procesate in vederea dezvoltarii algoritmului aplicatiei web. Forumularele sunt dezvoltate pe pagina web prin taguri HTML si reprezinta colectiide componente de introducere de informatie; O 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; Exemple de componente pentru introducerea de date sunt: butonul lista de selectie checkbox radio button textfield textarea butonul submit password field

O sa incepem prin crearea unui formular simplu de logare; Presupunem ca aplicatia noastra web identifica utilizatorii prin user si parola: Pentru dezvoltarea acestui formular vom avea nevoie de trei componente: un textfield, un passwordfield si un buton de tip submit; Orice formular are rolul de a colecta informatie pe care o trimite catre o alta pagina a aplicatiei pentru a fi procesata. Prin 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); Trimiterea informatiei se poate face prin doua metode: GET sau POST; Pentru inceput voi explica dezvoltarea unui astfel de formular care foloseste metoda GET fara a explica modul de functionare a metodei. Dupa ce vom intelegem modul in care datele sunt transferate de la o pagina la alta voi trata in paralel cele doua metode GET si POST; Tag-urile de deschidere si de inchidere a formularului sunt <form> si </form>

4.2 Componente - tagul <input />


In lectia anterioara ati putut vedea un exemplu de aplicatie care trimite doua informatii catre acceasi pagina unde sunt procesate. In continuare voi prezenta functionalitatea aplicatiei din lectia 4.1; Sa incepem cu formularul HTML; Acesta este scris intre tag-urile <form> si </form>; Intre aceste doua taguri putem descrie componente ale caror valori vor fi trimise dupa ce se efectueaza o instructiune submit; Majoritatea componentelor pot fi descrise folosind tagul <input />; Acest tag are trei atribute importante: name, type si value; Sa intelegem aceste trei atribute; "type" este atributul care defineste practic ce componenta descriem; Acest atribut poate avea urmatoarele valori: text password button checkbox radio file hidden

submit reset image In exemplul anterior am folosit primele doua tipuri enumerate (text si password) si tipul submit; "name" 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; "value" 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 textul care apare pe buton; Tipul "text" descrie o componenta textfield (in care se pot introduce siruri de caractere), tipul "password" este asemanator tipului text cu observatia ca acesta ascunde caracterele. Tipul "submit" estefoarte important. Il vom adauga la fiecare formular si descrie un buton la apasarea caruia se executa o instructiune submit (de trimitere a datelor); In cazul exemplului 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 />;

4.3 Metode de transfer a datelor (GET si POST)


La crearea formularului in afara de descrierea componentelor si a butonului submit trebuie sa intelegem modul in care datele sunt transferate catre pagina specificata; Pentru a specifica o pagina si una dintre cele doua metode de trimitere avem in vedere definirea atributelor "method" si "action" ale tag-ului <form>. 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 excata 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 exemplul din lectia 4.1 am folosit metoda GET pentru a trimite informatiile catre aceeasi pagina in care am descris si formularul HTML; Sintaxa pentru tagul <form> a fost: <form action="index.php" method="get"> Cu alte cuvinte se trimite informatia din componetele descrise in interiorul tagurilor <form></form> catre pagina index.php cu metoda GET la apasarea butonului submit; Dupa scrierea paginii incercam formularul si observam ca la apasarea butonului submit pagina se reincarca si adresa URL a paginii este usor modificata: Adresa URL devine: index.php?user=laurentiu&pass=parola&submit=Log in Daca va amintiti user, pass si submit erau numele date de noi componetelor formularului; Cele trei componente pe care la are formularul nostru sunt: textfield-ul user, password-fieldul pass si butonul de submit ce avea numele submit; Dupa operatorul = sunt scrise valorile fiecarei componente: laurentiu, parola si Log in; Toate acestea sunt despartite folosind operatorul & (and) si se afla definite dupa numele paginii despartite de acesta prin operatorul ?; (revedeti adresa URL pentru a intelege); Acum ca avem aceste valori trimise le putem folosi in script-ul nostru; Sintaxa pentru

numele zonelor de memorie in care au fost stocate aceste valori este: $_metoda['nume-componenta'] In cazul nostru variabilele in care s-au stocat valorile din formular sunt: $_GET['user'] $_GET['pass'] $_GET['submit'] Incercam sa facem urmatorul exercitiu: Daca s-au trimis date 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 "User sau parola gresite"; Cum facem acest lucru. Intram in pagina catre care am trimis datele (in cazul exemplului 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 <?php si ?>; Intre acestia doi putem incepe scrierea instructiunilor:
1. Daca s-a apasat pe submit - if(isset($_GET['submit'])) 2. Daca userul este laurentiu si parola este parola - if ($_GET['user'] == "laurentiu"

&& $_GET['pass'] == "parola") 3. Afisaza "Sunteti logat" - print "Sunteti logat"; 4. altfel afisaza "User sau parola gresite"; - else print "User sau parola gresite";

4.4 GET vs POST


De obicei nu metoda GET este folosita pentru trnasferul datelor din formulare ci metoda POST. Diferenta intre aceste doua metode este ca metoda POST nu mai modifica URL-ul astfel ca numele variabilelor si valorile trimise nu se mai pot vedea in clar. Totusi acestea se trimit similar catre acea pagina si se pot accesa folosind aceeasi sintaxa prezentata in lectia anterioara: $_metoda['nume-componenta'] $_POST['user'] $_POST['pass'] $_POST['submit'] Exercitiu: Creati aplicatia prezentata anterior care sa foloseasca metoda POST de transfer a datelor; Intelegeti diferentele pe exemplu si intrebati la laborator;