Как правильнее было написать скрипт?

B
На сайте с 14.04.2012
Offline
35
811

Сегодня только сел за обучение PHP. Написал первый скрипт.Скрипт стандартный: подсчет площади треугольника по 3-м его сторонам.

Состоит из 2 файлов. Html+обработчик php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=cp1251" />
<title>Площадь треугольника</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<h2>Найдем S треугольника</h2>
<p> Введите стороны треугольника</p>
<form method="post" action="math.php">
<label for="a">Сторона A</label>
<input type="text" id="a" name="a" /><br />
<label for="b">Сторона B</label>
<input type="text" id="b" name="b" /><br />
<label for="c">Сторона C</label>
<input type="text" id="c" name="c" /><br />

<input type="submit" value="Подсчитать площадь треугольника" name="submit" />
</form>
</body>
</html>

и сам обработчик PHP

<html>

<head>

<title>Вычисляем площадь треугольника, зная все его стороны </title>
</head>
<h2> Вычисляем площадь треугольника, зная все его стороны</h2>
<?php
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$p = ($a+$b+$c)/2;
$s1 = ($p*($p-$a)*($p-$b)*($p-$c));
$s = pow ($s1, 0.5);
echo 'Площадь данного треугольника составляет: '. $s;
?>
</body>
</html>

UPD. Что-то форум не воспринимает php.Выкладываю скрин:

Что бы посоветовали? Скрипт в принципе верен и исправен. Хотелось бы подойти к данному вопросу со стороны семантики. Как можно было бы правильнее реалищовать задумку?

Joker-jar
На сайте с 26.08.2010
Offline
171
#1

Пробуйте делать форму и обработчик в одном файле, проверять, были ли переданы данные. Если переданы, выводить результат. Иначе - форму.

B
На сайте с 14.04.2012
Offline
35
#2
Если переданы, выводить результат. Иначе - форму.

Команда else?Не подскажите как в данном случае можно сделать?Если вас не затруднит конечно

seosniks
На сайте с 13.08.2007
Offline
389
#3
bimbo:
Команда else?Не подскажите как в данном случае можно сделать?Если вас не затруднит конечно

Вариантов масса, можно просто


<a href =./?a=send>send<a/>
if(isset($_GET['a']) && !preg_match("/^[0-9a-$_GET['a'])){ $err= ("err "); }
$form=$_GET['a'];
if($form=='send'){echo 'тут форма'} else{echo 'тут результат';}
или f(!$form=='send'){echo 'тут форма'} else{echo 'тут результат';}

if(isset($_POST['send'])) {


switch($_POST['send']){
case "add":

break;
switch($_POST['send2']){
case "add":

break;


switch($_POST['send3']){
case "add":

break;

итд.

Сранача выводите форму, пользователь вводит данные и жмет ок идет проверка, если все данные введены верно то выводим else к примеру. Если не верно выводим ошибки и возврат или форму.

Главное проверять данные из формы.

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#4

Работает да и фиг с ним.

Оптимизировать нужно только когда, что-то тормозит. Остальное мало важно, особенно в вашем примере.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
C
На сайте с 04.02.2005
Offline
291
#5

А если переданы неверные значения, например, не все поля заполнены.

Или же в полях ввода не числовые значения?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий