В отличии от статьи Сложение двух чисел на HTML + PHP тут рассматривается пример web приложения без использования HTML — только серверная часть. Подобные приложения могут использоваться для клиент-серверных приложений, когда клиент отправляет на сервер запрос, сервер формирует ответ и возвращает клиенту.
Эта статья из цикла статей Клиент-серверные приложения.
Статья из цикла «Сложение двух чисел». Для меня минимальное освоение любой системы программирования начинается с возможности создания такой программы. Если можно написать приложение, в которой пользователь может ввести два числа, считать их, провести с ними какие-то действия, а потом вывести результат, то, значит, базовое владение имеется. И много задач именно из области программирования, алгоритмики можно будет решать, зная, как в конкретной системе программирования запрограммировать такую программу.
В статье рассматривается вариант с POST запросом.
Содержание
Приготовления
Нам потребуется так или иначе сервер, на котором просчитываются php скрипты. Можно установить локальный сервер (например, тут описано) через установку связки Apache + Php + MySQL + phpMyAdmin, можно воспользоваться уже готовыми сборками (Denver, Open Server, WampServer и др.). Можно использовать сервер на каком-нибудь виртуальном хостинге и так далее. В общем, вариантов много.
Далее предполагается, что у вас есть такой сервер, вы умеете запускать в браузере php скрипты (если не знаете, то или тут почитайте или в любом другом месте в учебниках по PHP).
Постановка задачи
На сервер поступает HTTP запрос с двумя переменными a и b. Сервер должен считать два числа, сложить их и вернуть эту сумму клиенту. Переменные a и b передаются через GET параметры, то есть через адресную строку. Пример такого запроса:
http://[путь с скрипту]?a=2&b=3
Пример скрипта на моем сайте:
http://demo.harrix.org/demo0011?a=2&b=3
Если данные не переданы, то должно вывестись слово error.
PHP скрипт
Общий вид PHP скрипта index.php приведен ниже.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php if (isset($_GET['a'])) $string_a = htmlentities($_GET['a']); if (isset($_GET['b'])) $string_b = htmlentities($_GET['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; echo $c; } else { echo "error"; } ?> |
Разберем его.
В эти строчках мы считываем наши параметры в виде строковых переменных из GET параметров. Причем стараемся себе обезопасить, экранировав служебные символы функцией htmlentities, чтобы нельзя было передать через значения переменных зловредный код.
1 2 |
if (isset($_GET['a'])) $string_a = htmlentities($_GET['a']); if (isset($_GET['b'])) $string_b = htmlentities($_GET['b']); |
Значения GET переменных могут отсутствовать (например, вместо http://[путь с скрипту]?a=2&b=3 был запрос http://[путь с скрипту]). В этом случае сервер должен вывести error. Поэтому проверяем переменные на пустоту содержимого.
1 2 |
$isEmpty = false; if ((empty($string_a)) || (empty($string_b))) $isEmpty = true; |
Переводим строчки в числа.
1 2 |
$a = (int)$string_a; $b = (int)$string_b; |
А дальше складываем числа и выводим сумму клиенту через команду echo.
Проверка работы
Рассмотрим работу скрипта на тестовом примере. У меня скрипт залит по адресу http://demo.harrix.org/demo0011 (если перейти по ссылке без параметров, то должно выдаваться error).
При вызове http://demo.harrix.org/demo0011 мы получим error, так как данные не переданы.
При вызове http://demo.harrix.org/demo0011?a=2 мы получим error, так как переменная b не передана.
При вызове http://demo.harrix.org/demo0011?a=2&b=3 мы получим 5.
При вызове http://demo.harrix.org/demo0011?a=harrix&b=3 мы получим 3, так как строка harrix была переведена в число 0.
В статье рассмотрен пример web приложения на Java, который делает тоже самое.
В статье и статье рассматривается пример создания клиентского приложения на Android Studio.
В статье статье рассматривается пример создания клиентского приложения на HTML.