У меня для переменных перехвата ошибок установлено значение false, поэтому при загрузке страницы сообщения об ошибках не выбрасываются.У меня есть переменная $error
, которая изначально установлена как инициализатор, например, $error = " ";
.Всякий раз, когда возникает ошибка, я бы хотел, чтобы $error
было установлено для сообщения, которое отображает каждая ошибка, и если $error
не соответствует тому, с чем оно было первоначально инициализировано, то оно должно включать мою страницу формы, чтобы позволить пользователюпопробуйте еще раз.
Я пытался установить для переменной $error
новую строку для указанной ошибки, например, "Вы не можете оставить поле цены пустым!"и в конце моего начального цикла if есть еще один цикл if, проверяющий, была ли изменена $error
, и если она была добавлена, снова включите страницу формы.На данный момент мои переменные никогда не меняются и остаются только такими, какими они были изначально установлены.
$pError = false;
$cError = false;
$error = " ";
if(!isset($_GET['pPrice']) || (!isset($_GET['cPrice']))){ //if not set include form
include "form.php";
}
if(isset($_GET['pPrice']) && isset($_GET['cPrice'])){ //if set get variables from form
$pPrice = $_GET['pPrice'];
$cPrice = $_GET['cPrice'];
$validateP = filter_input(INPUT_GET, 'pPrice', FILTER_VALIDATE_FLOAT); //checks to see if value is a float
$validateC = filter_input(INPUT_GET, 'cPrice', FILTER_VALIDATE_FLOAT); //checks to see if value is a float
if(empty($_GET['pPrice']) && (empty($_GET['cPrice']))){ //both fields empty
$error = "<h2 class='error'>Please make sure you fill out all the fields!</h2>";
}
else if(empty($_GET['pPrice'])){ //first field empty
$error = "<h2 class='error'>Previous price can't be empty!</h2>";
}
else if(empty($_GET['cPrice'])){ //second field empty
$error = "<h2 class='error'>Current price can't be empty!</h2>";
}
else if(!$validateP && !$validateC){ //both fields have incorrect inputs
$error = "<h2 class='error'>Please enter numbers only!</h2>";
}
else if(!$validateP){ //first field has a incorrect input
$error = "<h2 class='error'>Previous Price must be a valid number!</h2>";
}
else if(!$validateC){ //second field has a incorrect input
$error = "<h2 class='error'>Current Price must be a valid number!</h2>";
}
else {
echo "Your results have been submitted!";
}
if (!$error == " ") {
$pError == true;
$cError == true;
echo $error;
include "form.php";
} else{
$pError = false;
$cError = false;
}
}
Ожидаемые результаты: если пользователь введет неправильное значение или не введет значение вообще, обновите переменную $ошибка для этой конкретной ошибки, измените логическое значение с false на true, затем разрешите еще одну попытку.Если ошибок нет, выведите сообщение «success».