П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 187277 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 89794 раз(а).

Учебник HTML.
Просмотров 80471 раз(а).

Руководство по PHP5.
Просмотров 50860 раз(а).

Хостинг через призму DNS.
Просмотров 58744 раз(а).

Подборка текстов стандартных документов.
Просмотров 49670 раз(а).

Учебник PHP - Самоучитель
Просмотров 56971 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 58255 раз(а).

Внешние атаки...
Просмотров 47637 раз(а).

Учебник PHP.
Просмотров 41608 раз(а).

SSI в примерах.
Просмотров 31887 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Учебник РНР
Назад Глава 7. Переменные Вперёд

Переменные вне 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ä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().


Назад Оглавление Вперёд
Переменные имена переменных ВверхКонстанты


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru