Відмінності між версіями «6 Змінні»

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

Версія за 00:13, 20 червня 2014

Web-програмування в більшій частині являє собою якраз обробку різних даних, введених користувачем - тобто, обробку HTML-форм. Мабуть, немає іншої такої мови, як PHP, яка би настільки полегшила завдання обробки і розбору зовнішніх змінних, тобто змінних, які надійшли з HTML-форм (з браузера користувача). Справа в тому, що в мову PHP вбудовані всі необхідні можливості, так що не доведеться навіть і замислюватися над особливостями протоколу HTTP і розмірковувати, як же відбувається відправлення і прийом POST-форм або навіть завантаження файлів. Розробники PHP все передбачили. Для того, щоб приймати дані від користувачів, нам необхідно інтерактивна взаємодія з ними. А тепер спробуємо написати сценарій, який приймає в параметрах ім'я користувача і виводить: "Привіт, <ім'я>!". Спочатку розглянемо найбільш простий спосіб передачі імені сценарієм - безпосередній набір його в URL після знака ? - Наприклад, у форматі name = ім'я. Ось приклад:


(http://localhost/script.php?name=ім’я)


Наш сценарій повинен розпізнати параметр name. Тобто, кажучи простіше, сценарій (скрипт) повинен прийняти параметр name у вигляді змінної name, а потім вивести в браузер пользоватея рядок "Привіт, <ім'я> !". Зробити це можна таким чином: Пишемо скрипт, який бере параметр name і виводить результат у браузер користувача, а потім зберігаємо його під ім’ям script.php:


<?php echo "Привіт, $_GET['name'] !"; ?>


У нашому прикладі ми використовували зумовлену змінну $_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; ?>


Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти