Передача переменных в PHP
Передача переменных в PHP
Вот сколько работаю с PHP, но никак не могу запомнить конструкции для передачи переменных. Хотя, это и простая вещь. Поэтому, нашёл статью о правилах передачи параметров и выкладываю её в блоге - чтоб всегда можно было и самому восстановить в памяти материал.
Информация взята из сайта: http://lit.jinr.ru/ccic/usersguide/index.php?link=11_
В версии PHP 4.3.1 установлены новые правила формирования глобальных переменных - входных параметров PHP-программы и системных переменных: в целях обеспечения безопасности операционной системы отключен режим автоматического присвоения значений переменным. Для выбора значений необходимо выполнить обращения к соответствующим ассоциативным массивам.
Параметры PHP-программ
Передача параметров PHP-программам может выполняться различными способами:
* при обращении в CGI-режиме из HTML form-объектов c методами передачи get и post;
* при прямом обращении к PHP-программе в URL-строке.
Обработка входных параметров
Обработка входных параметров зависит от типа обращения.
1. Метод get
Пример HTML-страницы:
Пример соответствующей PHP-программы:
$counter=$_GET['counter'];
$id=$_GET['id'];
PRINT "Counter= $counter ID= $id";
?>
2. Метод post
Пример HTML-страницы:
Cоответствующая PHP-программа:
$counter=$_POST['counter'];
$id=$_POST['id'];
PRINT "Counter= $counter ID= $id";
?>
3. Задание параметров в URL-строке
Пример URL-строки:
http://www.jinr.ru/~petrov/php/testphp.php?counter=value1&id=value2
PHP-программа для обработки параметров этой строки будет такой же, как и для передачи параметров по методу get.
Кроме того, можно прочитать всю строку с входными параметрами:
$query_string = getenv ("QUERY_STRING");
PRINT "
query_string: $query_string
";
Результат выполнения:
query_string: counter=value1&id=value2
Допускается использование устаревших типов ассоциативных массивов для вышеприведенного примера:
$counter=$HTTP_GET_VARS['counter'];
или
$counter=$HTTP_POST_VARS['counter'];
Системные переменные
Системные переменные в PHP-программе устанавливаются также обращением к ассоциативным массивам. Ниже приведен пример использования системных переменных QUERY_STRING, REMOTE_ADDR, HTTP_USER_AGENT:
$query_string = getenv ("QUERY_STRING");
$address = $_SERVER["REMOTE_ADDR"];
echo "
ADDRESS: $address";
$remote =getenv("REMOTE_ADDR");
echo "
Remote2: $remote";
$userag = getenv("HTTP_USER_AGENT");
echo "
user agent= $userag
";
echo $_SERVER["HTTP_USER_AGENT"];
Примечание:
Полезной для уточнения состояния PHP-пакета является функция phpinfo();
Сессии в PHP
Есть такое ещё понятие, как сессии.
О них можно прочитать на сайте: http://www.phpfaq.ru/sessions
Пример программного кода с сессиями:
Ещё по этой тематике: http://www.realcoding.net/article/view/3969
см. http://corp2.net/blog/news_detail.php?ID=653
Вот сколько работаю с PHP, но никак не могу запомнить конструкции для передачи переменных. Хотя, это и простая вещь. Поэтому, нашёл статью о правилах передачи параметров и выкладываю её в блоге - чтоб всегда можно было и самому восстановить в памяти материал.
Информация взята из сайта: http://lit.jinr.ru/ccic/usersguide/index.php?link=11_
В версии PHP 4.3.1 установлены новые правила формирования глобальных переменных - входных параметров PHP-программы и системных переменных: в целях обеспечения безопасности операционной системы отключен режим автоматического присвоения значений переменным. Для выбора значений необходимо выполнить обращения к соответствующим ассоциативным массивам.
Параметры PHP-программ
Передача параметров PHP-программам может выполняться различными способами:
* при обращении в CGI-режиме из HTML form-объектов c методами передачи get и post;
* при прямом обращении к PHP-программе в URL-строке.
Обработка входных параметров
Обработка входных параметров зависит от типа обращения.
1. Метод get
Пример HTML-страницы:
Пример соответствующей PHP-программы:
$counter=$_GET['counter'];
$id=$_GET['id'];
PRINT "Counter= $counter ID= $id";
?>
2. Метод post
Пример HTML-страницы:
Cоответствующая PHP-программа:
$counter=$_POST['counter'];
$id=$_POST['id'];
PRINT "Counter= $counter ID= $id";
?>
3. Задание параметров в URL-строке
Пример URL-строки:
http://www.jinr.ru/~petrov/php/testphp.php?counter=value1&id=value2
PHP-программа для обработки параметров этой строки будет такой же, как и для передачи параметров по методу get.
Кроме того, можно прочитать всю строку с входными параметрами:
$query_string = getenv ("QUERY_STRING");
PRINT "
query_string: $query_string
";
Результат выполнения:
query_string: counter=value1&id=value2
Допускается использование устаревших типов ассоциативных массивов для вышеприведенного примера:
$counter=$HTTP_GET_VARS['counter'];
или
$counter=$HTTP_POST_VARS['counter'];
Системные переменные
Системные переменные в PHP-программе устанавливаются также обращением к ассоциативным массивам. Ниже приведен пример использования системных переменных QUERY_STRING, REMOTE_ADDR, HTTP_USER_AGENT:
$query_string = getenv ("QUERY_STRING");
$address = $_SERVER["REMOTE_ADDR"];
echo "
ADDRESS: $address";
$remote =getenv("REMOTE_ADDR");
echo "
Remote2: $remote";
$userag = getenv("HTTP_USER_AGENT");
echo "
user agent= $userag
";
echo $_SERVER["HTTP_USER_AGENT"];
Примечание:
Полезной для уточнения состояния PHP-пакета является функция phpinfo();
Сессии в PHP
Есть такое ещё понятие, как сессии.
О них можно прочитать на сайте: http://www.phpfaq.ru/sessions
Пример программного кода с сессиями:
Ещё по этой тематике: http://www.realcoding.net/article/view/3969
см. http://corp2.net/blog/news_detail.php?ID=653
Комментарии