Прежде всего, существует множество фреймворков и сценариев проверки, которые позволяют вам сделать это. С другой стороны, хорошо, что вы сделали это сами, так что вы знаете, что на самом деле происходит, если позже решите переключиться на фреймворк.
Ваш код выглядит прилично, но с точки зрения удобства использования он не так хорош, как можно было бы надеяться. Если я попытаюсь создать пользователя в вашей системе, возможно, мне придется заполнить формы и несколько раз нажать «Отправить», что может быть довольно неприятно. Вместо этого после заполнения формы должен отображаться список ошибок, а не только одна ошибка за раз. Распространенным способом решения этой проблемы является создание массива сообщений об ошибках.
Реализация может выглядеть примерно так
$errors = array();
if (!preg_match("/^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/", $username))
array_push($errors, "Invalid username");
if (!preg_match("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $email))
array_push($errors, "Invalid password");
if (otherValidationRule())
array_push($errors, "Something else went wrong");
После этого вы проверяете, возникли ли какие-либо ошибки, и печатаете их, если это так
if (sizeof($errors) > 0) {
print("<ul>\n");
foreach($errors as $error)
printf("<li>%s</li>\n", $error);
print("</ul>\n");
}
else {
// Proceed with registration
}