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

Матеріал з Wiki TNEU
Перейти до: навігація, пошук
(Створена сторінка: У РНР змінні починаються зі знака долара ($), за яким може слідувати будь-яка кількість бук...)
 
 
(4 проміжні версії 4 користувачів не показані)
Рядок 1: Рядок 1:
У РНР змінні починаються зі знака долара ($), за яким може слідувати будь-яка кількість буквено-цифрових символів і символів підкреслення, але перший символ не може бути цифрою. Таким чином, припустимі наступні імена змінних: $ n, $ n1, $user_func_5 і т. д. На відміну від ключових слів, імена змінних в PHP чутливі до регістру, тобто змінні $ user, $ User і $ USER є різними.
+
Web-програмування в більшій частині являє собою якраз обробку різних даних, введених користувачем - тобто, обробку HTML-форм.
 +
Мабуть, немає іншої такої мови, як PHP, яка би настільки полегшила завдання обробки і розбору зовнішніх змінних, тобто змінних, які надійшли з HTML-форм (з браузера користувача). Справа в тому, що в мову PHP вбудовані всі необхідні можливості, так що не доведеться навіть і замислюватися над особливостями протоколу HTTP і розмірковувати, як же відбувається відправлення і прийом POST-форм або навіть завантаження файлів. Розробники PHP все передбачили.  
 +
Для того, щоб приймати дані від користувачів, нам необхідно інтерактивна взаємодія з ними. А тепер спробуємо написати сценарій, який приймає в параметрах ім'я користувача і виводить: "Привіт, <ім'я>!".
 +
Спочатку розглянемо найбільш простий спосіб передачі імені сценарієм - безпосередній набір його в URL після знака ? - Наприклад, у форматі name = ім'я. Ось приклад:
  
 +
(http://localhost/script.php?name=ім’я)
  
<? php
+
Наш сценарій повинен розпізнати параметр name. Тобто, кажучи простіше, сценарій (скрипт) повинен прийняти параметр name у вигляді змінної name, а потім вивести в браузер пользоватея рядок "Привіт, <ім'я> !". Зробити це можна таким чином:
 +
Пишемо скрипт, який бере параметр name і виводить результат у браузер користувача, а потім зберігаємо його під ім’ям script.php:
  
  $ user = "Володимир";
+
<?php echo "Привіт, $_GET['name'] !"; ?>
  
  $ User = "Дмитро";
+
У нашому прикладі ми використовували зумовлену змінну $_GET['name'], щоб "прийняти" параметр name. Тепер, передавши через GET-запит параметр name = Саша, ми отримаємо наступний результат:
  
  $ USER = "Юрій";
+
Привіт, Саша !
  
  echo $ user; / / Володимир
+
А тепер спробуємо передати параметр name не з рядка запиту браузера, а через HTML-форму. Створюємо HTML-документ такого змісту:
  
  echo $ User; / / Дмитро
+
<form action="http://localhost/script.php" method="GET">
 +
Name: <input type="text" name="name"><br><input type="submit" value="GO!">
 +
</form>
  
  echo $ USER; / / Юрій
+
Тепер збережемо даний 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'] років !"; ?>
  
  $ number = 1;
+
А ось і HTML-документ send.html, за допомогою якого ми параметри name і age передамо нашу скрипту:
  
  $ var = 3.14;
+
<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 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;
 +
?>

Поточна версія на 02:03, 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; 
?>
Особисті інструменти
Простори назв

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