Змінні php, метод get і post

Початківець web-програміст починає свою роботу з вивчення змінних php. Майже вся корисна для користувачів інформація на сторінці сайту знаходиться в змінних, а сама конструкція сторінки в шаблоні.
Таким чином, веб-програміст лише змінює значення змінних і користувач отримує нову сторінку.

Змінні, передача їх значень (привласнення / відправка / отримання) необхідна частина роботи веб-майстра без знання якої, Ви не створите динамічної сторінки.

Створення змінних і їх види
Змінна - це буквено-символьне уявлення шматочка інформації яка знаходиться в пам'яті у Web-сервера. В php змінна виглядає ось так:

$ Name = "я інформація в пам'яті точка";

Змінні в PHP представляються у вигляді рядка, що починається знаком долара, а за ним слідує ім'я змінної. Ім'я змінної може складатися з латинських букв, звичайних цифр і деяких символів або комбінацій букв, цифр і символів. Воно чутливо до регістру і не може починатися з цифри.

Приклад назви змінної:

$ 4mysite = 'тримай курс'; // неправильно: починається з цифри
$ My_site = 'hello'; // правильно: символ "_" допускається
$ Big4_1 = 'розділ 4.1.' ; // правильно: допустима комбінація

Всі змінні діляться на певні типи:

$ 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 (передача імен змінних і їх значень в самому посиланні):

Тепер в скрипті "index.php" нам потрібно отримати значення змінних, для цього ми будемо використовувати зарезервовану визначену змінну $ _GET.
Розглянемо код PHP всередині скрипта "index.php":

Тепер розберемо код: функція "empty" перевіряє існування змінних з назвою "name" і "age" і, якщо вони існують і мають значення відмінне від нуля, то виконується сценарій виведення тексту "Отримано нові ввідні." Разом із значенням отриманих змінних.

Як Ви вже здогадалися, глобальна змінна $ _GET є масивом, в який записується передані значення, а ім'я змінної є індексним номером (ключем). Таким чином, коли ми по посиланню передаємо значення змінної ". Index.php? Name = Franki.", То в скрипті "index.php" отримуємо значення змінної $ _GET [ "name"] яке буде дорівнювати "Franki". Що це нам дає? Якщо $ _GET [ "name"] = "Franki" запускаємо перший сценарій, а якщо $ _GET [ "name"] = "Billi" - то інший сценарій. Це і є принцип роботи динамічного сайту, сторінка формується по-різному в залежності від отриманих значень змінних.

Всі операції будуть працювати, якщо на комп'ютері встановлено і активовано web-сервер, а також встановлено і налаштований PHP.

Давайте, подивимося як відправляються дані за допомогою методу POST. Для цього створимо файл "post.html" з наступним текстом:



Приклад передачі значень змінних методом Post

Заповнюємо поля для передачі інформації:


Вкажіть Ваше ім'я:


Вкажіть Ваш вік:




Щоб отримати інформацію, що передається в запиті, в скрипті, якому направлено запит, створюємо такі записи:

if (! empty ($ _ POST [ "user_name"])! empty ($ _ POST [ "age"]))
echo "Отримано нові ввідні:
";
echo "ім'я -";
echo $ _POST [ "user_name"];
echo "
вік - ";
echo $ _POST [ "age"];
echo "років";
>
else
echo "Змінні не дійшли. Перевірте все ще раз.";
>

Як бачите, нічого складного немає, просто витягаєте з зарезервованої визначеної змінної масиву $ _POST передану інформацію. Для цього перевіряємо існування переданої змінної і, якщо вона існує зі значенням відмінним від нуля, отримуємо її.
Звертаємося до $ _POST через атрибут name поля ( ), Наприклад $ _POST [ "user_name"] і отримуємо інформацію, яку користувач ввів в це поле.

Ось, мабуть, і все. Наведених вище прикладів цілком достатньо, щоб Ви змогли зрозуміти як передавати значення змінних і отримувати їх. Попрактикуйтесь небагато.