Пример обращения к «супер-глобальным» массивам PHP, получение информации о клиенте и сервере.
#получаем ip-адрес посетителя который пытается помотреть страницу.
$ip=getenv('REMOTE_ADDR');
echo 'IP: '.$ip.' ';
#узнаем каким браузером пытаются посмотреть страницу
$browser=getenv('HTTP_USER_AGENT');
echo 'BROWSER: '.$browser.' ';
#узнаем как называется наш скрипт
$name=$_SERVER['PHP_SELF'];
echo 'Название скрипта: '.$name.' ';
#Узнаем на каком сервере выполняется скрипт
$host=$_SERVER['SERVER_NAME'];
echo 'SERVER: '.$host.' ';
#смотрим какие вообще доступны элементы супер-глобального массива $_SERVER
echo '
';
print_r($_SERVER);
echo '
';
?>
Наглядно видно, что в PHP максимально упрошено получение всевозможных данных как о пользователе, который пытается выполнить скрипт, так и о сервере на котором этот скрипт выполняется. Когда это может быть полезно:
таким данным можно писать скрипты, которые не будут жестко привязаны к определенному серверу. Достаточно лишь формировать html-ссылки используя данные из супер-глобальных массивов.
имея такой простой доступ можно, во-первых, собирать полню статистику о посетителях сайта либо разграничивать доступ к определенным частям сайта, используя данные из тех же массивов.
Как видно получать данные можно и не через сами супер-глобальные массивы, а через специальные функции. Это полезно при обработке ошибок при обращении к несуществующему элементу сами супер-глобального массива.
PHP пример #2 - работа с HTTP протоколом.
Пример использования функций PHP работы с протоколом HTTP.
#Перенаправит пользователя на http://php.net при условии, что ip клиента не равен 127.0.0.1
#в противном случае выведет текущий IP, т.е. 127.0.0.1
else echo 'IP: '.$_SERVER['REMOTE_ADDR'].' ';
?>
Этот пример хорошо иллюстрирует работу с заголовками HTTP. Когда это может быть полезно:
в заголовках передаются очень важные данные. Простой пример - вы хотите генерировать средствами PHP изображения в формате GIF, тогда прежде чем выводить непосредственно изображение нужно изменить заголовок HTTP Content-type (по умолчанию он равен text/html) на «image/gif». Для изображений в формате JPEG, например, этот заголовок должен быть равен «image/jpeg».
использовать заголовки можно для перенаправления пользователя на другие страницы, сайты и прочие ресурсы.
Контроль над заголовками HTTP сильно расширяет возможности PHP. Благодаря такой возможности становится возможным создавать не только динамические страницы сайтов, но и динамические изображения, динамические архивы и т.д.
PHP пример #3 - почтовые функции.
Этот пример показывает насколько просто отослать e-mail сообщение средствами PHP.
mail(' iprit@phpwars.net', 'Тема сообщения', 'Привет! Как жЫcь в целом!');
?>
Да, да. Всего одна строчка. Одна функция. Краткость сестра таланта. Думаю, и так понятно, какие возможности дает отправка «мыла». Это и всевозможные уведомления кого угодно о чем угодно, это и продвинутая регистрация пользователей с подтверждением по e-mail. Так с ходу и не пересказать все открывающиеся возможности. Тут у кого, на что фантазии хватит. Кстати с помощью PHP можно не только отправлять письма, но и отправлять (не намного более сложным способом).