Cześć! Mam pole wejściowe w którym mogę zaktualizować miejsce zamieszkania. Obecnie zrobiłem walidację, która ma sprawić ze puste pole nie może być dodane do bazy. Niestety ale poniższa walidacja nie działa bo puste wartości takze aktualizuje. Wydaje mi się ze wszystko jest ok, naprawdę nie mam pojęcia dlaczego to nie działa. Ponzej jest kod widoku, i klas odpowiadających za walidację i aktualizację.
Widolk
<form method="post">
<div class="row">
<div class="form-group col-xl-8 text-light" class="input-icons">
<input type="text" name="place" class="form-control border border-dark">
</div>
<div class="col-xl-4" id="myDiv">
<button type="submit" class="btn btn-danger mb-3" name="submit_place">Zapisz zmiany</button>
</div>
</div>
</form>
$placeValidation = new PlaceValidation($database, $_POST);
$update_place = new PlaceUpdating($database, $_POST, $placeValidation);
if(isset($_POST['submit_place']))
{
$errorPlace = $placeValidation->getError();
$validatePlace = $placeValidation->validatePlace();
$place = $update_place->UpdatePlace();
echo "<meta http-equiv='refresh' content='0'>";
}
Klasa odpowiadająca za walidację
class PlaceValidation
{
private $data;
private $database;
private $error = '';
public function __construct($database, $data)
{
$this->database = $database;
$this->data = $data;
}
public function getError()
{
return $this->error;
}
public function ValidatePlace()
{
$val = htmlspecialchars($this->data['place']);
if(empty($val))
{
return $this->errors = "Podaj numer telefonu";
}
}
}
Klasa odpowiadająca za aktualizację miejsca zamieszkania
class PlaceUpdating
{
private $database;
private $data;
private $placeValidation;
public function __construct($database, $data, $placeValidation)
{
$this->database = $database;
$this->data = $data;
$this->placeValidation = $placeValidation;
}
public function UpdatePlace()
{
if(empty($this->placeValidation->getError())) {
$place = htmlspecialchars($this->data["place"]);
$session = htmlspecialchars($_SESSION['user_id']);
$query = $this->database->ConnectDatabase()->prepare("UPDATE user set place_living = :place where user_id = :id");
$query->bindParam(':place', $place, PDO::PARAM_STR);
$query->bindParam(':id', $session, PDO::PARAM_INT);
$query->execute();
}
}
}