![]() |
|
||||||||||||||
|
|
|
Просмотреть содержимое всех масивов можно в результате вызова функции phpinfo(). Рассмотрим примеры использования глобальных массивов. $_SERVERС помощью этого массива можно узнать практически всё о сервере, на котором исполняется скрипт. Например:
<?php
echo 'параметры сервера:' . "<br />\n";
echo "Операционная система: " .
$_SERVER["OS"] . "<br />\n";
echo "Web-сервер: " .
$_SERVER["SERVER_SOFTWARE"] . "<br />\n";
echo "Имя сервера: " .
$_SERVER["SERVER_NAME"] . "<br />\n";
echo "Адрес сервера: " .
$_SERVER["SERVER_ADDR"] . "<br />\n";
echo "Порт сервера: " .
$_SERVER["SERVER_PORT"] . "<br />\n";
echo "Адрес клиента: " .
$_SERVER["REMOTE_ADDR"] . "<br />\n";
echo "Путь к документам на сервере: " .
$_SERVER["DOCUMENT_ROOT"] . "<br />\n";
echo "Полный путь к текущему скрипту: " .
$_SERVER["SCRIPT_FILENAME"] . "<br />\n";
echo "Имя текущего скрипта: " .
$_SERVER["PHP_SELF"] . "<br />\n";
?>
Пользоваться этим массивом нужно аккуратно, т.к. некоторые сервера имеют достаточно специфичные настройки или значения параметров. Иногда это приводит к неприятным ошибкам, которые к тому же очень сложно диагностировать и исправить. Например, параметры $_SERVER["REQUEST_URI"] и $_SERVER["SCRIPT_NAME"] могут быть не установлены (хотя один из них как правило присутствует). $_GET и $_POSTВ эти массивы помещаются данные, передаваемые скрипту извне (так называемый, пользовательский ввод). В принципе, пользователь может влиять только на эти два массива плюс массив файлов и cookie. И именно поэтому все элементы этих массивов должны тщательно проверяться на допустимые значения. Например, если пользователь ввёл в строку адреса браузера адрес "http://localhost/index.php?name=Dmitry&fam=Medvedev&jt=president&country=Russia", то массив $_GET надо будет обрабатывать так:
<?php
/*
Предполагаем, что массив $_GET должен
содержать следующие элемены
$_GET['name'] = "Dmitry";
$_GET['fam'] = "Medvedev";
$_GET['jt'] = "president";
$_GET['country'] = "Russia";
*/
// Теперь проверим наличие данных,
// а для недостающих - возьмём пустую строку
$name = (isset($_GET['name']))?
$_GET['name']:' не указано ';
$fam = (isset($_GET['fam']))?
$_GET['fam']:' не указано ';
$jt = (isset($_GET['jt']))?
$_GET['jt']:' не указано ';
$country = (isset($_GET['country']))?
$_GET['country']:' не указано ';
echo "Страна: $country <br />\n";
echo "Фамилия: $fam <br />\n";
echo "Имя: $name <br />\n";
echo "Должность: $jt <br />\n";
?>
Этот скрипт будет устойчиво работать при любом GET-запросе, даже если не будет указан ни один параметр. Если используется метод POST, то достаточно заменить $_GET на $_POST. А если вам совершенно не важно, откуда получены данные - воспользуйтесь массивом $_REQUEST (см. ниже). При работе с пользовательским вводом есть одно правило: Никогда не доверяйте данным, получаемым извне. Всё, что пользователь может изменить, неправильно написать или не ввести - он однажды изменит, напишет или не введет. Намеренно или случайно - это уже другой вопрос. Но в любом случае, все вводимые данные должны проверяться и перепроверяться. Однажды написанная процедура проверки данных избавит вас от множества проблем и лишней работы по установке и отладке. $_COOKIESВ массив $_COOKIES автоматически помещаются все cookies, которые получены от браузера. Механизм cookies мы подробно рассмотрим в соответствующем уроке. А пока вам достаточно запомнить, что есть глобальный массив, из которого в любое время можно узнать какие cookies установлены на стороне клиента. $_REQUESTМассив $_REQUEST объединяет три массива: $_POST, $_GET, $_COOKIES. В ранних версиях PHP сюда же входил массив $_FILES, но из соображений безопасности и производительности его исключили. Пользоваться массивом $_REQUEST очень удобно в случаях, когда нет разницы, каким методом был сделан запрос. Например, при постраничном выводе данных номер страницы можно передавать через URL ("index.php?page=3") методом GET, а можно через элемент формы методом POST. И в том и в другом случае переменная page попадёт в массив $_REQUEST. $_SESSIONПредназначение массива $_SESSION - хранение всех переменных сессии текущего пользователя. Мы подробно рассмотрим механизм сессий в соответствующем уроке. Глобальные массивы очень удобны в работе, но злоупортеблять ими не стоит, особенно массивом $_SESSION. Если переменной нужна только в локальной области видимости - не надо её делать глобальной. Слишком большое количество "лишних" переменных сильно снижает быстродействие и эффективность скрипта. |
|
|
Спасибо, что заглянули на сайт. Надеюсь, Вам понравилось. Заходите еще. Здесь всегда рады вам :) |
|
© 2005-2012 |
E-mail: |