Початківець web-програміст починає свою роботу із вивчення змінних
php. Майже вся корисна для користувачів інформація на сторінці сайту перебуває в змінних, а сама конструкція сторінки в шаблоні.
Таким чином, веб-програміст лише змінює значення змінних і відвідувач одержує нову сторінку.
Змінні, передача їхніх значень (присвоєння/відправлення/одержання) необхідна частина роботи веб-майстра без знання якої, Ви не створите динамічної сторінки.
1.
Створення змінних і їхні види.
2.
Період дії змінних.
3.
Відправлення й одержання змінних за допомогою методів Get і Post.
Створення змінних і їхні види
Змінна - це літерно-символьне подання частини інформації, яка перебуває в пам'яті в 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.14 E-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://buildsait.at.ua/index.php?name=Franki&age=35>натисни</a>
</body>
</html>
|
У прикладі зображений код найпростішої html сторінки з одним посиланням, де:
http://buildsait.at.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>
<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 через ім'я поля (<input>), наприклад
$_POST["user_name"] і одержуємо інформацію, що користувач ввів у це поле.
От, мабуть, і все. Наведених вище прикладів цілком достатньо, щоб Ви змогли зрозуміти як передавати значення змінних і одержувати їх.