Проверка формы с помощью session_start () и jQuery не отображает ни ошибок, где моя ошибка?

Это мое 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"]);
}

}
}
}

}

1

Решение

<?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;


}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]