Разлика между версии на „Променлива на средата“

От Администрация и управление
Направо към навигацията Направо към търсенето
(Нова страница: Променливите на средата (environment variables) представляват динамични стойности, които засягат работ...)
 
 
(Не са показани 5 междинни версии от същия потребител)
Ред 1: Ред 1:
Променливите на средата (environment variables) представляват динамични стойности, които засягат работещите процеси в една операционна система.
+
'''Променливите на средата''' (environment variables) представляват '''динамични стойности, които засягат работещите процеси в една операционна система'''.
 +
==Същност==
 +
Съществува един особен вид променливи, наричани "променливи на обкръжението". Най-общо казано, това са променливи, поддържани от [[сървър]]а и PHP [[интерпретатор]]а, описващи текущото състояние на връзката и характеристиките на двете страни в нея - клиент и сървър.
 +
Двете промливи - $HTTP_USER_AGENT и $HTTP_REFERER, помагат да се открие с какъв браузър посетителят разглежда страницата и от къде е дошъл на нея.
 +
Събирането и анализирането на подобни данни е безкрайно полезно за всеки web разработчик. Така можете да научите кой [[сайт]] ви праща най-много посетители и да организирате рекламната си стратегия, наблягайки на него. Полезно е също и да следите кои от страниците в сайта ви се посещават повече и предизвикват по-голям интерес, така че да наблегнете на тях и на подобен вид [[съдържание]] в по-нататъчното изграждане на сайта.
 +
==Пример==
 +
Пълен преглед на променливите на средадата може да видите, използвайки вградената в PHP [[функция]] - phpinfo(). Напишете в текстов файл следните редове :
 +
 
 +
<?
 +
 
 +
phpinfo();
 +
 
 +
?>
 +
 
 +
Запишете го на сървъра с име info.php, примерно, и го отворете в браузъра си. Ще видите най-важната информация за PHP инсталацията, както и всички създадени в текущата връзка променливи на [[външна среда|среда]]та на PHP и сървъра. Изписаното в левите [[поле]]та на [[таблица]]та представляват имената на променливите, а в дясната част - [[стойност]]ите им.
 +
Нека сега разширим [[пример]]а и добавим още малко [[информация]] в него.
 +
 
 +
[[file:psr.png]]
 +
 
 +
Нека сега обясним отделните редове в него. Нямаше нужда да използвам променливите $browser, $ref, $user_ip, $forw, $serv и $rem_host, но ги включих за по-голяма прегледност. Всяка от тях получи за стойност стойността на някоя от променливите на средата.
 +
 
 +
На променливата с име "browser" бе присвоена стойността на $HTTP_USER_AGENT, която винаги съдържа идентификационната информация на браузъра. Браузърът Opera позволява на потребителите си да променят [[идентификация]]та й, така че тя може да се представя като IE или Netscape. Причината е в рестрикциите, които някои сайтове налагат на използващите [[браузър]], различен от Internet Expolorer. Обикновено това също става с помощтта на $HTTP_USER_AGENT. Имайки предвид особеностите на различните браузъри, можете да покажете на посетителя на сайта си страница, оптимизирана за неговата програма, съдейки по съдържанието на тази променлива на средата. В скоби казано, възможността на Opera да се представя по различен начин може да ви изправи пред куриозната информация, че посетителят използва IE под [[операционна система]] Linux.
 +
 
 +
На променливата с име "ref" бе присвоена стойността на $HTTP_REFERER, съдържаща URL на мястото, от което идва посетителят. Вече обяснихме по-подрбоно тази променлива, но трябва да имате предвид, че тя не винаги дава полезна информация. В конкретния случай едва ли мога да очаквам, че Yahoo са поставили на началната си страница [[линк]] към моя тестов файл.
 +
 
 +
Променливата, наименувана "user_ip" получи стойността на променливата на средата $REMOTE_ADDR. Тя винаги съдържа в себе си IP адреса на посетителя. Тук много рядко може да се получи разминаване на стойността с истинската. Защото сървърът използва стойността й за да определи на кого да изпрати поискания файл.
 +
 
 +
Много често се случва множество потребители да се намират зад едно или повече прокси сървъри. Няма да коментираме сега защо и как се получва това. В случая трябва да имаме предвид, че ако посетителят е зад прокси, то $REMOTE_ADDR ще покаже IP адреса на проксито. За адреса на клиентската [[машина]] се създава нова променлива - $HTTP_X_FORWARDED_FOR. Повечето прокси сървъри осигуряват тази информация, особено ако [[администратор]]ите им не желаят да изкарат живота си по съдебните зали.
 +
Използването на последните две описани променливи на средата е полезно, когато давате достъп до чувствителна информация или по една или друга причина е важно да знаете кой точно е отсреща. Така можете да ограничите достъпа до сайта си на хора, които нарушават добрия тон в него или да подсигурите сигурността му при e-commerce приложения.
 +
 
 +
Тук използвахме и още една променлива на [[външна среда|среда]]та - $SERVER_SOFTWARE, която съдържа в себе си информация за сървърния софтуер - версия на сървъра и операционна система. В горния пример използвахме това, като "подпис" на [[съобщение]]то.
 +
 
 +
==Вижте още==
 +
*[[Компютър]]
 +
*[[Анализ]]
 +
*[[ASCII]]
 +
*[[Бит]]
 +
*[[Двоичен код]]
 +
*[[Променлива в програмирането]]
 +
 
 +
==Източници==
 +
*[http://itplace.info/index.php?p=view_tutorial&id=73 Видове променливи]
 +
==Външни препратки==
 +
* [http://www.creativeideas.bg/odit.html Одит на сайт]
 +
* [http://www.mms-bg.com/context.php Контексна реклама]
 +
* [http://www.sciencedaily.com/articles/c/computer_simulation.htm Simulation]
 +
* [http://www.wisegeek.com/what-is-computer-simulation.htm What is C.S.]
 +
* [http://www.britannica.com/EBchecked/topic/130683/computer-simulation Computer simulation]
 +
[[category:Информатика]]

Текуща версия към 10:23, 1 април 2014

Променливите на средата (environment variables) представляват динамични стойности, които засягат работещите процеси в една операционна система.

Същност

Съществува един особен вид променливи, наричани "променливи на обкръжението". Най-общо казано, това са променливи, поддържани от сървъра и PHP интерпретатора, описващи текущото състояние на връзката и характеристиките на двете страни в нея - клиент и сървър. Двете промливи - $HTTP_USER_AGENT и $HTTP_REFERER, помагат да се открие с какъв браузър посетителят разглежда страницата и от къде е дошъл на нея. Събирането и анализирането на подобни данни е безкрайно полезно за всеки web разработчик. Така можете да научите кой сайт ви праща най-много посетители и да организирате рекламната си стратегия, наблягайки на него. Полезно е също и да следите кои от страниците в сайта ви се посещават повече и предизвикват по-голям интерес, така че да наблегнете на тях и на подобен вид съдържание в по-нататъчното изграждане на сайта.

Пример

Пълен преглед на променливите на средадата може да видите, използвайки вградената в PHP функция - phpinfo(). Напишете в текстов файл следните редове :

<?

phpinfo();

?>

Запишете го на сървъра с име info.php, примерно, и го отворете в браузъра си. Ще видите най-важната информация за PHP инсталацията, както и всички създадени в текущата връзка променливи на средата на PHP и сървъра. Изписаното в левите полета на таблицата представляват имената на променливите, а в дясната част - стойностите им. Нека сега разширим примера и добавим още малко информация в него.

Psr.png

Нека сега обясним отделните редове в него. Нямаше нужда да използвам променливите $browser, $ref, $user_ip, $forw, $serv и $rem_host, но ги включих за по-голяма прегледност. Всяка от тях получи за стойност стойността на някоя от променливите на средата.

На променливата с име "browser" бе присвоена стойността на $HTTP_USER_AGENT, която винаги съдържа идентификационната информация на браузъра. Браузърът Opera позволява на потребителите си да променят идентификацията й, така че тя може да се представя като IE или Netscape. Причината е в рестрикциите, които някои сайтове налагат на използващите браузър, различен от Internet Expolorer. Обикновено това също става с помощтта на $HTTP_USER_AGENT. Имайки предвид особеностите на различните браузъри, можете да покажете на посетителя на сайта си страница, оптимизирана за неговата програма, съдейки по съдържанието на тази променлива на средата. В скоби казано, възможността на Opera да се представя по различен начин може да ви изправи пред куриозната информация, че посетителят използва IE под операционна система Linux.

На променливата с име "ref" бе присвоена стойността на $HTTP_REFERER, съдържаща URL на мястото, от което идва посетителят. Вече обяснихме по-подрбоно тази променлива, но трябва да имате предвид, че тя не винаги дава полезна информация. В конкретния случай едва ли мога да очаквам, че Yahoo са поставили на началната си страница линк към моя тестов файл.

Променливата, наименувана "user_ip" получи стойността на променливата на средата $REMOTE_ADDR. Тя винаги съдържа в себе си IP адреса на посетителя. Тук много рядко може да се получи разминаване на стойността с истинската. Защото сървърът използва стойността й за да определи на кого да изпрати поискания файл.

Много често се случва множество потребители да се намират зад едно или повече прокси сървъри. Няма да коментираме сега защо и как се получва това. В случая трябва да имаме предвид, че ако посетителят е зад прокси, то $REMOTE_ADDR ще покаже IP адреса на проксито. За адреса на клиентската машина се създава нова променлива - $HTTP_X_FORWARDED_FOR. Повечето прокси сървъри осигуряват тази информация, особено ако администраторите им не желаят да изкарат живота си по съдебните зали. Използването на последните две описани променливи на средата е полезно, когато давате достъп до чувствителна информация или по една или друга причина е важно да знаете кой точно е отсреща. Така можете да ограничите достъпа до сайта си на хора, които нарушават добрия тон в него или да подсигурите сигурността му при e-commerce приложения.

Тук използвахме и още една променлива на средата - $SERVER_SOFTWARE, която съдържа в себе си информация за сървърния софтуер - версия на сървъра и операционна система. В горния пример използвахме това, като "подпис" на съобщението.

Вижте още

Източници

Външни препратки