Начинающий web-программист начинает свою работу с изучения переменных php. Почти вся полезная для пользователей информация на страничке сайта находится в переменных, а сама конструкция страницы в шаблоне.
Таким образом, веб-программист лишь меняет значение переменных и пользователь получает новую страничку.
Переменные, передача их значений (присвоение/отправка/получение) необходимая часть работы веб-мастера без знания которой, Вы не создадите динамической странички.
1. Создание переменных и их виды.
2. Период действия переменных.
3. Отправка и получение переменных с помощью методов Get и Post.
Создание переменных и их виды
Переменная - это буквенно-символьное представление кусочка информации которая находится в памяти у Web-сервера. В php переменная выглядит вот так:
Переменные в PHP представляются в виде строки, которая начинается знаком доллара, а за ним следует имя переменной. Имя переменной может состоять из латинских букв, обычных цифр и некоторых символов или комбинаций букв, цифр и символов. Оно чувствительно к регистру и не может начинаться с цифры.
Пример названия переменной:
$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" и, если они существуют и имеют значение отличное от нуля, то выполняется сценарий вывода текста "Получены новые вводные..." вместе со значением полученных переменных.
Как Вы уже догадались, глобальная переменная $_GET является массивом, в который записывается передаваемые значения, а имя переменной есть индексным номером (ключом). Таким образом, когда мы по ссылке передаем значение переменной "...index.php?name=Franki&...", то в скрипте "index.php" получаем значение переменной $_GET["name"] которое будет равняться "Franki". Что это нам дает? Если $_GET["name"]="Franki" запускаем первый сценарий, а если $_GET["name"]="Billi" - то другой сценарий. Это и есть принцип работы динамичного сайта, страница формируется по-разному в зависимости от полученных значений переменных.

Давайте, посмотрим как отправляются данные с помощью метода POST. Для этого создадим файл "post.html" со следующим текстом:
<html>
<head>
<title>Пример передачи значений переменных методом Post</title>
</head>
<body>
<form method="post" action="index.php"> Заполняем поля для передачи информации:<br><br>
Укажите Ваше имя:
<input name="user_name" type="text" maxlength="20" size="25" value="" />
<br><br> Укажите Ваш возраст: <input name="age" type="text" maxlength="2" size="3" value="" />
<br><br> <input type=submit value="Передать информацию"></form>
</body>
</html>
Как видно на примере выше, мы создали файл "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 через атрибут name поля (<input />
), например $_POST["user_name"] и получаем информацию, которую пользователь ввел в это поле.
Вот, пожалуй, и все. Наведенных выше примеров вполне достаточно, чтобы Вы смогли понять как передавать значения переменных и получать их. Попрактикуйтесь немного.