URI:
   DIR Return Create A Forum - Home
       ---------------------------------------------------------
       Forum Practic
  HTML https://practic.createaforum.com
       ---------------------------------------------------------
       *****************************************************
   DIR Return to: Informatica
       *****************************************************
       #Post#: 126--------------------------------------------------
       Accesul la date - PHP
   DIR By: iulianstoian
       Date: January 13, 2015, 7:00 pm
       ---------------------------------------------------------
       z8e8ei
       <titlu>Accesul la date</titlu>
       <titlu>Scopuri</titlu>
       • Invatati sa obtineti accesul la datele scalare transmise unui
       program PHP de catre un formular HTML
       • Invatati sa folositi constructia PHP echo pentru a trimite
       date de iesire la browser
       • Invatati sa construiti siruri care includ valorile
       variabilelor PHP
       • Invatati sa obtineti accesul la valorile variabilelor de mediu
       Majoritatea programelor PHP folosesc formularele HTML pentru a
       obtine date de intrare, in cadrul acestui modul, veti invata sa
       obtineti accesul la datele trimise unui program PHP prin
       intermediul unui formular HTML. De asemenea, veti invata sa
       obtineri accesul la datele stocate in variabilele de mediu pe
       parte de client, respectiv pe parte de server. Variabilele de
       mediu stocheaza informatii utile despre browsere, servere Web si
       PHP.
       <titlu>Obtinerea si utilizarea datelor de la un
       formular</tittlu>
       Deoarece PHP a fost conceput ca limbaj de scripting pentru Web,
       faciliteaza accesul la variabilele transmise de catre
       formularele HTML. In modulul precedent, ati invatat sa creati
       formulare HTML. Iata un formular HTML simplu, care include o
       caseta cu text:
       <HTML>
       <HEAD><TITLE>Un formular HTML simplu </TITLE>
       </HEAD>
       <BODY>
       <FORM METHOD=”POST” ACTION=”phpinfo.php”>
       <BR>Tastati niste date:
       <BR><INPUT TYPE=”TEXT” NAME=”date”>
       <BR><BR><INPUT TYPE=”SUBMIT”>
       </FORM>
       </BODY>
       </HTML>
       Observati ca atributul NAME al etichetei INPUT atribuie casetei
       cu text numele date.
       In cazul in care creati un script denumit phpinfo.php, care
       executa functia phpinfo() si o stocheaza in acelasi dosar ca si
       formularul, prin expedierea formularului se cere scriptului sa
       afiseze un raport care indica starea serverului de aplicatie
       PHP. In
       sectiunea intitulata „Variabile PHP", raportul de stare prezinta
       valorile variabilelor din formular. Figura 4-1 prezinta raportul
       de stare asociat formularului HTML simplu.
       Retineri ca raportul de stare are doua coloane. Numele
       variabilei asociate controlului din formular, in speta date,
       apare in coloana din stanga, inglobat in textul
       HTTP_POST_VARSa"date"i. Valoarea variabilei, care reprezinta
       textul introdus de utiliza¬tor, este prezentata in coloana din
       dreapta. In figura, valoarea variabilei o constituie textul
       "acestea sunt datele".
       <figura 4-1>Un raport de stare PHP, care indica valoarea
       variabilei din formular denumita date
       PHP Variables
       <Variabila>PHP_SELF</varialila><value>/Ibmccarty/php/module-04/phpinfo.php</value>
       <variabila> HTTP_POST_VARSa„date”i </varialila> <value> this is
       data </value>
       <Sfatul specialistului>
       Intrebare: Constructia HTTP_POST_VARSa"date"i este suspect de
       asemanatoare cu o referinta la un tablou. Despre ce este vorba?
       Raspuns: Daca ati observat parantezele drepte si v-ati reamintit
       ca ele sunt asociate cu tablourile PHP, atunci sunteti o
       persoana extrem de atenta. Daca nu, parcurgeti rapid sectiunea
       intitulata „Valori scalare si tablouri" din Modulul 2.
       In momentul expedierii unui formular, numele si valorile
       variabilelor incluse in formular sunt inserate in tabloul
       HTTP_POST_VARS. Cheia fiecarui element al tablou¬lui este numele
       unei variabile din formular; valoarea elementului din tablou
       determina valoarea variabilei. Daca doriti, puteti obtine
       accesul la variabilele formularului folosind tabloul
       HTTP_POST_VARS; cu toate acestea, veti invata in curand
       modalitati mult mai convenabile de acces la variabilele unui
       formular. </Sfatul specialistului>
       <titlu>Trimiterea datelor de iesire catre browser</titlu>
       Desigur, nu putem pretinde ca utilizatorii sa citeasca un raport
       de stare PHP pentru a afla valorile variabilelor. Mai mult,
       esenta programarii consta in capacitatea de a manipula valorile,
       nu de a le vizualiza pur si simplu, in aceasta sub-sectiune veti
       invata sa folositi constructia echo pentru a trimite date de
       iesire la un browser, iar in sectiunea urmatoare veti invata sa
       construiti siruri care inglobeaza valorile variabilelor.
       Prin combinarea acestor tehnici, puteti afisa valorile
       variabilelor PHP intr-o forma pe care utilizatorii o pot
       intelege cu usurinta. In modulele ulterioare, veti invata sa
       manipulati valorile variabilelor astfel incat sa puteti construi
       programe PHP utile. Constructia echo va permite sa trimiteti
       date de iesire catre un browser. Con¬structia are o diversitate
       de forme. lat-o, poate, pe cea mai utila dintre ele:
       echo sir_expresie;
       Aceasta forma consta numai din cuvantul echo, urmat de o
       expresie sir si de un caracter punct si virgula care determina
       incheierea instructiunii. Efectul unei aseme¬nea instructiuni
       consta in a trimite browserului valoarea expresiei sir. De
       exemplu, instructiunea
       echo „<BR><B>„Datele sunt elegante!</B>”;
       trimite browserului textul „Datele sunt elegante!". Retineti ca
       textul include etichete HTML, care influenteaza modul de
       formatare a textelor, determinandu-le sa apara pe o linie noua,
       scrise cu ajutorul caracterelor aldine.
       Utilitatea acestei forme a constructiei echo se bazeaza pe
       numeroasele moduri in care puteti scrie o expresie sir. Una
       dintre cele mai utile modalitati foloseste opera¬torul de
       concatenare pentru unirea a doua expresii sir. De exemplu, sa
       luam in considerare urmatoarea instructiune echo:
       echo „Datele sunt” . „ elegante!”;
       Operatorul de concatenare, reprezentat printr-un punct, ataseaza
       a doua expresie sir ia prima. Rezultatul este acelasi ca si cel
       generat de urmatoarea instructiune:
       echo „Datele sunt elegante!”;
       Constructia echo este oarecum ciudata, in sensul ca este
       asemanatoare cu o functie, dar nu este functie. De exemplu,
       puteti folosi paranteze pentru a delimita expresia sir ceruta de
       constructia echo:
       Daca preferati, puteti furniza mai multe expresii sir, fiecare
       din aceste expresii fiind separata de vecinii sai prin
       intermediul unei virgule:
       echo „Datele sunt”, „ elegante!”;
       Cu toate acestea, nu puteti folosi simultan paranteze si
       virgule, asa cum se procedeaza in cazul functiilor autentice:
       echo („Datele sunt”, „elegante!”); // Eroare de sintaxa
       Mai mult, o expresie furnizata constructiei echo nu trebuie sa
       fie o expresie sir, daca PHP stie sa converteasca expresia
       intr-un sir. De exemplu, urmatoarea sintaxa este corecta:
       echo „unu plus unu este ”; echo 2;
       <Sfatul specialistului>
       Intrebare: Sa presupunem ca programul meu PHP are ca date de
       iesire etichete HTML, ceea ce determina intercalarea unor
       elemente HTML in componentele programului meu. Exista vreo
       modali¬tate mai convenabila de a scrie constructii de tip echo
       in aceasta situatie?
       Raspuns: Da, exista, in loc de a scrie
       <? echo "datele mele de iesire";
       ?> puteti scrie pur si simplu
       <?= "datele mele de iesire" ?>
       PHP percepe semnul egal ca o abreviere pentru echo, atata vreme
       cat semnul egal urmeaza imediat dupa simbolul <?. Retineti,
       totusi, ca aceasta caracteristica este disponibila numai daca
       PHP a fost compilat sau configurat cu optiunea de confi¬gurare
       short_tags. Daca descoperiti ca nu puteti folosi cu succes
       constructia <?=, solicitati administratorului dumneavoastra de
       sistem sa activeze aceasta optiune. </Sfatul specialistului>
       <titlu>Construirea sirurilor care inglobeaza valori ale
       variabilelor</titlu>
       Pentru a putea trimite browserului valorile variabilelor, tot ce
       mai aveti de invatat este sa construiti expresii sir care includ
       valorile variabilelor. Iata un script simplu care include o
       asemenea expresie
       <?php
       $raza = 2;
       $pi = 3.14159;
       $arie = $pi*$raza*$raza; echo „Aria cercului este $arie.”;
       ?>
       Cand inglobati intr-un sir numele unei variabile, precum $arie,
       PHP inlocuieste numele variabilei cu valoarea acesteia. Daca
       executati scriptul dat ca exemplu, veti vedea datele de iesire:
       Aria cercului este 12.56636
       Uneori, doriti sa obtineti la iesire numele unei variabile, nu
       valoarea acesteia.In asemenea cazuri, inserati un caracter
       backslash (\) in fata numelui variabilei. Sa consideram
       urmatorul exemplu:
       <?php
       $raza = 2;
       $pi = 3.14159;
       $arie = $pi*$raza*$raza; echo „Valoarea variabilei \ $aria este
       $arie.”;
       ?>
       Rezultatul acestui script este:
       Valoarea variabilei $arie este 12.56636
       <Test „la minut">
       • Scrieti o instructiune echo care scrie textul „PHP este pentru
       programa¬torii de calibru."
       • Scrieti o instructiune echo care scrie valoarea variabilei
       $circum.
       • Scrieti o instructiune echo care scrie numele variabilei
       $radacina, urmata de un semn egal si de valoarea variabilei.
       </Test „la minut">
       <titlu>Proiectul 4-1 : Agenda cu adrese de e-mail</titlu>
       In cadrul acestui proiect, veti scrie instructiuni PHP prin care
       se obtine accesul la datele obtinute de la un formular HTML. De
       asemenea, veti scrie instructiuni PHP care trimit date HTML la
       browserul utilizatorului.
       Acest proiect este primul dintr-o serie de proiecte, care va
       culmina cu o aplicatie PHP care furnizeaza o agenda de adrese
       accesibila prin Web. Veti invata mai multe despre agenda de
       adrese si despre functionalitatile acesteia pe masura ce veti
       continua sa lucrati la dezvoltarea aplicatiei.
       <titlu>Scopurile proiectului</titlu>
       • Prezentarea modului de scriere a sirurilor PHP care
       incorporeaza datele obtinute de la un formular HTML
       • Prezentarea modului de utilizare a instructiunii PHP echo
       pentru a trimite date catre browserul utilizatorului
       <titlu>Pas cu pas</titlu>
       1. Plasati urmatorul script PHP intr-un fisier denumit p-4-1
       .html si incarcati acest fisier in serverul dumneavoastra PHP:
       <HTML>
       <HEAD>
       <TITLE>Proiectul 4-1<TITLE>
       </HEAD>
       <BODY>
       <!--Fisierul p-4-1.html -- >
       <FORM METHOD=”POST” ACTION=”p-4-1.php”>
       <H2>Lista cu persoane de contact</H2>
       <BR>Porecla:
       <nota>Raspunsuri la test:
       • echo "PHP este pentru programatorii de calibru."
       • echo "Valoarea este Scircum."; sau ceva similar
       •echo "\$radacina=$radacina";</nota>
       <BR><INPUT TYPE=”TEXT” NAME=”Porecla”>
       <BR>
       <BR>Nume complet:
       <BR<<INPUT TYPE=”TEXT” NAME=”Numecomplet”>
       <BR>
       <BR>Memo:
       <BR><TEXTAREA NAME=”Memo” ROWS=”4” COLS=”40” WRAP=”PHYSICAL”>
       </TEXTAREA>
       <BR>
       <BR>
       <INPUT TYPE=”SUBMIT”>
       </FORM>
       </BODY>
       </HTML>
       2. Plasati urmatorul script PHP intr-un fisier denumit p-4-1.php
       si incarcati acest fisier in serverul dumneavoastra PHP,
       plasandu-l in acelasi catalog ca si fisierul p-4-1 .html:
       <?php
       // Fisierul p-4-1.html echo „<BR>Porecla=$Porecla”; echo
       „<BR>Nume_complet=$Nume_complet”; echo „<BR>Memo=$Memo”;
       ?>
       3. Orientati un browser Web spre adresa URL a fisierului care
       contine formularul HTML. Ecranul browserului trebuie sa fie
       asema¬nator celui prezentat in ilustratia urma¬toare.
       Introduceti o porecla, un nume complet si o nota scurta (memo).
       Executati clic pe butonul de expediere.
       <imagine>
       Contact list
       Nickname bill
       Full Name Bill McCarty
       Memo Email: bmccarty@osborn.com
       Submit Query
       </imagine>
       4. In momentul executarii scriptului de prelucrare, acesta
       obtine accesul la cele trei variabile ale formularului si
       trimite browserului utilizatorului numele si valorile
       variabilelor, asa cum se poate vedea in ilustratia urmatoare.
       Nickname=bill
       Fullname=Bill McCarty
       Memo=Email: bmccarty@osborne.com
       <titlu>Obtinerea si utilizarea datelor de la o variabila de
       mediu</titlu>
       In cazul in care sunteti familiarizat cu sistemele de operare
       UNIX sau MS-DOS, probabil ca sunteti un cunoscator al
       variabilelor de mediu. Variabilele de mediu sunt folosite pentru
       stocarea optiunilor si a parametrilor care personalizeaza mediul
       de aplicatie. Aplicatiile pot obtine accesul la valorile
       variabilelor de mediu si isi pot ajusta comportamentul in
       consecinta. De exemplu, calea de cautare a programelor MS-DOS
       este stocata intr-o variabila de mediu denumita PATH. In
       general, comen¬zile sistemelor de operare sunt folosite pentru a
       configura variabilele de mediu si pentru a stabili valorile
       acestora. Cu toate acestea, unele aplicatii manipuleaza valorile
       variabilelor de mediu.
       Atat serverul Web Apache, cat si serverul de aplicatie PHP
       folosesc variabile de mediu pentru a prezenta informatii de
       stare. Unele dintre cele mai importante variabile de mediu
       folosite de Apache si PHP sunt rezumate in tabelul 4-1.
       Nume¬roase servere Web, altele decat Apache, furnizeaza o parte
       din aceste variabile de mediu sau chiar pe toate.
       Multe dintre aceste variabile reflecta caracteristicile cererii
       HTTP care a solicitat executia PHP. Puteti vizualiza toate
       variabilele de mediu disponibile pentru progra¬mele PHP prin
       invocarea functiei phpinfo() si vizualizarea datelor de iesire
       generate de aceasta. Figura 4-2 prezinta o portiune a raportului
       de stare prezentat de functia phpinfo() care identifica
       numeroase variabile de mediu.
       <Tabelul 4-1 Importante variabile de mediu PHP>
       *Variabila de mediu
       *Descriere
       *CONTENT_LENGTH
       *Lungimea, in octeti, a corpului cererii.
       *CONTENT_TYPE
       *Tipul MIME al datelor din corpul cererii.
       *DOCUMENT_ROOT
       *Calea care constituie radacina arborelui catalogului cu
       docu¬mente al serverului Web.
       *GATEWAZ_INTERFACE
       *Versiune a protocolului CGI (Common Gateway Interface) folosit
       de serverul Web.
       *http_ACCEPT
       *Continutul antetului HTTP Accept:.
       *http_ACCEPT_CHARSET
       *Continutul antetului HTTP Accept-Charset:, care specifica
       seturile de caractere intelese de client.
       *HTTP_ACCEPT_ENCODING
       *Continutul antetului HTTP Accept-Encoding:, care specifica
       tipurile de continuturi intelese de client.
       *http_ACCEPT_LANGUAGE
       *Continutul antetului HTTP Accept-Language:, care specifica
       limbajele preferate de client.
       *http_CONNECTION
       *Continutul antetului HTTP Connection:, care indica optiunile
       solicitate de client.
       *http_HOST
       *Continutul antetului HTTP Host:, care indica numele de gazda,
       folosit de client la prezentarea cererii.
       *http_REFERER
       *Adresa URL a paginii Web care a trimis browserul clientului la
       pagina curenta.
       *HTTP_USER_AGENT
       *Continutul antetului HTTP user-Agent, care indica browserul
       clientului si versiunea acestuia.
       *PATH
       *Calea de executie asociata cu mediul serverului.
       *QUER_STRING
       *Sirul de interogare, daca exista, care a insotit cererea.
       *REMOTE_ADDR
       *Adresa IP a clientului.
       *REMOTE_HOST
       *Numele de gazda al clientului.
       *REMOTE_PORT
       *Adresa portului clientului de unde a pornit cererea.
       *REQUEST_METHOD
       *Metoda de cerere HTTP folosita; de exemplu, GET, POST, PUT sau
       HEAD.
       *REQUEST_URI
       *URI folosit pentru accesul la pagina curenta. URI este alcatuit
       dintr-un URL si un sir optional de interogare.
       *SCRIPT_FILENAME
       *Numele de cale absolut al scriptului curent.
       *SCRIPT_NAME
       *Adresa URL a scriptului curent.
       *SERVER_ADMIN
       *Adresa de e-mail a administratorului serverului Web .
       *SERVER_HOST
       *Numele de gazda asociat serverului Web care prelucreaza
       cererea.
       *SERVER_PORT
       *Port folosit de serverul Web pentru comunicatii.
       *SERVER_PROTOCOL
       *Numele si versiunea protocolului prin intermediul caruia s-a
       executat cererea.
       *SERVER_SIGNATURE
       *Sirul care identifica versiunea serverului Web si numele de
       gazda folosit pentru prelucrarea cererii.
       *SERVER_SOFTWARE
       *Sirul care identifica programul server Web si versiunea
       acestuia.
       </tabel 4-1>
       Puteti obtine accesul la variabila de mediu exact asa cum
       procedati pentru orice alta variabila PHP. Pur si simplu
       inserari inaintea numelui variabilei de mediu un simbol al
       dolarului ($), astfel incat numele sa se conformeze sintaxei
       PHP. De exemplu, urmatoarea instructiune echo trimite
       browserului adresa IP a clientului:
       echo „Adresa IP a clientului este $REMOTE_ADDR.”;
       <figura 4-2>
       Datele de iesire ale functiei phpinfo(), care afiseaza numeroase
       variabile de mediu.
       <titlu>Apache Environment</titlu>
       <Variable>CONTENT_LENGTH</variable><value> 14</value>
       <Variable>CONTENT_TYPE</variable><value>application/x-www-form-urlencoded</value>
       <Variable>DOCUMENT_ROOT</variable><value>/home/http/htlm</value>
       <Variable>HTTP_ACCEPT</variable><value>*/*</value>
       <Variable> HTTP_ACCEPT_ENCODING </variable> <value> gzip,deflate
       </value>
       <Variable> HTTP_ACCEPT_LANGUAGE</variable><value>en-us</value>
       <Variable> HTTP_CONNECTION</variable><value>Keep-Alive</value>
       </figura 4-2>
       <Sfatul specialistului>
       Intrebare: O buna parte din informatiile prezentate in tabe¬lul
       4-1 par neclare. Care este utilitatea acestor variabile de
       mediu?
       Raspuns: Daca nu cunoasteti protocolul HTTP in amanuntime, s-ar
       putea sa nu descoperiti prea multe utilitati pentru aceste
       variabile de mediu. Cu toate acestea, o importanta utilizare
       comuna o constituie autentificarea clientului. Prin accesul la
       variabila de mediu REMOTE_ADDR, puteti determina adresa IP a
       clientului. Intr-un modul ulterior, veti invata sa testati
       valoarea unei variabile si sa modificati comportamentul unui
       script in functie de valoarea respectiva. De exemplu, puteti
       folosi acest procedeu pentru a exclude cererile care provin din
       afara unui anumit set de adrese IP, cum ar fi cele care
       reprezinta o anumita retea. Astfel, aplicatia dumneavoastra
       poate deveni mai rezistenta la atacurile hackerilor care
       incearca sa creeze o bresa in sistemul de securitate.
       O alta utilizare importanta a variabilelor de mediu consta in
       ocolirea limitarilor impuse de un anumit browser. Variabila de
       mediu HTTP_USER_AGENT identifica browserul client si versiunea
       acestuia. Un script PHP poate testa valoarea acestei variabile
       de mediu si trimite numai date de iesire acceptabile pentru
       versiunea browserului aflat in uz.</sfatul specialistului>
       <Test „la minut">
       • Care este numele variabilei PHP care contine numele gazdei
       serverului Web?
       • Care este numele variabilei PHP care contine numele gazdei
       clientului?</test”la minut>
       <tilu>Proiect 4-2: Vizualizarea variabilelor de mediu</titlu>
       In cadrul acestui proiect, veti vizualiza valorile a numeroase
       variabile de mediu PHP.
       <titlu>Scopurile proiectului</titlu>
       • Prezentarea modului de vizualizare a variabilelor de mediu
       • Prezentarea modului de utilizare a instructiunii echo pentru a
       trimite browserului date deb iesire
       <titlu>Pas cu pas</titlu>
       1. Plasati urmatorul script PHP intr-un fisier denumit p-4-2.php
       si incarcati acest fisier in serverul dumneavoastra PHP:
       <nota>Raspunsuri la test:
       • $SERVER_HOST
       • $REMOTE HOST</nota>
       <?php
       //Fisierul p-4-2.php echo „<PRE>”; echo „<BR><B>Browser :</B>
       $HTTP_USER_AGENT”; echo „<BR><B>Host :</B> $HTTP_HOST”; echo
       „<BR><B>Referer :</B> $HTTP_REFERER”; echo „<BR><B>Remote Host
       :</B> $HTTP_REMOTE_HOST”; echo „<BR><B>Remote Address :</B>
       $HTTP_REMOTE_ADDR”; echo „<BR><B>Remote Port :</B>
       $HTTP_REMOTE_PORT”; echo „</PRE>”;
       ?>
       2. Orientati un browser Web spre adresa URL a fisierului care
       contine scriptul PHP. La executarea scriptului de prelucrare,
       acesta afiseaza valorile variabilelor de mediu, asa cum se poate
       vedea in ilustratia urmatoare.
       <figura> Proiect 4-2 - Miciosoft Internet Explorer
       Browser :Mozilla/4.0 (conpatible; MSIE 5.0; Windows 98; DigExt)
       Host : osborne.com
       Referer : http: / / osborne.com/Ibmccarty/php/module-04/
       Remote Host : client.isp.net
       Remote Address : 198.45.24.130
       Remote Port : 24203</figura>
       <Test de evaluare>
       1. Care este variabila PHP ce trebuie folosita pentru a obtine
       accesul la datele asociate unui control definit de eticheta HTML
       <INPUT TYPE="TEXT" NAME="culoare">?
       2. Scrieti o instructiune PHP care trimite browserului valoarea
       variabilei $x.
       3. Scrieti o instructiune PHP care trimite browserului numele
       variabilei $y.
       4. Scrieti o instructiune PHP care trimite browserului adresa
       URL a paginii care face referire la pagina curenta.
       *****************************************************
       Page 1 of 1