[Tutorial PHP]Variabile de mediu si erori
Scris: Dum Dec 29, 2013 9:56 pm
Nume Tutorial:Variabile de mediu si erori
Descriere:Variabile de mediu si erori
Download:
Autor:
Sursa (Link-ul oficial):
Propria parere:Enjoy!
Tutorialul:
1. Obtinerea si utilizarea datelor de la o variabila 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 in functie de acestea îsi pot ajusta comportamentul.
De exemplu, calea de cautare a programelor MS-DOS este stocata într-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.
Atât serverul Web Apache, cât 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 în tabelul de mai jos. Numeroase servere Web, altele decât 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.
Vizualizarea datelor unei variabile de mediu se poate face folosind variabila $_SERVER si o cheie (intre paranteze patrate) ce repreinta numele variabilei de mediu.
De exemplu, pt. afisarea domeniului serverului unde ruleaza scriptul
echo $_SERVER['SERVER_NAME'];
- O lista completa a acestor variabile de mediu o gasiti la pagina oficiala $_SERVER
Puteti obtine accesul la variabila de mediu folosind variabila $_SERVER care este de fapt un Array in care cheile elementelor sunt numele variabilelor de mediu
De exemplu, urmatoarea instructiune echo trimite browserului adresa IP a clientului (vizitatorului):
2. Depanarea unui script
Uneori, în locul datelor de iesire ale scriptului dumneavoastra, puteti vedea unul din urmatoarele:
Textul scriptului, în loc de datele de iesire ale acestuia
O caseta de dialog, prin care sunteti întrebat daca doriti sa descarcati fisierul care contine scriptul
Un mesaj în care se spune ca scriptul nu exista
Un mesaj în care se spune ca browserul dumneavoastra Web nu are permisiunea de a obtine accesul la script
Un mesaj în care se spune ca scriptul dumneavoastra contine o eroare
La vizualizarea rezultatelor unui script PHP se pot produce numeroase erori, chiar daca scriptul în sine este corect.
- Daca vedeti textul scriptului dumneavoastra sau o caseta de dialog prin care sunteti întrebat daca doriti sa descarcati fisierul care contine scriptul, este posibil ca extensia fisierului script sa fie incorecta sau ca serverul PHP sa nu functioneze. Desi fisierele script PHP trebuie sa aiba, în general, extensia .php, este posibil (dar mai rar) ca un administrator de sistem sa configureze un server PHP astfel încât acesta sa impuna o alta extensie de fisier. Astfel, daca scriptul dumneavoastra esueaza din unul dintre aceste doua motive, luati legatura cu administratorul dumneavoastra de sistem.
- Daca vedeti un mesaj în care se spune ca scriptul nu exista, este posibil ca dumneavoastra sa fi tastat incorect adresa URL. Verificati daca ati tastat corect adresa URL identificata de administratorul dumneavoastra de sistem, precum si daca ati atasat corect la aceasta numele fisierului care contine scriptul, folosind un slash numai daca adresa URL identificata de administratorul dumneavoastra de sistem nu se încheie cu acest caracter.
- Daca vedeti un mesaj în care se arata ca browserul dumneavoastra Web nu are permisiunea de a obtine accesul la script, poate ca este necesar sa modificati permisiunile fisierului script. Pentru a afla cum trebuie procedat, consultati-va cu administratorul de sistem.
- Daca vedeti un mesaj în care se spune ca scriptul dumneavoastra contine o eroare, verificati daca nu a aparut vreuna din urmatoarele probleme:
O eroare de tastare, cum ar fi scrierea gresita a cuvântului echo
O eroare de punctuatie, cum ar fi paranteze, ghilimele sau punct si virgula, lipsa sau inserate gresit
Neincluderea sau includerea eronata a liniilor de delimitare a scriptului, în speta <?php si ?>
Un marcaj de comentariu ( / / ) care lipseste sau care a fost introdus gresit
De exemplu, iata un script care contine un tip de eroare frecvent întâlnit. Puteti identifica eroarea?
<?php
// Acest script contine o eroare de sintaxa
echo "Salut, World Wide Web!;
?>
Din script lipseste caracterul ghilimele duble de închidere, care trebuie sa delimiteze expresia de tip text. Daca încercati sa executati acest script, puteti vedea doar o pagina goala sau o eroare similara celei prezentate în continuare.
Parse error. Parse error in /home/bmccarty/public_html/php/module-01/syntax-error.php On line 7
Mesajul de eroare încearca sa va indice sursa erorii, indicând numarul liniei la care s-a produs eroarea. Totusi, remarcati ca mesajul va îndruma spre linia 7 a unui script care contine numai 4 linii. Din moment ce ghilimelele duble de închidere lipsesc, serverul PHP cauta dincolo de sfârsitul scriptului pentru a gasi ghilimelele duble respective. Ca atare, serverul PHP este oarecum derutat cu privire la sursa erorii.
Morala este aceea ca nu puteti conta în totalitate pe serverul PHP pentru a determina locatia erorii; folositi numarul de linie furnizat de server numai ca îndrumar pentru a depista locatia probabila a erorii.
3. Tratarea erorilor
Modulul PHP poate fi configurat astfel incat sa afiseze erorile intilnite in codul PHP. Acest lucru poate fi foarte util in cazul depanarii programelor. Pentru a activa afisarea erorilor exista doua metode:
- modificarea parametrului display_errors din fisierul de configurare "php.ini"
- folosirea functiei ini_set(‘display_errors’);
In cazul primei metode trebuie sa avem drepturi de administrator pentru a modifica fisierul php.ini. Nu se recomanda setarea parametrului display_errors la valoarea 1(TRUE) in cazul site-urilor de productie; mesajele de eroare afisate nu sint folositoare utilizatorului. Pe de alta parte aceasta ar contribui la marirea riscului unui atac.
A doua metoda consta in folositrea functiei ini_set, care permite unui script sa redefineasca temporar un parametru din fisierul de configurare php.ini.
Consideram un exemplu de cod in care intentionat incercam sa citim variabile care nu exista:
In exemplul de mai sus daca variabila cu nume: "var" nu exista PHP va afisa un mesaj de eroare de genul:
Notice: Undefined variable: var
Putem determina tipurile de erori pe care le semnaleaza PHP folosind functia: error_reporting(). Aceasta preia o constanta care specifica nivelul la care se afiseaza erorile.
error_reporting(E_ALL) - semnaleaza toate tipurile de erori
error_reporting(E_ALL & ~E_NOTICE) - semnaleaza toate erorile in afara de anunturi
error_reporting(0) - dezactiveaza acesta caracteristica.
Exemplu:[/color][/b]
Descriere:Variabile de mediu si erori
Download:
Autor:
Sursa (Link-ul oficial):
Propria parere:Enjoy!
Tutorialul:
1. Obtinerea si utilizarea datelor de la o variabila 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 in functie de acestea îsi pot ajusta comportamentul.
De exemplu, calea de cautare a programelor MS-DOS este stocata într-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.
Atât serverul Web Apache, cât 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 în tabelul de mai jos. Numeroase servere Web, altele decât 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.
Vizualizarea datelor unei variabile de mediu se poate face folosind variabila $_SERVER si o cheie (intre paranteze patrate) ce repreinta numele variabilei de mediu.
De exemplu, pt. afisarea domeniului serverului unde ruleaza scriptul
echo $_SERVER['SERVER_NAME'];
- O lista completa a acestor variabile de mediu o gasiti la pagina oficiala $_SERVER
Puteti obtine accesul la variabila de mediu folosind variabila $_SERVER care este de fapt un Array in care cheile elementelor sunt numele variabilelor de mediu
De exemplu, urmatoarea instructiune echo trimite browserului adresa IP a clientului (vizitatorului):
Cod: Selectaţi tot
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo "Adresa dv. IP este $ip";
?>Uneori, în locul datelor de iesire ale scriptului dumneavoastra, puteti vedea unul din urmatoarele:
Textul scriptului, în loc de datele de iesire ale acestuia
O caseta de dialog, prin care sunteti întrebat daca doriti sa descarcati fisierul care contine scriptul
Un mesaj în care se spune ca scriptul nu exista
Un mesaj în care se spune ca browserul dumneavoastra Web nu are permisiunea de a obtine accesul la script
Un mesaj în care se spune ca scriptul dumneavoastra contine o eroare
La vizualizarea rezultatelor unui script PHP se pot produce numeroase erori, chiar daca scriptul în sine este corect.
- Daca vedeti textul scriptului dumneavoastra sau o caseta de dialog prin care sunteti întrebat daca doriti sa descarcati fisierul care contine scriptul, este posibil ca extensia fisierului script sa fie incorecta sau ca serverul PHP sa nu functioneze. Desi fisierele script PHP trebuie sa aiba, în general, extensia .php, este posibil (dar mai rar) ca un administrator de sistem sa configureze un server PHP astfel încât acesta sa impuna o alta extensie de fisier. Astfel, daca scriptul dumneavoastra esueaza din unul dintre aceste doua motive, luati legatura cu administratorul dumneavoastra de sistem.
- Daca vedeti un mesaj în care se spune ca scriptul nu exista, este posibil ca dumneavoastra sa fi tastat incorect adresa URL. Verificati daca ati tastat corect adresa URL identificata de administratorul dumneavoastra de sistem, precum si daca ati atasat corect la aceasta numele fisierului care contine scriptul, folosind un slash numai daca adresa URL identificata de administratorul dumneavoastra de sistem nu se încheie cu acest caracter.
- Daca vedeti un mesaj în care se arata ca browserul dumneavoastra Web nu are permisiunea de a obtine accesul la script, poate ca este necesar sa modificati permisiunile fisierului script. Pentru a afla cum trebuie procedat, consultati-va cu administratorul de sistem.
- Daca vedeti un mesaj în care se spune ca scriptul dumneavoastra contine o eroare, verificati daca nu a aparut vreuna din urmatoarele probleme:
O eroare de tastare, cum ar fi scrierea gresita a cuvântului echo
O eroare de punctuatie, cum ar fi paranteze, ghilimele sau punct si virgula, lipsa sau inserate gresit
Neincluderea sau includerea eronata a liniilor de delimitare a scriptului, în speta <?php si ?>
Un marcaj de comentariu ( / / ) care lipseste sau care a fost introdus gresit
De exemplu, iata un script care contine un tip de eroare frecvent întâlnit. Puteti identifica eroarea?
<?php
// Acest script contine o eroare de sintaxa
echo "Salut, World Wide Web!;
?>
Din script lipseste caracterul ghilimele duble de închidere, care trebuie sa delimiteze expresia de tip text. Daca încercati sa executati acest script, puteti vedea doar o pagina goala sau o eroare similara celei prezentate în continuare.
Parse error. Parse error in /home/bmccarty/public_html/php/module-01/syntax-error.php On line 7
Mesajul de eroare încearca sa va indice sursa erorii, indicând numarul liniei la care s-a produs eroarea. Totusi, remarcati ca mesajul va îndruma spre linia 7 a unui script care contine numai 4 linii. Din moment ce ghilimelele duble de închidere lipsesc, serverul PHP cauta dincolo de sfârsitul scriptului pentru a gasi ghilimelele duble respective. Ca atare, serverul PHP este oarecum derutat cu privire la sursa erorii.
Morala este aceea ca nu puteti conta în totalitate pe serverul PHP pentru a determina locatia erorii; folositi numarul de linie furnizat de server numai ca îndrumar pentru a depista locatia probabila a erorii.
3. Tratarea erorilor
Modulul PHP poate fi configurat astfel incat sa afiseze erorile intilnite in codul PHP. Acest lucru poate fi foarte util in cazul depanarii programelor. Pentru a activa afisarea erorilor exista doua metode:
- modificarea parametrului display_errors din fisierul de configurare "php.ini"
- folosirea functiei ini_set(‘display_errors’);
In cazul primei metode trebuie sa avem drepturi de administrator pentru a modifica fisierul php.ini. Nu se recomanda setarea parametrului display_errors la valoarea 1(TRUE) in cazul site-urilor de productie; mesajele de eroare afisate nu sint folositoare utilizatorului. Pe de alta parte aceasta ar contribui la marirea riscului unui atac.
A doua metoda consta in folositrea functiei ini_set, care permite unui script sa redefineasca temporar un parametru din fisierul de configurare php.ini.
Consideram un exemplu de cod in care intentionat incercam sa citim variabile care nu exista:
Cod: Selectaţi tot
<?php
ini_set('display_errors',1);
echo "Valoarea transmisa este ".$var;
?>Notice: Undefined variable: var
Putem determina tipurile de erori pe care le semnaleaza PHP folosind functia: error_reporting(). Aceasta preia o constanta care specifica nivelul la care se afiseaza erorile.
error_reporting(E_ALL) - semnaleaza toate tipurile de erori
error_reporting(E_ALL & ~E_NOTICE) - semnaleaza toate erorile in afara de anunturi
error_reporting(0) - dezactiveaza acesta caracteristica.
Exemplu:
Cod: Selectaţi tot
<?php
ini_set('display_errors',1);
error_reporting(E_ALL & ~E_NOTICE);
echo "Valoarea transmisa este ".$_GET['orase'];
?>