Pobieranie danych z formularza a dzielenie przez 0

0

Witam
Próbuję za pomocą php w jednym pliku móc obliczyć sobię proste równanie kwadratowe. Parametry a, b i c chcę pobierac od użytkownika z formularza.
Problem w tym że zmienne a, b i c przed podaniem parametrów w formularzu przyjmują wartość 0 i dostaję błąd odnośnie dzielenia przez zero.
Jak to rozwiązać?

 <body>
   
      <form action="" method="post">
Parametr a: <input type="text" name="a" />
Parametr b: <input type="text" name="b" />
Parametr c: <input type="text" name="c" />
<input type="submit" />
</form>
<?php
$a = isset($_POST['a']) ? $_POST['a'] : '';
$b = isset($_POST['b']) ? $_POST['b'] : '';
$c = isset($_POST['c']) ? $_POST['c'] : '';
       $delta = $b*$b-4*$a*$c;
       if ($delta < 0) { 
         print ('Równanie nie ma pierwiastków rzeczywistych');
       } elseif ($delta == 0) {
         $x1 = -$b/(2 * $a);
         print ("Równanie ma jeden pierwiastek rzeczywisty: $x1");
       } else {
         $x1 = (-$b-sqrt($delta)) / (2*$a);
         $x2 = (-$b+sqrt($delta)) / (2*$a);
         print ("Równanie ma dwa pierwiastki rzeczywiste: $x1 i $x2");
       }
  ?>
  </body>
0

A spróbuj usunąć te linijki

$a = isset($_POST['a']) ? $_POST['a'] : '';
$b = isset($_POST['b']) ? $_POST['b'] : '';
$c = isset($_POST['c']) ? $_POST['c'] : '';

0

Nie baw się w domyślne wartości, tylko po prostu:

if (isset($_POST['a'], $_POST['b'], $_POST['c'])) {
  $a = $_POST['a']; 
  // (...)
}
0

wtedy wywala Notice: Undefined variable: b in... kilka razy (nie ma zadeklarowanych wartości zmiennych których później używa we równaniach?) oraz Warning: Division by zero który pojawia się od początku przed wysłaniem parametrów.

@Patryk27 już sprawdzam.

up.
Jednak coś chyba nie do końca zrozumiałem. Mógłbyś napisać całośc?

0
if (isset($_POST['a'], $_POST['b'], $_POST['c'])) {
	$a = (float)$_POST['a'];
	$b = (float)$_POST['b'];
	$c = (float)$_POST['c'];
	
	$delta = $b*$b-4*$a*$c;
	
	// (...)
}
0

Dziękuję @Patryk27
Problem rozwiązany ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1