Я думаю, что лучше всего использовать проверку на стороне клиента с использованием HTML5, а затем использовать на стороне сервера. В PHP есть такие функции, как FILTER_SANITIZE_STRING (хотя вам не нужно это проверять), которые фильтруют строки, и вы можете использовать FILTER_VALIDATE_EMAIL вместо ручной проверки электронной почты с помощью регулярных выражений. Вы также можете использовать такие ограничения, как количество символов и т. Д.
Пример концептуально ...
if form is submitted
if 'name' is not empty
create a variable that equals filter_var($_POST['name'], FILTER_SANITIZE_STRING)
if 'name' is empty then set echo an error message
if 'email is not empty
create a variable that equals filter_var($_POST['email'], FILTER_SANITIZE_STRING)
// then you can validate email
if (!filter_var($email, FILTER_VALIDATE_EMAIL))
error message
// do this for other variables
if there's not error
send email and or a thank you message
//FORM here