Відмінності між версіями «6 Змінні»
Xphlash (Обговорення • внесок) |
|||
Рядок 1: | Рядок 1: | ||
− | Web-програмування в більшій частині являє собою якраз обробку різних даних, введених користувачем - тобто, обробку HTML-форм. | + | Web-програмування в більшій частині являє собою якраз обробку різних даних, введених користувачем - тобто, обробку HTML-форм. |
− | Мабуть, немає | + | Мабуть, немає іншої такої мови, як PHP, яка би настільки полегшила завдання обробки і розбору зовнішніх змінних, тобто змінних, які надійшли з HTML-форм (з браузера користувача). Справа в тому, що в мову PHP вбудовані всі необхідні можливості, так що не доведеться навіть і замислюватися над особливостями протоколу HTTP і розмірковувати, як же відбувається відправлення і прийом POST-форм або навіть завантаження файлів. Розробники PHP все передбачили. |
− | + | Для того, щоб приймати дані від користувачів, нам необхідно інтерактивна взаємодія з ними. А тепер спробуємо написати сценарій, який приймає в параметрах ім'я користувача і виводить: "Привіт, <ім'я>!". | |
− | "Привіт, <ім'я>!". | + | Спочатку розглянемо найбільш простий спосіб передачі імені сценарієм - безпосередній набір його в URL після знака ? - Наприклад, у форматі name = ім'я. Ось приклад: |
− | Спочатку розглянемо найбільш простий спосіб передачі імені сценарієм - безпосередній набір його в URL після знака? - Наприклад, у форматі name = ім'я. Ось приклад: | + | ---- |
− | (http://localhost/script.php?name= | + | (http://localhost/script.php?name=ім’я) |
− | Наш сценарій повинен розпізнати параметр name. Тобто, кажучи простіше, сценарій (скрипт) повинен прийняти параметр name у вигляді змінної name, а потім вивести в браузер пользоватея рядок "Привіт, <ім'я>!". Зробити це можна таким чином: | + | ---- |
− | Пишемо скрипт, який бере параметр name і виводить результат у браузер користувача, а потім зберігаємо його під | + | Наш сценарій повинен розпізнати параметр name. Тобто, кажучи простіше, сценарій (скрипт) повинен прийняти параметр name у вигляді змінної name, а потім вивести в браузер пользоватея рядок "Привіт, <ім'я> !". Зробити це можна таким чином: |
− | echo "Привіт, $ _GET ['name']!"; | + | Пишемо скрипт, який бере параметр name і виводить результат у браузер користувача, а потім зберігаємо його під ім’ям 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 нашому | + | 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="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, ці довгі зумовлені | + | |
− | / / | + | 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-документ у браузері:
Вводимо ім'я в поле і натискаємо кнопку "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; ?>