В отличии от статьи Сложение двух чисел на PHP с передачей параметров через POST (серверное приложение) сервер в качестве ответа формирует JSON файл.
Эта статья из цикла статей Клиент-серверные приложения.
Статья из цикла «Сложение двух чисел». Для меня минимальное освоение любой системы программирования начинается с возможности создания такой программы. Если можно написать приложение, в которой пользователь может ввести два числа, считать их, провести с ними какие-то действия, а потом вывести результат, то, значит, базовое владение имеется. И много задач именно из области программирования, алгоритмики можно будет решать, зная, как в конкретной системе программирования запрограммировать такую программу.
То, что при переходе в демо вы видите error — это правильно.
Содержание
Приготовления
Нам потребуется так или иначе сервер, на котором просчитываются php скрипты. Можно установить локальный сервер (например, тут описано) через установку связки Apache + Php + MySQL + phpMyAdmin, можно воспользоваться уже готовыми сборками (Denver, Open Server, WampServer и др.). Можно использовать сервер на каком-нибудь виртуальном хостинге и так далее. В общем, вариантов много.
Далее предполагается, что у вас есть такой сервер, вы умеете запускать в браузере php скрипты (если не знаете, то или тут почитайте или в любом другом месте в учебниках по PHP).
Постановка задачи
На сервер поступает HTTP запрос с двумя переменными a и b. Сервер должен считать два числа, сложить их и вернуть эту сумму клиенту в виде JSON файла. Переменные a и b передаются через POST параметры.
Если данные не переданы, то должно вывестись слово error.
JSON файл должен содержать информацию о слагаемых и сумме чисел. Например, так:
1 |
{"a":2,"b":3,"c":5} |
PHP скрипт
Общий вид PHP скрипта index.php приведен ниже.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php if (isset($_POST['a'])) $string_a = htmlentities($_POST['a']); if (isset($_POST['b'])) $string_b = htmlentities($_POST['b']); $isEmpty = false; if ((empty($string_a)) || (empty($string_b))) $isEmpty = true; if (!$isEmpty) { $a = (int)$string_a; $b = (int)$string_b; $c = $a + $b; //Формируем JSON ответ от сервера $arr = array('a' => $a, 'b' => $b, 'c' => $c); echo json_encode($arr); } else { echo "error"; } ?> |
По сравнению со статьей Сложение двух чисел на PHP с передачей параметров через POST (серверное приложение) тут строчка echo $c; поменялась на следующие строчки.
1 2 |
$arr = array('a' => $a, 'b' => $b, 'c' => $c); echo json_encode($arr); |
То есть в PHP есть готовая функция json_encode, которая переводит массив в JSON формат.
Проверка работы
Закидываем данный скрипт на сервер. Я закинул на http://demo.harrix.org/demo0013/
Через адресную строку в браузере, разумеется, POST параметры не отправить. Для этого используются либо формы в HTML страницах, либо через запросы в клиентских приложениях.
Можно проверить через данный html файл.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Программа сложения двух чисел</title> </head> <body> <form action="http://demo.harrix.org/demo0013/" method="post"> <input name="a" type="text" value="2"><br> <input name="b" type="text" value="3"><br> <input type="submit" value="Сложить 2 два числа"> </form> </body> |
При отправке чисел 2 и 3 получим в результате вот такой ответ. А это полноценный JSON файл, который мы уже можем парсить, если нужно.