CATEGORII DOCUMENTE |
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 |
Vizualizari: 1159
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved