Это мое UsersController
где валидация в PHP есть,
Я начал сеанс в индексе, но я не уверен, где это закончить и как:
<?php
public function createAction(){
require "Views/Users/new.php";
if (empty($_POST["email"])) {
$validation = false;
array_push($errors, "Field 'email' is required.");
}elseif (!filter_var($_POST["email"],FILTER_VALIDATE_EMAIL))
{
$validation = false;
array_push($errors, "Field'email' invalid format.");
}
if ($validation) {
$user = new Users();
$user->email = $_POST["email"];
$status = Users::insert($user);
}
if ($validation) {
$_SESSION["users-create-errors"] = $errors;
if (array_key_exists("users-create-errors", $_SESSION))
{
unset($_SESSION["users-create-errors"]);
}
}
}
}
}
<?php
public function createAction(){
require "Views/Users/new.php";
// initialise $validation and $errors
$validation = true;
$errors = [];
if (empty($_POST["email"])) {
$validation = false;
array_push($errors, "Field 'email' is required.");
} elseif (!filter_var($_POST["email"],FILTER_VALIDATE_EMAIL)) {
$validation = false;
array_push($errors, "Field'email' invalid format.");
}
if ($validation) {
$user = new Users();
$user->email = $_POST["email"];
$status = Users::insert($user);
}
// this probably should be !$validation
if (!$validation) {
// you set $_SESSION["users-create-errors"]
// and then if its set which it of course will be
// you destroy it?????
//$_SESSION["users-create-errors"] = $errors;
//if (array_key_exists("users-create-errors", $_SESSION)) {
//unset($_SESSION["users-create-errors"]);
//}
// just set it to a new value which will overwrite anything
// that is left in there. But this shoudl be cleaned out
// when the errors have been reported to the user
$_SESSION["users-create-errors"] = $errors;
}
Других решений пока нет …