Відмінності між версіями «6 Змінні»
Donserg (Обговорення • внесок) м (Захист на 6 Змінні встановлено ([edit=sysop] (безстроково) [move=sysop] (безстроково))) |
|||
Рядок 1: | Рядок 1: | ||
− | + | Web-програмування в більшій частині являє собою якраз обробку різних даних, введених користувачем - тобто, обробку HTML-форм. | |
− | + | Мабуть, немає іншого такого мови, як PHP, який би настільки полегшив вам завдання обробки і розбору зовнішніх змінних, тобто змінних, які надійшли з HTML-форм (з браузера користувача). Справа в тому, що в мова PHP вбудовані всі необхідні можливості, так що вам не доведеться навіть і замислюватися над особливостями протоколу HTTP і розмірковувати, як же відбувається відправлення і прийом POST-форм або навіть завантаження файлов.Разработчікі PHP все передбачили. | |
− | + | Тут ми не будемо детально зупинятися на механизом роботи протоколу HTTP, який відповідає за доставку даних з браузера на сервер і назад, цьому присвячений спеціальний розділ PHP і HTTP. Там же глибоко розглянуті принципи роботи з HTML-формами.Зараз ми розглянемо ці механізми лише з прикладних позицій, не заглиблюючись в теорію.Для того, щоб приймати дані від користувачів, нам необхідно інтерактивна взаємодія з ними.А тепер спробуємо написати сценарій, який приймає в параметрах ім'я користувача і виводить: | |
+ | "Привіт, <ім'я>!". | ||
+ | Спочатку розглянемо найбільш простий спосіб передачі імені сценарієм - безпосередній набір його в URL після знака? - Наприклад, у форматі name = ім'я. Ось приклад: | ||
+ | (http://localhost/script.php?name=імя) | ||
+ | Наш сценарій повинен розпізнати параметр name. Тобто, кажучи простіше, сценарій (скрипт) повинен прийняти параметр name у вигляді змінної name, а потім вивести в браузер пользоватея рядок "Привіт, <ім'я>!". Зробити це можна таким чином: | ||
+ | Пишемо скрипт, який бере параметр name і виводить результат у браузер користувача, а потім зберігаємо його під і<? php | ||
+ | echo "Привіт, $ _GET ['name']!"; | ||
+ | ?>м'ям script.php: | ||
+ | У нашому прикладі ми використовували зумовлену змінну $ _GET ['name'], щоб "прийняти" параметр name. Тепер, передавши через GET-запит параметр name = Саша, ми отримаємо наступний результат: | ||
+ | Привіт, Сашко! | ||
+ | А тепер спробуємо передати параметр name не з рядка запиту браузера, а через HTML-форму. Створюємо HTML-документ такого змісту: | ||
+ | <form action="http://localhost/script.php" method="GET"> | ||
+ | Name: <input type=text name=name> <br> <input type=submit value="GO!"> | ||
+ | </ form> | ||
+ | Тепер збережемо даний HTML-документ на нашому тестовому сервері (localhost) під ім'ям send.html в тій же директорії, де у нас вже збережений сценарій script.php. | ||
+ | Тепер запускаємо HTML-документ у браузері: | ||
+ | http://localhost/send.html | ||
+ | Вводимо ім'я в поле і натискаємо кнопку "GO!". Форма передасть через GET-запит параметр name нашому скриптові script.php. Якщо ви все зробили правильно і ваш web-сервер працює нормально, ви побачите введене вами в поле форми ім'я! В адресному рядку браузера ви побачите шлях і переданий вами параметр name.Тепер ми повинні зрозуміти, як ми можемо передати безліч параметрів, для початку хоча-б два.Отже, нам потрібно, щоб скрипт виводив наступне: | ||
+ | "Привіт, <ім'я>! Вам <вік> років!". | ||
+ | Тобто нам потрібно передати в скрипт 2 параметри: name і age.Тепер ми напишемо скрипт script.php, що приймає два параметри: name і age, а також HTML-документ з формою, яка ці два параметри буде передавати в наш новий скрипт: | ||
<? php | <? php | ||
− | + | echo "Привіт, $ _GET ['name']! Вам $ _GET ['age'] років!"; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
?> | ?> | ||
− | + | А ось і HTML-документ send.html, за допомогою якого ми параметри name і age передамо нашу скрипту: | |
− | + | <html> <body> | |
− | + | <form action="script.php"> | |
− | + | Введіть ім'я: <input type=text name="name"> <br> | |
− | + | Введіть вік: <input type=text name="age"> <br> | |
− | + | <input type=submit value="GO!"> | |
+ | </ form> | ||
+ | </ body> </ html> | ||
+ | Тепер наш скрипт приймає два параметри name і age і виводить в браузер результат формату: "Привіт, <ім'я>! Вам <вік> років!". | ||
+ | Зверніть увагу на адресний рядок браузера після передачі параметрів сценарієм, вона буде виглядати приблизно так (без URL-кодування кирилиці): | ||
+ | http://localhost/script.php?name=Саша&age=23: | ||
+ | Залежно від установок вашого інтерпретатора, існує кілька способів доступу до даних з ваших HTML-форм. Ось кілька прикладів: | ||
<? php | <? php | ||
− | + | / / Доступно, починаючи з PHP 4.1.0 | |
− | + | echo $ _GET ['username']; | |
+ | echo $ _POST ['username']; | ||
+ | echo $ _REQUEST ['username']; | ||
+ | import_request_variables ('p', 'p_'); | ||
+ | echo $ p_username; | ||
+ | / / Доступно, починаючи з PHP 3. Починаючи з PHP 5.0.0, ці довгі зумовлені | ||
+ | / / Змінні можуть бути відключені директивою register_long_arrays. | ||
+ | echo $ HTTP_GET_VARS ['username']; | ||
+ | / / Доступно, якщо директива PHP register_globals = on. починаючи | ||
+ | / / З PHP 4.2.0, значення за замовчуванням register_globals = off. | ||
+ | / / Використання / довіра цьому методу непредпочтітельно. | ||
+ | echo $ username; | ||
?> | ?> |
Версія за 21:11, 25 червня 2013
Web-програмування в більшій частині являє собою якраз обробку різних даних, введених користувачем - тобто, обробку HTML-форм.
Мабуть, немає іншого такого мови, як PHP, який би настільки полегшив вам завдання обробки і розбору зовнішніх змінних, тобто змінних, які надійшли з HTML-форм (з браузера користувача). Справа в тому, що в мова PHP вбудовані всі необхідні можливості, так що вам не доведеться навіть і замислюватися над особливостями протоколу HTTP і розмірковувати, як же відбувається відправлення і прийом POST-форм або навіть завантаження файлов.Разработчікі PHP все передбачили.
Тут ми не будемо детально зупинятися на механизом роботи протоколу HTTP, який відповідає за доставку даних з браузера на сервер і назад, цьому присвячений спеціальний розділ PHP і HTTP. Там же глибоко розглянуті принципи роботи з HTML-формами.Зараз ми розглянемо ці механізми лише з прикладних позицій, не заглиблюючись в теорію.Для того, щоб приймати дані від користувачів, нам необхідно інтерактивна взаємодія з ними.А тепер спробуємо написати сценарій, який приймає в параметрах ім'я користувача і виводить:
"Привіт, <ім'я>!".
Спочатку розглянемо найбільш простий спосіб передачі імені сценарієм - безпосередній набір його в URL після знака? - Наприклад, у форматі name = ім'я. Ось приклад:
(http://localhost/script.php?name=імя)
Наш сценарій повинен розпізнати параметр name. Тобто, кажучи простіше, сценарій (скрипт) повинен прийняти параметр name у вигляді змінної name, а потім вивести в браузер пользоватея рядок "Привіт, <ім'я>!". Зробити це можна таким чином:
Пишемо скрипт, який бере параметр name і виводить результат у браузер користувача, а потім зберігаємо його під і<? php
echo "Привіт, $ _GET ['name']!";
?>м'ям script.php:
У нашому прикладі ми використовували зумовлену змінну $ _GET ['name'], щоб "прийняти" параметр name. Тепер, передавши через GET-запит параметр name = Саша, ми отримаємо наступний результат:
Привіт, Сашко!
А тепер спробуємо передати параметр name не з рядка запиту браузера, а через HTML-форму. Створюємо HTML-документ такого змісту:
<form action="http://localhost/script.php" method="GET">
Name: <input type=text name=name>
<input type=submit value="GO!">
</ form>
Тепер збережемо даний HTML-документ на нашому тестовому сервері (localhost) під ім'ям send.html в тій же директорії, де у нас вже збережений сценарій script.php.
Тепер запускаємо HTML-документ у браузері:
http://localhost/send.html
Вводимо ім'я в поле і натискаємо кнопку "GO!". Форма передасть через GET-запит параметр name нашому скриптові script.php. Якщо ви все зробили правильно і ваш web-сервер працює нормально, ви побачите введене вами в поле форми ім'я! В адресному рядку браузера ви побачите шлях і переданий вами параметр name.Тепер ми повинні зрозуміти, як ми можемо передати безліч параметрів, для початку хоча-б два.Отже, нам потрібно, щоб скрипт виводив наступне:
"Привіт, <ім'я>! Вам <вік> років!".
Тобто нам потрібно передати в скрипт 2 параметри: name і age.Тепер ми напишемо скрипт script.php, що приймає два параметри: name і age, а також HTML-документ з формою, яка ці два параметри буде передавати в наш новий скрипт:
<? php
echo "Привіт, $ _GET ['name']! Вам $ _GET ['age'] років!";
?>
А ось і HTML-документ send.html, за допомогою якого ми параметри name і age передамо нашу скрипту:
<html> <body>
<form action="script.php">
Введіть ім'я: <input type=text name="name">
Введіть вік: <input type=text name="age">
<input type=submit value="GO!">
</ form>
</ body> </ html>
Тепер наш скрипт приймає два параметри name і age і виводить в браузер результат формату: "Привіт, <ім'я>! Вам <вік> років!".
Зверніть увагу на адресний рядок браузера після передачі параметрів сценарієм, вона буде виглядати приблизно так (без URL-кодування кирилиці):
http://localhost/script.php?name=Саша&age=23:
Залежно від установок вашого інтерпретатора, існує кілька способів доступу до даних з ваших HTML-форм. Ось кілька прикладів:
<? php
/ / Доступно, починаючи з PHP 4.1.0
echo $ _GET ['username'];
echo $ _POST ['username'];
echo $ _REQUEST ['username'];
import_request_variables ('p', 'p_');
echo $ p_username;
/ / Доступно, починаючи з PHP 3. Починаючи з PHP 5.0.0, ці довгі зумовлені
/ / Змінні можуть бути відключені директивою register_long_arrays.
echo $ HTTP_GET_VARS ['username'];
/ / Доступно, якщо директива PHP register_globals = on. починаючи
/ / З PHP 4.2.0, значення за замовчуванням register_globals = off.
/ / Використання / довіра цьому методу непредпочтітельно.
echo $ username;
?>