Documente Academic
Documente Profesional
Documente Cultură
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
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.
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;
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;
} 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;
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!!!";
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;
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;
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>
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 />;
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";