Суперглобальные переменные

Алтернативная запись циклов - это альтернативный синтаксис для некоторых его управляющих структур, а именно: if, while, for, foreach и switch.

Суперглобальные переменные

В PHP есть специальные переменные, которые называются суперглобальными, они обеспечивают удобный способ доступа к информации об окружении сценария - от настроек сервера до введенных пользователем данных.

Суперглобальные переменные - являются встроенными переменными, которые всегда доступны во всех областях видимости.

Стоит отметить, что суперглобальные переменные определены как массивы. Ниже представлен полный список суперглобальных переменных:

Имя переменнойОписание
$GLOBALSСодержит все глобальные переменные, доступные локальному сценарию. Имена переменных используются в качестве индексов массива.
$_SERVERСодержит информацию об окружении веб-сервера.
$_GETСодержит информацию о запросах GET (при отправке форм). Эти значения следует обязательно проверять перед использованием.
$_POSTСодержит информацию о запросах POST (другой тип отправки данных формы). Эти значения следует обязательно проверять перед использованием.
$_FILESСодержит информацию о файлах, загружаемых методом POST.
$_COOKIEСодержит информацию о cookies HTTP.
$_SESSIONСодержит информацию из всех переменных, зарегистрированных в рамках сессии.
$_REQUESTСодержит информацию о пользовательском вводе. Эти значения следует обязательно проверять перед использованием. Вместо этого массива следует использовать $_GET или $_POST, т.к. они более специализированные.
$_ENVСодержит информацию об окружении сценариев.

$GLOBALS

Ассоциативный массив (array), содержащий ссылки на все переменные глобальной области видимости скрипта, определенные в данный момент. Имена переменных являются ключами массива.

				
	$x = 2;
	function my_func() {
		echo $_GLOBAL["x"]++ // инкрементирование глобальной переменной 
	}
				
			
См. sample1.html, sample1.php

Глобальные переменные

$_SERVER

Переменная $_SERVER - это массив, содержащий информацию, такую как заголовки, пути и местоположения скриптов. Записи в этом массиве создаются веб-сервером. Нет гарантии, что каждый веб-сервер предоставит любую из них; сервер может опустить некоторые из них или предоставить другие, не указанные здесь.

Ниже приведён пример некоторых индексов $_SERVER

HTTP_USER_AGENT
Эта строка содержит обозначение браузера, которым пользователь запросил данную страницу. Вы можете использовать это значение с функцией get_browser() чтобы адаптировать вывод вашей страницы к возможностям браузера пользователя
REMOTE_ADDR
IP-адрес, с которого пользователь просматривает текущую страницу.
SERVER_ADDR
IP адрес сервера, на котором выполняется текущий скрипт.
PHP_SELF
Имя файла скрипта, который сейчас выполняется, относительно корня документов. Например, $_SERVER['PHP_SELF'] в скрипте по адресу http://example.com/foo/bar.php будет /foo/bar.php.
HTTP_REFERER
Адрес страницы (если есть), которая привела браузер пользователя на эту страницу. Этот заголовок устанавливается веб-браузером пользователя. Не все браузеры устанавливают его и некоторые в качестве дополнительной возможности позволяют изменять содержимое заголовка HTTP_REFERER. Одним словом, в самом деле ему нельзя доверять.
См. sample2.php

Информация о клиенте

$_GET

Ассоциативный массив параметров, переданных скрипту через URL.

				
echo $_GET["name"] // вывод одного из параметров 
				
			
См. sample3.php

Использования метода GET

$_POST

Ассоциативный массив данных, переданных скрипту через HTTP метод POST.

				
echo $_POST["name"] // вывод одного из параметров 
				
			
См. sample4.php

Использования метода POST

$_FILES

Ассоциативный массив (array) элементов, загруженных в текущий скрипт через метод HTTP POST.

Загрузка файлов методом POST

Страница для загрузки файлов может быть реализована при помощи специальной формы, которая выглядит примерно так:

					
<form action="nameScript.php" method="POST" enctype="multipart/form-data" >
	<input name="userfile" type="file">
	<input type="submit">
</form>
					
				
Следует убедиться, что в атрибутах формы вы указали enctype="multipart/form-data", в противном случае загрузка файлов на сервер выполняться не будет.

$_FILES содержит всю информацию о загруженных файлах. Обратите внимание, что здесь предполагается использование имени userfile для поля выбора файла, как и в приведенном выше примере. На самом деле имя поля может быть любым.

$_FILES['userfile']['name']
Оригинальное имя файла на компьютере клиента.
$_FILES['userfile']['type']
Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif". Этот mime-тип не проверяется в PHP, так что не полагайтесь на его значение без проверки.
$_FILES['userfile']['size']
Размер в байтах принятого файла.
$_FILES['userfile']['tmp_name']
Временное имя, с которым принятый файл был сохранен на сервере.
$_FILES['userfile']['error']
Код ошибки, которая может возникнуть при загрузке файла.

По умолчанию принятые файлы сохраняются на сервере в стандартной временной папке.

Для перемещения загруженого файла в новое место используется функция move_uploaded_file().

					
bool move_uploaded_file ( string $filename , string $destination );
					
				

Эта функция проверяет, является ли файл filename загруженным на сервер (переданным по протоколу HTTP POST). Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе destination.

См. sample5-7.html

Загрузка файла пример 1
Загрузка файла пример 2
Загрузка файла пример 3

$_COOKIE

Ассоциативный массив (array) значений, переданных скрипту через HTTP cookies.

Cookies - это механизм хранения данных браузером удаленной машины для отслеживания или идентификации возвращающихся посетителей.

Для установки сookies используется функция setcookie(). Для этой функции можно указать шесть параметров, один из которых является обязательным:

См. sample8-11.html

Работа с $_COOKIES пример 1
Работа с $_COOKIES пример 2
Работа с $_COOKIES пример 3
Работа с $_COOKIES пример 4

$_SESSION

Ассоциативный массив, содержащий переменные сессии, которые доступны для текущего скрипта.

Сессии PHP представляют собой различные способы сохранения данных для дальнейшего доступа к ним. Они позволяют создавать более гибкие приложения и улучшают привлекательность вашего сайта. Подробная информация находится в справочнике сессий.

Поддержка сессий в PHP заключается в способе сохранения некоторых данных между несколькими последовательными доступами к веб-сайту.

Работа с сессиями в PHP

$_REQUEST

Ассоциативный массив (array), который по умолчанию содержит данные переменных $_GET, $_POST и $_COOKIE.

$_ENV

Ассоциативный массив (array) значений, переданных скрипту через переменные окружения.

Эти значения импортируются в глобальное пространство имен PHP из системных переменных окружения, в котором запущен парсер PHP. Большинство значений передаётся из командной оболочки, под которой PHP запущен, и различных системных приложений, полного и точного списка не существует. Пожалуйста, изучите документацию к вашей командной оболочке для получения списка переменных окружения.