Главная Свежие Последние Лучшие Контактная информация  
 
 


Справочник языка » Переменные: Переменные вне PHP
HTML-формы (GET и POST)
Когда форма отправляется в PHP-скрипт, любые переменные этой формы автоматически делаются доступными скрипту PHP. Если опция конфигурации track_vars включена/on, то эти переменные будут находиться в ассоциативных массивах $_POST, $_GET и/или $_FILES, в соответствии с источником переменной в вопросе.

Дополнительно об этих переменных см. Предопределённые переменные.

Пример 7-1. Простая переменная формы
<form action="foo.php" method="post">
Name: <input type="text" name="username"><br>
<input type="submit">
</form>



Когда такая форма отправляется на сервер, значение из поля ввода text будет доступно в $_POST['username']. Если директива конфигурации register_globals включена/on, то эта переменная будет также доступна как $username в глобальной области видимости.

Примечание: директива конфигурации magic_quotes_gpc действует на значения Get, Post и Cookie. Если она включена, значение (It's "PHP!") автоматически становится (It\'s \"PHP!\"). Мнемонизирование необходимо для вставки в БД. См. также addslashes(), stripslashes() и magic_quotes_sybase.

PHP также понимает массивы в контексте переменных формы (см. соответствующий faq). Вы можете, например, сгруппировать взаимосвязанные переменные или использовать эту возможность для запроса значений из списка множественного выбора select:

Пример 7-2. Более сложные переменные формы
<form action="array.php" method="post">
Name: <input type="text" name="personal[name]"><br>
Email: <input type="text" name="personal[email]"><br>
Beer: <br>
<select multiple name="beer[]">
<option value="warthog">Warthog
<option value="guinness">Guinness
<option value="stuttgarter">Stuttgarter Schwabenbr&#228;u
</select>
<input type="submit">
</form>



В PHP 3 использование переменной массива формы ограничено одномерными массивами. В PHP 4 таких ограничений нет.

Имена переменных при отправке изображения
При отправке формы возможно использование изображения/image вместо стандартной кнопки submit с помощью тэга такого вида:

<input type="image" src="image.gif" name="sub">


Когда пользователь щёлкает в каком-либо месте изображения, соответствующая форма передаётся на сервер с двумя дополнительными переменными: sub_x и sub_y. Они содержат координаты щелчка. Опытные программисты могут заметить, что фактические имена переменных, отправляемые браузером, содержат точку, а не символ подчёркивания, но PHP конвертирует точку в символ подчёркивания автоматически.

Куки HTTP
PHP прозрачно поддерживает куки HTTP, как определено в Netscape's Spec. Куки это механизм хранения данных на удалённом браузере и отслеживания или идентификации с их помощью ответов пользователя. Вы можете устанавливать куки функцией setcookie(). Куки являются частью HTTP-шапки/header, поэтому функция SetCookie обязана вызываться до любого вывода, высылаемого браузеру. Это такое же ограничение, как и для функции header(). Любые куки, высылаемые вам с этого клиента, автоматически конвертируются в PHP-переменную точно так же, как и GET и POST-данные.

Если вы хотите присвоить несколько значений одной куке, просто добавьте [] в имя куки. Например:

setcookie("MyCookie[]", "Testing", time()+3600);


Обратите внимание, что эта кука/cookie замещает предыдущую куку с тем же именем, если только path или domain не отличаются. Так, для приложения shopping cart вы можете захотеть сохранить счётчик/counter и передать его. То есть:

Пример 7-3. SetCookie
$Count++;
setcookie("Count", $Count, time()+3600);
setcookie("Cart[$Count]", $item, time()+3600);



Переменные окружения
PHP автоматически делает переменные окружения доступными как нормальные переменные PHP.

echo $HOME; /* Показывает переменную окружения HOME, если она установлена. */


Поскольку информация, приходящая через механизмы GET, POST и Cookie, также автоматически создаёт переменные PHP, иногда бывает лучше явно считывать переменную из окружения, чтобы гарантировать получение правильной версии. Функция getenv() может использоваться для этого. Вы можете также установить переменную окружения функцией putenv().

Точки в именах входящих переменных
Обычно PHP не изменяет имена переменных при передаче их скрипту. Однако нужно отметить, что точка (dot, period, full stop) не является правильным символом в имени PHP-переменной. Посмотрим на такое имя:

$varname.ext; /* неправильное имя переменной */


Разборщик видит теперь имя переменной $varname, за которым идёт операция конкатенации строк, а затем идёт голая строка (т.е. строка без кавычек, которая не совпадает ни с одним известным ключевым или зарезервированным словом) 'ext'. Очевидно, это не тот результат, который ожидался.

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

Определение типов переменных
Поскольку PHP определяет типы переменных и конвертирует их (обычно) так, как нужно, не всегда бывает очевидно, какой тип имеет данная переменная в данное время. PHP имеет несколько функций, которые определяют тип переменной. Это gettype(), is_array(), is_float(), is_int(), is_object() и is_string().

Добавить в закладки:

 

теги: переменные
 

  Еще статьи
Массивы: array_intersect 168
array_chunk 74
bzread 174
Массивы: current 178
Календарь: JDToFrench 175
 


  Категории
Начнем 13
Справочник языка 89
Возможности 12
Функции 142
Расширение PHP 4.0 0
FAQ 0
 

  Теги
 

  Лучшее на сайте
Безопасность: Скрытие PHP 472
Что такое PHP? 446
Безопасность: Данные, отправляемые пользователем 373
foreach 354
Безопасность: Безопасность баз данных 333
Файл конфигурации 332
Операции: Строковые операции 310
Безопасность: CGI-двоичный 305
Безопасность: Безопасность файловой системы 297
Безопасность: Обзор 291
 

  Друзья сайта
иглоукалывание
ленком билеты, ленком театр
раскрутка веб сайта, продвижение web сайтов
лаки, краски для ремонта
регулятор напряжения, преобразователь частоты, умный дом
закаленное Охранное агентство большой опыт
кормовозы, цементовозы, муковозы, автоцементовозы
обслуживание компьютеров поможет малому бизнесу стать средним. officeconnect.ru
 

  Интересное
 

 
Использование материалов только при активной гиперссылке "http://iamcoder.net"
Copyright 2008 http://iamcoder.net Серия сайтов: "Стань умным!".