Создаем динамические веб-сайты с помощью PHP, MySQL и JavaScript |
Страница 269 из 478 В следующих двух строках извлекаются значения либо из поля f, либо из поля с. Эти поля предназначены для ввода значений температуры по Фаренгейту или по Цельсию. Если пользователь введет оба значения, то значение по Цельсию будет проигнорировано, а переведено будет значение по Фаренгейту. В качестве меры безопасности в программе также используется новая функция sanitizeString из примера 11.9. Итак, располагая либо отправленными значениями, либо пустыми строками в обеих переменных $f и $с, следующая часть кода использует структуру if___elseif___ el se, которая сначала проверяет, имеет ли значение переменная $f. Если эта переменная не имеет значения, проверяется переменная $с. Если ни одна из этих переменных не имеет значения, переменной $out присваивается пустая строка (к этому месту мы еще вернемся). При обнаружении того, что у переменной $f есть значение, переменной $с присваивается простое математическое выражение, которое переводит значение переменной $f со значения по Фаренгейту в значение по Цельсию. Для этого используется формула По Цельсию = (5/9)(ПоФаренгейту -32). Затем переменной $out присваивается строковое значение, в котором содержится сообщение о результатах перевода. Если же обнаружится, что переменная $с имеет значение, выполняется обратная операция по переводу значения $с из значения по Цельсию в значение по Фаренгейту с присвоением результата переменной $f. При этом используется следующая формула: По Фаренгейту = (9/5)(По_Цельсию + 32). Как и в предыдущем разделе, переменной Sout затем присваивается строковое значение, в котором содержится сообщение о результатах перевода. Для превращения результатов перевода в целое число в обоих переводах вызывается PHP-функция int val. В этом нет особой необходимости, но результат выглядит лучше. Теперь, после выполнения всех арифметических вычислений, программа выдает HTML-код, который начинается с базовых элементов head и titl е и содержит вводный текст, предшествующий отображению значения переменной $out. Если перевода температуры не осуществлялось, переменная Sout будет иметь значение NULL, и выводиться на экран ничего не будет, что, собственно, до тех пор пока не будут отправлены данные формы, нам и нужно. Но если перевод состоялся, переменная Sout содержит результат, который отображается на экране. Затем следует форма, настроенная на отправку данных файлу convert.php (то есть самой программе) с использованием метода POST. Внутри формы содержатся два поля для ввода температуры как по Фаренгейту, так и по Цельсию. Затем отображается кнопка отправки данных, имеющая надпись «Перевести», и форма закрывается. После вывода HTML-кода, закрывающего документ, программа завершается функцией sanitizeString из примера 11.9. Все примеры, показанные в данной главе, используют для отправки данных формы метод POST. Я рекомендую использовать именно этот метод как наиболее подходящий и безопасный. Разумеется, формы можно легко перестроить под использование метода GET, тогда значения нужно будет извлекать не из массива $_POST, а из массива $_GET. Причины применения другого метода могут заключаться в предоставлении возможности создания закладок или непосредственных ссылок из другой страницы на результаты поиска. |