Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Accesul la date - PHP

php



+ Font mai mare | - Font mai mic



Accesul la date - PHP

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 utilizator, 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 tabloului 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. Constructia 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 asemenea 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 operatorul 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 modalitate 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 configurare 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 programatorii 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 asemanator celui prezentat in ilustratia urmatoare. 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, comenzile 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. Numeroase 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 programele 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 documente 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 tabelul 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 : https: / / 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.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1149
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved