По всем вопросам пишите на webmaster@info-pages.com.ua. Вы можете свободно использовать/размещать/перепечатывать статьи сайта всего лишь указав ссылку на источник.
Переменные в php, используем метод Get и Post
Переменные php, метод Get и Post
Размещено: 11 августа 2008
Начинающий web-программист начинает свою работу с изучения переменных
php. Почти вся полезная для пользователей информация на страничке сайта находится в переменных, а сама конструкция страницы в шаблоне.
Таким образом, веб-программист лишь меняет значение переменных и пользователь получает новую страничку.
Переменные, передача их значений (присвоение/отправка/получение) необходимая часть работы веб-мастера без знания которой, Вы не создадите динамической странички.
Создание переменных и их виды
Переменная - это буквенно-символьное представление кусочка информации которая находится в памяти у Web-сервера. В php переменная выглядит вот так:
$name = "я информация в памяти тчк";
Переменные в PHP представляются в виде строки, которая начинается знаком доллара, а за ним следует имя переменной. Имя переменной может состоять из латинских букв, обычных цифр и некоторых символов или комбинаций букв, цифр и символов. Оно чувствительно к регистру и не может начинаться с цифры.
Пример названия переменной: $4mysite = 'держи курс'; // неправильно: начинается с цифры $my_site = 'hello'; // правильно: символ "_" допускается $big4_1 = 'раздел 4.1.'; // правильно: допустимая комбинация
Все переменные делятся на определенные типы:
Название типа
Описание типа
Пример
boolean (двоичные данные)
Логический тип, может иметь только два значения либо TRUE, либо FALSE. Значения от регистра не зависят.
$x = True; $y = false;
integer (целые числа)
Числовой тип, значение целого числа (32-х битного) от –2 147 483 648 до 2 147 483 647.
$x = 23; $y = -2000000;
float или double (числа с плавающей точкой)
Числовой тип с плавающей точкой, могут иметь частичные значения в диапазоне от -3.14E-38 до 3.14E+38.
$x = 1,23; $y = 3,2559876;
string (строки)
Строковый текстово-цифровой буквенный набор символов любой длины. Строки, также, можно использовать для хранения бинарных данных (записать код любого файла). Длина строки ограничена только размером свободой оперативной памяти.
$x = "Здесь был Коля"; $y = "43-два яблока будет 41";
array (массивы)
Упорядоченная связка данных, где каждой части данных присвоен индексный номер, по которому можно обратится для получение/записи информации. Другими словами это массив (матрица), может быть 2,3 .. n - мерная.
$x[0] = "Кот"; $y[2,5] = 45;
В PHP, также, существуют зарезервированные предопределенные переменные которые используются для определенных значений таких как параметров PHP, Web-сервера, параметров браузера пользователя.
Например, тип и версия браузера пользователя находится в зарезервированной переменной $_SERVER["HTTP_USER_AGENT"], перечень всех переданных переменных и их значение находятся в $_SERVER["QUERY_STRING"] и т.д. Рано или поздно Вы все их изучите, их не так много.
Сейчас для нас представляет интерес лишь две зарезервированные предопределенные переменные: $_GET и $_POST. Эти две переменные важны тем, что позволяют передавать в себе имя переменной и ее значение в запросе пользователя.
В PHP значение переменных может быть получено следующим образом:
1. заранее определено web-программистом;
2. получено в результате выполнения веб-сервером функций/операций;
3. получено через запрос браузера методом Get или Post.
Последний вариант и используется для создания интерактивного общения страницы сайта с пользователем. Выбирая тот или иной вариант ответа, вводя информацию в поля, или мы просто хотим запомнить выбранные настройки пользователем программистами используется методы Get или Post для отправки/получения запросов с информацией.
Период действия/существования переменных
Переменные в PHP существуют только на время выполнения пользователем одного запроса к серверу. Это означает, что когда пользователь заходит на главную страничку сайта, а с нее переходит на внутреннюю страничку, то все переменные. которые были созданы при создании главной странички не передаются дальше, а при новом запросе создаются заново.
Если, например, меню сайта находится в базе данных MySQL, то при каждом запросе пользователя (перехода со странички на страничку) web-сервер, выполняя код PHP, будет запрашивать из базы данных информацию по меню и заносить ее в одну и туже переменную.
Почему же тогда все странички разные, если все переменные начинаются с нуля? Потому что, когда пользователь нажимает на ссылку он передает web-серверу переменную с определенным значением. А веб-сервер, каждый раз при выполнении кода PHP проверяет на существование переменной с определенным значением и если она существует, то выполняет определенный сценарий. И в результате вы получаем другую страничку. Потому что веб-сервер, выполнил код PHP по другому сценарию.
Отправка и получение переменных с помощью методов Get и Post
Передача переменных методами Get и Post отличается лишь в отправке данных.
Метод Get передает имя переменной и ее значение в самой ссылке, а метод Post передает имя переменной и ее значение в специальном скрытом запросе. Поэтому, для передачи секретных данных всегда используют метод Post.
Давайте, рассмотрим пример отправки данных методом Get (передача имен переменных и их значений в самой ссылке):
<html>
<head>
<title>Пример передачи значений переменных методом Get</title>
</head>
<body>
<a href=http://info-pages.com.ua/index.php?name=Franki&age=35>нажми</a>
</body>
</html>
В примере изображен код простейшей html страницы с одной ссылкой, где: http://info-pages.com.ua - адрес домена (хост); index.php - название файла с кодом PHP (скрипт) к которому мы обращаемся и который будет выполнятся web-сервером; ? - символ запятой указывает веб-серверу про передачу скрипту параметров; name=Franki&age=35 - здесь мы передаем скрипту имена переменных и их значения, между собой переменные должны разделятся символом
"&". Первая переменная будет называться "name" и иметь текстовое значение "Franki", а вторая называться "age" и иметь числовое значение "35".
Теперь в скрипте "index.php" нам нужно получить значение переменных, для этого мы будем использовать зарезервированную предопределенную переменную $_GET.
Рассмотрим код PHP внутри скрипта "index.php":
<?php
if (!empty($_GET["name"])&&!empty($_GET["age"]))
{
echo "
Получены новые вводные: имя - ".$_GET["name"].", возраст - ".$_GET["age"]." лет";} else {
echo "Переменные не дошли. Проверьте все еще раз.";
}
?>
Теперь разберем код: функция "empty" проверяет существование переменных с названием "name" и "age" и, если они существуют и имеют значение отличное от нуля, то выполняется сценарий вывода текста "Получены новые вводные..." вместе со значением полученных переменных.
Чтобы наочно увидеть получение веб-сервером переменных - вставьте этот кусок кода в Ваш любой *.php файл или создайте новый и обратитесь к нему в адресной строке браузера с запросом типа:
http://myhost/my.php?name=myname&age=myage
Как Вы уже догадались, глобальная переменная $_GET является масивом, в который записывается передаваемые значения, а имя переменной есть индексным номером (ключом). Таким образом, когда мы по ссылке передаем значение переменной "...index.php?name=Franki&...", то в скрипте "index.php" получаем значение переменной $_GET["name"] которое будет равняться "Franki".
Что это нам дает? Если $_GET["name"]="Franki" запускаем первый сценарий, а если $_GET["name"]="Billi" - то другой сценарий.
Это и есть принцип работы динамичного сайта, страница формируется по-разному в зависимости от полученных значений переменных.
Все операции будут работать, если на компьютере установлен и активирован web-сервер, а также установлен и настроен PHP.
Давайте, посмотрим как отправляются данные с помощью метода POST. Для этого создадим файл "post.html" со следующим текстом:
<html>
<head>
<title>Пример передачи значений переменных методом Post</title>
</head>
<body>
Как видно на примере выше, мы создали файл "post.html" с формой. Метод Post используется только в форме.
Параметр формы "method" определяет вид метода передачи данных и может принимать только 2 значения: "get" или "post". Если установлен "get", то все имена полей (название переменных) с их значениями передаются по ссылке. Если установлен "post", то все имена полей (название переменных) с их значениями передаются в виде запроса браузера к веб-серверу.
Параметру формы "action" присваивается в виде значения путь и название скрипта которому вы передаете данные. Это может выглядеть также как и: action="http://my_site.com.ua/script.php". Если Вы не указываете значение параметру "action", то вся передаваемая информация передается запускному скрипту (индексной странице) Вашего сайта.
Чтобы получить передаваемую в запросе информации в скрипте, которому направлен запрос, создаем следующие записи:
<?php
if (!empty($_POST["user_name"])&&!empty($_POST["age"]))
{
echo "Получены новые вводные:<br>";
echo "имя - ";
echo $_POST["user_name"];
echo "<br>возраст - ";
echo $_POST["age"];
echo " лет";
} else
{
echo "Переменные не дошли. Проверьте все еще раз.";
}
?>
Как видите, ничего сложного нет, просто вытягиваете из зарезервированной предопределенной переменной массива $_POST переданную информацию. Для этого проверяем существование переданной переменной и, если она существует со значением отличным от нуля, получаем ее.
Обращаемся к $_POST через имя поля (<input>), например $_POST["user_name"] и получаем информацию, которую пользователь ввел в это поле.
Вот, пожалуй, и все. Наведенных выше примеров вполне достаточно, чтобы Вы смогли понять как передавать значения переменных и получать их. Попрактикуйтесь немного.
Семен Горбунков. Все права защищены, 2007-2008рр.
Статистика: всего статей 50, на модерации 0, комментариев 27, всего ссылок 10, новых 1, выполнено за 0.03 sec.