Harrix Блог

  • Списки статей
    • Все статьи
    • IT
    • Qt
    • C++
    • Сложение двух чисел
    • Web программированиe
    • FAQ
    • Latex
    • Установка программ
    • Мифы
    • Видео
    • Про фото
  • Проекты
  • Harrix.org
  • RSS
  • Контакты

Сложение двух чисел на PHP с передачей параметров через POST (серверное приложение)

Пример простого web приложения на PHP.

05.05.2017 Leave a Comment 9 607 просмотров

В отличии от статьи Сложение двух чисел на HTML + PHP тут рассматривается пример web приложения без использования HTML — только серверная часть. Подобные приложения могут использоваться для клиент-серверных приложений, когда клиент отправляет на сервер запрос, сервер формирует ответ и возвращает клиенту.

Эта статья из цикла статей Клиент-серверные приложения.

Статья из цикла «Сложение двух чисел». Для меня минимальное освоение любой системы программирования начинается с возможности создания такой программы. Если можно написать приложение, в которой пользователь может ввести два числа, считать их, провести с ними какие-то действия, а потом вывести результат, то, значит, базовое владение имеется. И много задач именно из области программирования, алгоритмики можно будет решать, зная, как в конкретной системе программирования запрограммировать такую программу.

Демо

То, что при переходе в демо вы видите error — это правильно.

В статье рассматривается вариант с GET запросом.

Содержание

  • Приготовления
  • Постановка задачи
  • PHP скрипт
  • Проверка работы

Приготовления

Нам потребуется так или иначе сервер, на котором просчитываются php скрипты. Можно установить локальный сервер (например, тут описано) через установку связки Apache + Php + MySQL + phpMyAdmin, можно воспользоваться уже готовыми сборками (Denver, Open Server, WampServer и др.). Можно использовать сервер на каком-нибудь виртуальном хостинге и так далее. В общем, вариантов много.

Далее предполагается, что у вас есть такой сервер, вы умеете запускать в браузере php скрипты (если не знаете, то или тут почитайте или в любом другом месте в учебниках по PHP).

Постановка задачи

На сервер поступает HTTP запрос с двумя переменными a и b. Сервер должен считать два числа, сложить их и вернуть эту сумму клиенту. Переменные a и b передаются через POST параметры.

Если данные не переданы, то должно вывестись слово 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($_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;
 
echo $c;
}
else {
echo "error";
}
?>

Разберем его.

В эти строчках мы считываем наши параметры в виде строковых переменных из POST параметров. Причем стараемся себе обезопасить, экранировав служебные символы функцией htmlentities, чтобы нельзя было передать через значения переменных зловредный код. Кстати, в этих двух строчках единственное отличие от кода для передачи параметров через GET.

1
2
if (isset($_POST['a'])) $string_a = htmlentities($_POST['a']);
if (isset($_POST['b'])) $string_b = htmlentities($_POST['b']);

Значения POST переменных могут отсутствовать. В этом случае сервер должен вывести 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/demo0012

Через адресную строку в браузере, разумеется, POST параметры не отправить. Для этого используются либо формы в HTML страницах, либо через запросы в клиентских приложениях.

Клиентов под наши приложения мы пока не написали, поэтому проверять работу будем сторонними сервисами.

Например через www.codepunker.com/tools/http-requests получил такой ответ от сервера.

Или через Chrome приложение Postman получил вот такое.

Или можно проверить через данный 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/demo0012/" 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>


Статьи по теме:

  1. Сложение двух чисел на PHP с передачей параметров через GET (серверное приложение)
  2. Сложение двух чисел на PHP с передачей параметров через POST и генерацией JSON (серверное приложение)
  3. Сложение двух чисел в HTML (клиентское приложение)
  4. Сложение двух чисел в Android Studio с использованием Retrofit (клиент-серверное приложение)

Web программирование PHP, Программа сложения двух чисел, Сервер

© 2014 Harrix