Hej, uczę się PHP i mam problem z zadaniem:
<?php
// Jesteś praktykantem w firmie zajmującej się tworzeniem witryn i aplikacji internetowych. Otrzymałeś zadanie polegające na stworzeniu aplikacji w języku PHP.
// W aplikacji ma być utworzona klasa odcinek zawierająca cztery publiczne pola, określające współrzędne początku i końca odcinka we współrzędnych x, y.
// W klasie odcinek należy utworzyć konstruktor, który współrzędnym przypisze podane przez użytkownika (za pomocą formularza) wartości.
// Ponadto w klasie powinna być zadeklarowana metoda obliczająca długość odcinka.
// W aplikacji należy utworzyć dwa obiekty klasy odcinek.
// Wynikiem działania aplikacji ma być wyświetlona wartość długości obu odcinków oraz informacja, który z nich jest dłuższy.
session_start();
class Odcinek
{
public $start_x;
public $start_y;
public $end_x;
public $end_y;
public function __construct($start_x, $start_y, $end_x, $end_y)
{
$this->start_x = $start_x;
$this->start_y = $start_y;
$this->end_x = $end_x;
$this->end_y = $end_y;
}
public function info()
{
echo "Początek: (" . $this->start_x . ",";
echo $this->start_y . ")<br>";
echo "Koniec: (" . $this->end_x . ",";
echo $this->end_y . ")<br>";
}
public function count()
{
return sqrt(($this->start_x - $this->end_x) ** 2 + ($this->start_y - $this->end_y) ** 2);
}
}
require "task2.2_form.html";
/* <form action="task2.2.php" method="post">
<input type="number" name="start_x" id="">
<input type="number" name="start_y" id="">
<input type="number" name="end_x" id="">
<input type="number" name="end_y" id="">
<input type="submit" value="Send">
</form> */
if (isset($_POST['start_x'])) {
if (!isset($odcinek1)) {
$odcinek1 = new Odcinek($_POST['start_x'], $_POST['start_y'], $_POST['end_x'], $_POST['end_y']);
$odcinek1->info();
echo "<br>";
echo round($odcinek1->count(), 2);
echo "<br><br>";
}
if (!isset($odcinek2)) {
$odcinek2 = new Odcinek($_POST['start_x'], $_POST['start_y'], $_POST['end_x'], $_POST['end_y']);
$odcinek2->info();
echo "<br>";
echo round($odcinek1->count(), 2);
echo "<br><br>";
}
}
Nie wiem jak wysłać dane z formularza do pierwszego obiektu a przy drugim wysłaniu do drugiego. Przy użyciu pętli while
? Próbowałem jakoś zapisywać wartości do zmiennej sesyjnej i ciasteczek ale chyba nie do końca rozumiem działanie tych mechanizmów. W jaki sposób to rozwiązać? I drugie pytanko co do tej lini:
if (isset($_POST['start_x'])) {
jak ustawić warunek, żeby instrukcja się wykonywała tylko po wysłaniu formularza?