Мне интересно, как я могу отображать ошибки и останавливать публикацию формы при вводе неверных или нулевых данных.
Вы должны сделать проверку после if(isset($_POST['submit']))
. Например, вы можете проверить, что имя не пустое:
if (empty($_POST['name'])) {
$errors[] = 'name must not be empty';
}
Для более сложных проверок, таких как подтверждение того, что электронная почта действительна, вы должны взглянуть на расширение фильтра :
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
if (!$email) // invalid email
И после всех ваших проверок:
if (!count($errors)) {
// do the insert here
}
Вы можете использовать блок while для прерывания, как только обнаружите ошибку:
while (isset($_POST['submit'])) {
if (empty($_POST['name'])) {
$errors = 'name must not be empty';
break;
}
// do the insert here
break;
}
При изучении создания форм в Интернете я также слышал об инъекциях sql, я защищен?
Да, пока вы избегаете всего, что встраиваете в SQL-запрос (так же, как вы делаете), вы защищены.
Вы должны попробовать использовать подготовленные заявления , это безопаснее и проще в использовании.