Programarea aplicatiilor server side

Aplicatii server side

    In momentul in care un client face o cerere sub forma unui URL, WEB serverul HTTP la care ajunge cererea, analizeaza daca URL-ul se refera la o pagina html sau la un script. In cazul ca cererea este un script , serverul HTTP paseaza cererea spre o aplicatie care poate interpreta scriptul respectiv. In acest moment avem de-a face cu o aplicatie server side care se deruleaza dupa principiul afisat grafic mai jos.



  • Aplicatii Php server side

        In cazul in care scriptul este o aplicatie Php procesul de executie a aplicatiei server side este:



        In majoritatea cazurilor, aplicatiile php apeleaza baze de date. Baza de date MySQL este cea mai utilizata baza de date accesata de aplicatiile php. In acest caz aplicatia client -server se poate reprezenta astfel:


    Programarea in Php

        Php (Personal Home Page) este un limbaj de scriptare creat initial de Rasmus Lerdorf pentru contorizarea vizitatorilor unei pagini. Limbajul a fost dezvoltat ulterior devenind un limbaj de scriptare pe partea server-ului (server side) . PHP inseamna astazi Hypertext Preprocessor. Este o tehnologie de scriptare interplatforma, ruland pe diverse sisteme de operare si pe diferite platforme hard. Limbajul are facilitati de operare cu diverse baze de date, fiind recomandat insa sa se lucreze cu baza de date MySQL.

  • Elemente de programare in Php

        Un limbaj de programare server side dispune pe langa un set de instructiuni de baza, de un mecanism de transmitere a datelor spre sin dinspre browser. Pentru incepaut vom aborda elementele de baza ale limbajului, urmand sa completam ulterior cu mecanisme pentru comunicarea cu diverse browsere si accesul la baze de date.

  • Sintaxa de baza a limbajului

        Un script PHP incepe cu < ? php si se inchide cu ? > . Scripturile PHP pot fi incluse in orce loc in cadrul unui document html. In general serverele accepta si forma prescurtata a unui script sub forma: < ?....? > . Un fisier PHP contine in mod normal Marcatori HTML si scripturi PHP. Dupa metoda consacrata, prima aplicatie tipareste un text de bun venit!

        Urmatoarea aplicatie foloseste php pentru a afisa mesajul "Bine ati venit!".



    Bine ati venit!




    Utilizarea comentariilor si a blocurilor de comentarii




  • Utilizarea variabilelor

        In orce limbaj de programare exista posibilitatea definirii si utilizarii variabilelor. Variabilele memoreaza valori, siruri de caractere, tablouri etc.
        PHP este un limbaj slab tipizat, permitand utilizarea variabilelor fara ca acestea sa fie declarate in prealabil.
        Forma generala pentru initializarea unei variabile este:

    $nume_variabila=valoare;
    


        Sa realizam o aplicatie care initializeaza si utilizeaza variabile:



    Capitolul :1
    Utilizarea variabilelor in :limbajul PHP


        Acelasi rezultat obtinem ruland urmatorul script:



    Capitolul :1
    Utilizarea variabilelor in :limbajul PHP


        In PHP exista diferenta intre ghilimelele duble " si ghilimelele simple '. Daca in scriptul de mai sus inlocuim ghilimelele duble cu ghilimelele simple obtinem:



    Capitolul :$nr_cap
    Utilizarea variabilelor in :$nume_l


        In acest caz variabilele nu au mai fost interpretate ele compartandu-se ca un simplu text.

        De multe ori este necesar sa introducem ghilimele in text. Daca dorim de exemplu sa atribuim unei variabile valoarea: UMFST " Emil Palade", va trebui sa folosim caracterul \ pentru a nu se interpreta ghilimelele din cadrul textului.



    Studiez la :Universitatea "Petru Maior"


        In acest caz primul caracter " de dupa \ nu a fost interpretat.

  • Siruri de caractere

        In PHP se definesc o serie de functii pe siruri de caractere, foarte utile tinand cont ca PHP este un limbaj de scriptare si trebuie sa gestioneze continut de pagini web. Printre cele mai importante functii se numara:
        Concatenarea sirurilor

        Pentru concatenarea a doua siruri, se foloseste operatorul punct (.)



    Studiez la: Facultatea de Inginerie
    Sectia-Calculatoare


        Determinarea lungimii unui sir

        Pentru determinarea lungimii unui sir se foloseste functia: strlen()



    Lungimea sirului : Facultatea de Inginerie , este: 23


        Cautarea unui subsir in cadrul unui sir

        Pentru cautarea unui subsir in cadrul unui sir, se foloseste functia: strpos()



    Subsirul "Inginerie", se gaseste in sirul: "Facultatea de Inginerie", incepand cu pozitia:14


        Compararea a doua siruri

        Pentru a compara doua siruri intre ele , se foloseste functia: strcmp()



    Sirul "Inginerie", comparat cu sirul: "Facultatea de Inginerie", da rezultatul:-3


        Vom compara acum doua siruri egale.



    Sirul "Facultatea de Inginerie", comparat cu sirul: "Facultatea de Inginerie", da rezultatul:0


  • Operatori utilizati in PHP

        Operatorii utilizati in PHP sunt similari cu operatorii utilizati in Java Scrips sa C++

    Operatori arithmetici

    Operator Descriere
    + Adunare
    - Scadere
    * Inmultire
    / Impartire
    % Modulo
    ++ Increment
    -- Decrement

    Operatori de asignare

    Operator Examplu Echivalent cu
    = x=y x=y
    += x+=y x=x+y
    -= x-=y x=x-y
    *= x*=y x=x*y
    /= x/=y x=x/y
    .= x.=y x=x.y
    %= x%=y x=x%y

    Operatori de comparare

    Operator Descriere
    == este egal cu
    != nu este egal cu
    > este mai mare decat
    < este mai mic decat
    >= este mai mare sau egal cu
    <= este mai mic sau egal cu

    Operatori logici

    Operator Descriere
    && and
    || or
    ! not


  • Instructiuni decizionale

        Sintaxa:

    if (conditie)
    {
    cod care va fi executat daca conditia e adevarata
    }
    else
    {
    cod care va fi executat daca conditia e falsa
    }
    


        Vom folosi instructiuni decizionale pentru a afisa un mesaj in functie de ora curenta.



    Anul: 2025 este an ne-bisect


        Sintaxa instructiunii elseif

    if (conditie)
    {
    cod care va fi executat daca conditia e adevarata
    }
    elseif(conditie){
    cod care va fi executat daca conditia e adevarata
    }
    else
    {
    cod care va fi executat daca conditia e falsa
    }
    


        Vom folosi instructiunnea decizionala elseif pentru a afisa un salut in functie de ziua din saptamana.



    O zi buna!


  • Instructiuni de ciclare

        In PHP sunt definite patru instructiuni pentru realizarea buclelor repetitive de programare.      Sintaxa instructiunii while:

    while (conditie) {
    	bloc de instructiuni ce va fi executat;
    }
    


        Utilizand instructiunea de buclare while vom afisa primele 10 de numere naturale. Fiecare numar va fi afisat intr-o celula separata a unui tabel.



    Primele 10 de numere naturale
    12345678910


         Sintaxa instructiunii do..while:

    do {
    bloc de instructiuni ce va fi executat;
    }
    while (conditie);
    


        Utilizand instructiunea de buclare do...while vom afisa primele 100 de numere naturale.



    Primele 100 de numere naturale
    12345678910
    11121314151617181920
    21222324252627282930
    31323334353637383940
    41424344454647484950
    51525354555657585960
    61626364656667686970
    71727374757677787980
    81828384858687888990
    919293949596979899100


         Sintaxa instructiunii for:

    for (init; cond; incr) {
    bloc de instructiuni ce va fi executat;
    }
    


        Reluam aplicatia anterioara insa vom folosi instructiunea de buclare for pentru afisa patratele primelor 100 de numere naturale.



    Patratele primelor 100 de numere naturale
    149162536496481100
    121144169196225256289324361400
    441484529576625676729784841900
    961102410891156122512961369144415211600
    1681176418491936202521162209230424012500
    2601270428092916302531363249336434813600
    3721384439694096422543564489462447614900
    5041518453295476562557765929608462416400
    6561672468897056722573967569774479218100
    82818464864988369025921694099604980110000


         Sintaxa instructiunii foreach :

    foreach (nume_tablou as variabila){
    bloc de instructiuni ce va fi executat;
    }
    


        Urmatoarea aplicatie utilizeaza instructiunea de buclare foreach prntru a afisa zilele saptamanii.




    Zilele sapamanii sunt:
    Ziua 1 : Luni
    Ziua 2 : Marti
    Ziua 3 : Miercuri
    Ziua 4 : Joi
    Ziua 5 : Vineri
    Ziua 6 : Sambata
    Ziua 7 : Duminica


  • Utilizarea tablourilor in php

        In aplicatia anterioara s-a utilizat vectorul $zile=array("Luni", "Marti", "Miercuri","Joi", "Vineri", "Sambata","Duminica"); initializat implicit cu zilele saptamanii.
        In cazul in care vrem sa utilizam un un tablou fara initializare implicita, putem sa atribuim direct valori elementelor, fara a declara in prealabil un array. Vom inscrie o matrice cu numere pare dupa care vom afisa continutul.



    Linia: 0248
    Linia: 1163264
    Linia: 2128256512


  • Utilizarea functiilor in php

        Vom utiliza in continuare functii in cardul sript-urilor php. Urmatoarea aplicatie defineste si utilizeaza functia patrat pentru a calcula patratul unui numar.



    Patratul numarului 25este :625


  • Grafica in php

         - trasare linii

        Vom realiza in continuare aplicatii grafice in php.Prima aplicatie traseaza 3 linii de culori diferite,





        Dupa realizarea aplicatiei php "linii_v1.php", pentru afisarea imaginii, se realizeaza o pagina html in care se apeleaza imaginea astfel:



         - trasare dreptunghiuri

        Urmatoarea aplicatie traseaza 3 dreptunghiuri de culori diferite,





         - trasare cercuri

        Aplicatia traseaza arcuri cercuri si linii de culori diferite,





         - trasare sinus

        Aplicatia traseaza graficul functiei sinus,





         - Imagini dinamice


        Se realizeaza aplicatia "linii_d.php" de forma:



        Dupa realizarea aplicatiei php "linii_d.php", pentru apelare dinamica, se realizeaza urmatorul script:



         - Instrument virtual


        Se realizeaza aplicatia php "voltm.php".



        Pentru apelare dinamica, se realizeaza urmatorul script:



    Formuri in php

        In momentul definirii unui form terbuie precizata aplicatia care va prelucra datele trimise, precum si metoda prin care se trimit datele.

  • Utilizarea formurilor

        Vom defini un form care cere numele si prenumele, si precizeaza aplicatia care va prelucra datele trimise. Mai jos este prezentata sursa aplicatiei care defineste form-ul.




        Numele:

        Prenumele:

        



        La actionarea butonului de tip SUBMITT numit "Trimit datele", dupa cum se vede si in sursa aplicatiei, datele sunt prelucrate si afisate de aplicatia pe partea server-ului "apl_s1.php". Sursa aplicatiei server o puteti vedea mai jos.



  • Variabila $_POST

        Variabila $_POST este utilizata pentru a colecta valorile variabilelor dintr-un form trimis cu metoda="post".
        Aplicatia anterioara utilizeaza metoda "post" pentru a trimite valorile variabilelor "nume" si "p_nume". Aplicatia pe partea server "apl_s1.php" are acces la valorile acestor variabile prin intermediul variabilei $_POST.
         Variabila $_POST este de fapt un tablou care contine numele variabileolor si valoarea acestora, trimise prin metoda "post" de catre HTTP. Astfel pentru a afala numele trimis s-a utilizat $_POST["nume"], iar pentru prenume $_POST["p_nume"].
         Informatiile trimise prin metoda "post" sunt invizibile pentru utilizatori. Nu exista limitare in ceea ce priveste dimensiunea informatiilor trimise.

  • Variabila $_GET

        Variabila $_GET este utilizata pentru a colecta valorile variabilelor dintr-un form trimis cu metoda="get".
         Variabila $_GET similar cu variabila $_POST este un tablou care contine numele variabileolor si valoarea acestora, trimise prin metoda "get" de catre HTTP.
         Informatiile trimise prin metoda "post" sunt in acest caz vinvizibile pentru utilizatori, fiind afisate in cadrul URL-ului iar dimensiunea informatiei transmise este limitata la 100 de caractere.
        Aplicatia urmatoare utilizeaza metoda "get" pentru a trimite valorile variabilelor "nume" si "p_nume". Aplicatia pe partea server "apl_s2.php" are acces la valorile acestor variabile prin intermediul variabilei $_GET. Astfel pentru a afala numele trimis s-a utilizat $_GET["nume"], iar pentru prenume $_GET["p_nume"].




        Numele:

        Prenumele:

        



        La actionarea butonului de tip SUBMITT numit "Trimit datele", se trimit datele spre aplicatia server "apl_s2.php".
        Pentru a putea vedea informatiile transmise prin metoda "get" va trebui sa deschidem aplicatia intr-o noua fereastra. Vezi aplicatia intr-o fereastra noua .
        Datele sunt deci, prelucrate si afisate de aplicatia pe partea server-ului "apl_s2.php". Sursa aplicatiei server o puteti vedea mai jos.


    Utilizarea PHP pentru realizarea paginilor WEB dinamice

        In PHP se utilizeaza o serie de tehnici pentru realizarea paginilor WEB dinamice.

  • Utilizarea si incorporarea fisierelor externe

        In majoritatea paginilor web se pot distinge mai multe zone relativ fixe cum ar fi:
        Paginile web dinamice pastreaza zonele enumerate mai sus fixe , mai putin zona de continut principal. Pentru realizarea continutului celorlalte zone este utila definirea lor o singura data in fisiere externe si includerea acestor fisiere de fiecare data cand se lanseaza o pagina.
         Facilitatile SSI (Server Side Includes) sunt utilizate pentru a crea deci headers, footers, sau elemente ce se includ in mai multe pagini.
        Fisierele externe se includ in pagina curenta prin utilizarea functiei "include".
        Forma generala pentru includerea unui fisier extern este:

    include("nume_fis");
    

        Sa realizam o pagina web dinamica utilizand php care sa contina o zona antet, o zona meniu, un continut principal si o zona la baza paginii. Zona de antet, zona meniu, si zona de la baza paginii vor fi descrise in fisiere separate si vor fi incluse in pagina web.



        Programul principal "pag_din_1.php" contine includerea fisierelor externe, dupa cum se poate vedea mai jos.



        Programul principal "pag_din_1.php" include in primul rand antetul paginii prin instructiunea: include ('./includes/header.php');.
        Continutul fisierului "header.php" este:



        Se observa ca fisierul header.php include la randul lui un fisier CSS dupa care scrie un text in div-ul Header si deschide div-ul Continut in care vor fi afisate meniul si continutul principal.
        Fisierului CSS "layout.css" defineste div-urile si elementele de design, continutul fisierului CSS "layout.css" fiind:



        Programul principal "pag_din_1.php" contine de asemenea si meniul principal inclus cu include ('./includes/meniu.php');.



        Urmeaza apoi in programul principal "pag_din_1.php" continutul primei pagini si la baza este inclusa informatia zin zona baza_paginii cu
    include ('./includes/baza_pag.html');.



        La optiunea "Nume_prenume" din meniul principal sa apelat formul "num_pr.php".



        Acest form trebuie sa se incadreze in sablonul general deci trebuie sa fie asemanator cu programul principal "pag_din_1.php".Difera doar zona de continut principal care contine efectiv form-ul care cere numele si prenumele.



        Chiar si aplicatia de partea server care prelucreaza datele trimise trebuie sa se incadreze in acelasi sablon general.



  • Manipularea formularelor si prelucrarea datelor continute de acestea

        In aplicatia "num_pr.php" pentru a prelucra datele trimise s-a realizat o noua aplicatie care sa prelucreze aceste date si sa afiseze rezultatul intr-o noua pagina. Ar fi de preferat sa includem intr-o singura aplicatie atat form-ulinitial cat si prelucrarea datelor. Avantajul acestei abordari permite pastrarea datelor introduse si revenirea asupra lor in cazul in care trebuiesc reintroduse anumite campuri.
        La optiunea "Calculator" din meniul principal este inclusa o astfel de aplicatie care manipuleaza form-ul initial si prelucreaza datele trimise.





  • Utilizarea functiilor proprii si a functiilor speciale

        O alta modalitate de a realiza pagini dinamice, este utilizarea functiilor proprii si a functiilor speciale. Vom realiza in continuare o aplicatie care calculeaza puterea aparenta, puterea activa si reactiva cunoscand tensiunea, curentul si defazajul dintre ele.



        Aplicatia foloseste o functie proprie "calc_pa" pentru calculul puterii aparente.



  • Utilizarea tehnologiei AJAX

        Vom utiliza in continuare tehnologa AJAX pentru a realiza pagini dinamice. Vom realiza o aplicatire care sugereaza nume prememorate in cazul in care se completeaza un camp cu numele sau prenumele unei persoane.



        Aplicatia este asemanatoare cu aplicatiile scrise in Java-Script in care se foloseste tehnologia AJAX. Diferenta este ca URL-ul va fi de data aceasta o aplicatie php care raspunde in functie de parametrii trimisi in URL.



        Dupa cum se poate observa URL-ul transmis metodelor xmlhttp este de forma url=url+"?q="+str;,
    initial URL-ul fiind defint : var url="sugestie.php";

        Continutul fisierului "sugestie.php" fiind:



        Aplicatia poate fi imbunatatita, sugestiile putand fi luate dintr-o baza de date.

  • Elemente de programare obiect in php

        Definitia generala a unei clase in php este:

        

         Vom crea in continuare clasa Instrument de forma:



        In urma rularii scriptului de sus, rezulta:

    Voltmetru--V
    Ampermetru--A
    Frecventmetru--Hz


         Vom defini o noua clasa "Instrumm" in care vom folosi constructor



        In urma rularii scriptului de sus, rezulta:

    Voltmetru--V
    Ampermetru--A
    Frecventmetru--Hz


    Dupa redefinirea unitatii de masura ( "Volt" ) si ( "Amp" ), folosind metoda set_um(), obtinem:

    Voltmetru--Volt
    Ampermetru--Amp
    Frecventmetru--Hz


         - Utilizarea clasei "cerc"

         Codul sursa:



         - Instrument virtual bazat pe clasa "manometru"


         Codul sursa:



         - Instrument virtual bazat pe clasa "voltmetru"


         Codul sursa:



         Pagini dinamice web responsive

        Vom folosi un meniu web responsiv si vom crea o pagina dinamica

        Fisierul meniu fiind:



        Toate paginile trebuie sa includa fisierul meniu. De exemplu pagina initiala "start_resp.php" fiind:



        La fel pagina "clculator.php" pentru calculul tva-ului include fisierul meniu.



        Pentru afisarea valorii presiunii avem nevoie de mai multe fisiere, primul fiind "manom_din":



        manometru.php fiind:



        Clasa manometru: