Отправляет email-рассылки с помощью сервиса Sendsay

PHP-песочница

  Все выпуски  

PHP-песочница Скрипт-сумматор


Php-«песочница»

Выпуск 21

Здравствуйте. С вами Андрей Чернобай с новым выпуском "PHP - песочницы". Рассылка создана для самых "маленьких" - для тех, кто делает только первые шаги в программировании на PHP. Если Вы хотите двигаться быстрее и освоить создание PHP- сайтов профессионально, рекомендую курс PHP+MySQL для начинающих, потому что в этом курсе собрано всё то, что необходимо именно для создания сайтов, никакой "воды", при этом всё доступно, подробно до мелочей и наглядно.

Для отписки от рассылки внизу страницы есть ссылка. А с остальными продолжим.

В прошлых выпусках я начал выкладывать свою коллекцию скриптов. И сегодня разберём ещё один скрипт.

Суммирование чисел

На индексной странице добавляем заголовок "Суммирование чисел" и делаем из него ссылку на файл именем, например, sum.php. Создаём этот файл.

Запускаем Денвер, открываем индексную страницу в браузере и проверяем, как работает новая ссылка на новую страницу, которая, естественно, пуста.

Открываем sum.php в своём редакторе.

По идее, код этой страницы сейчас только базовый HTML:

<html>
<head>
<title> Суммирование чисел </title>
</head>
<body>

</body>
</html>

Чтобы иметь возможность числа суммировать, нужна форма с полями, в которые эти числа будут вписываться, и кнопка, которой будет запускаться скрипт-сумматор. Поэтому сперва создаём форму. Дописыааем следующее:

<html>
<head>
<title> Суммирование чисел </title>
</head>

<body>

<form method="post"> <!--так как скрипт-обработчик в этом же файле, то атрибут action не указываем-->
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<!-- для перехода на главную делаем ссылку-->
<p align="center"><a href="index.html">На главную</a></p>

</body>
</html>

Сохраните изменения, обновите страницу в браузере. На странице должна появиться форма из двух текстовых полей и кнопки "Сложить".

Но, как нам давным-давно известно, никакая кнопка сама по себе ничего не "сложит", нужен скрипт-обработчик формы. Создадим его. Добавляем следующий фрагмент (сначала просто напишем этот код, а потом я поэтапно объясню, что и для чего в нём):

..........
<body>

<?php
if (isset ($_POST['v1']) && isset ($_POST['v2'])): //если в массиве POST существуют обе переменных v1 и v2, то показываем рузультат сложения.
?>

<?php
$v1 = $_POST['v1']; //помещаем оба значения массива в переменные
$v2 = $_POST['v2'];
$result = $v1 + $v2; //переменные суммируем
?>

<p> <?php echo $v1; ?> + <?php echo $v2; ?> = <?php echo $result; ?> </p>

<!--и ссылка для возвращения к странице с формой-->
<p><a href="sum.php">Хочу суммировать ещё</a></p>

<?php
else: // иначе (если в массиве POST нет никаких переменных) выводится форма, которая ниже
?>

<form method="post"> <!--так как скрипт-обработчик в этом же файле, то атрибут action не указываем-->
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<?php
endif;
?>

<p align="center"><a href="index.html">На главную</a></p>
</body>
</html>

Теперь по-порядку.

При открытии страницы мы должны видеть форму, а при обработке формы нужно видеть результат, поэтому нужны два режима отображения странички. То есть, если нужно ввести данные, то на странице должна быть показана форма; а если нужно показать уже результат, то и выводится только результат без формы. Для этого и вводим проверку:

<?php
if (isset ($_POST['v1']) && isset ($_POST['v2'])): //если в массиве POST существуют обе переменных v1 и v2, то показываем рузультат сложения.
?>

Массив POST - это глобальный массив, который образуется из данных в полях формы. Если эти данные есть (поля формы заполнены), то они помещаются в простые переменные и суммируются:

<?php
$v1 = $_POST['v1']; //помещаем оба значения массива в переменные
$v2 = $_POST['v2'];
$result = $v1 + $v2; //переменные суммируем
?>

После чего на страницу выводится сумма чисел, введённых в форму. И ссылка для возвращения на страницу с формой - просто для удобства:

<p> <?php echo $v1; ?> + <?php echo $v2; ?> = <?php echo $result; ?> </p>
<!--и ссылка для возвращения к странице с формой-->
<p><a href="sum.php">Хочу суммировать ещё</a></p>

Иначе, то есть, если в полях формы нет значений, просто выводится сама форма и после неё скрипт проверки формы останавливается:

...
<?php
else: // иначе (если в массиве POST нет никаких переменных) выводится форма, которая ниже
?>
<form method="post"> <!--так как скрипт-обработчик в этом же файле, то атрибут action не указываем-->
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<?php
endif;
?>
...

Таким образм весь код этого файла выглядит так:

<html>
<head>
<title> Суммирование чисел </title>
</head>
<body>

<?php
if (isset ($_POST['v1']) && isset ($_POST['v2'])): //если в массиве POST существуют обе переменных v1 и v2, то показываем рузультат сложения.
?>

<?php
$v1 = $_POST['v1']; //помещаем оба значения массива в переменные
$v2 = $_POST['v2'];
$result = $v1 + $v2; //переменные суммируем
?>

<p> <?php echo $v1; ?> + <?php echo $v2; ?> = <?php echo $result; ?> </p>

<!--и ссылка для возвращения к странице с формой-->
<p><a href="sum.php">Хочу суммировать ещё</a></p>

<?php
else: // иначе (если в массиве POST нет никаких переменных) выводится форма, которая ниже
?>

<form method="post"><!--так как скрипт-обработчик в этом же файле, то атрибут action не указываем-->
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<?php
endif;
?>

<p align="center"><a href="index.html">На главную</a></p>

</body>
</html>

Обращаю ваше внимание на нескольких моментах.

Первое. Промежутки между фрагментами кода я сделал только для лучшего их восприятия, на самом деле они там не нужны.

Второе. Возможно, вы и сами обратили внимание, что после операторов if и else я поставил двоеточия, чего раньше не делал. Это более грамотная запись, когда PHP чередуется с HTML. То же самое можно было бы записать так:

<html>
<head>
<title> Суммирование чисел </title>
</head>
<body>

<?php
if (isset ($_POST['v1']) && isset ($_POST['v2']))
{
?>

<?php
$v1 = $_POST['v1'];
$v2 = $_POST['v2'];
$result = $v1 + $v2;
?>

<p> <?php echo $v1; ?> + <?php echo $v2; ?> = <?php echo $result; ?> </p>

<!--и ссылка для возвращения к странице с формой-->
<p><a href="sum.php">Хочу суммировать ещё</a></p>

<?php
}
else
{
?>

<form method="post">
<p>Первое число: <input name="v1" type="text"></p>
<p>Второе число: <input name="v2" type="text"></p>
<p><input type="submit" value="Сложить"></p>
</form>

<?php
}
end;
?>

<p align="center"><a href="index.html">На главную</a></p>
</body>
</html>

Успехов.

P. S. Если Вы хотите научиться создавать PHP-сайты профессионально и сэкономить на освоении программирования несколько лет, то Вам сюда.


"PHP + MySQL для начинающих"


P. S. Остальные уроки и статьи по PHP Вы найдёте как всегда здесь. Все возникающие вопросы Вы можете задать, прислав мне письмо на электроный адрес (см. подпись к выпуску) или через форму для добавления комментариев на страницах сайта.

Автор расылки: Андрей Чернобай
kapitansg@yandex.ru


В избранное