Это зависит от того, что должно храниться в этих переменных и где эта переменная используется.
Посмотрите хоть этот курс nnm-club.me/forum/viewtopic.php?t=550443
Он всего 2:45 длится
@ernestby, нет. isset проверит наличие самого факта существования переменной. Но вот он не проверит содержимое этой переменной. Когда вы предполагаете, что там число, юзер может отправить строку(хотя, все что через формы - уже строка по типу). Или например в БД указано длину ячейки как 3-значное число, а юзер отправит 4-х значное. Но это мелочи, хоть и неприятные. Но вот когда к вам забежит юолее продвинутый и вредный человек, то с помощью POST он может отправить вам SQL код, который либо скопирует БД, или добавит себя в таблицу с правами доступа админа к сайту...и так далее.
И тут зайдет 1 посетитель и вылезет ошибка на 1001 раз опробования...
А если на сервере что-то изменят, и вылезет ошибка на на одной страничке из 1000, о которой вы и забыли... Что тогда? Или вы каждый день проверяете все свои страницы на наличие ошибок? А если ошибки выпадают только глубокой ночью(где-то такое слышал, что ночью сайт не работает, а днем все норм). Или связано с БД. Или в структуре сайта что-то поменяете(мало ли файл не тот удалите) спустя месяц - откроете а везде экран белый. На локалке все хорошо. А тут либо включать вывод ошибок(но их и посетитель увидит тогда), либо сайт перезаливать...
Только первый будет не совсем корректен, так как переменные уже прошли проверку при присваивании от $_POST, поэтому они существуют.
А показывать пользователю, какое поле он не заполнил на php не стоит. Это на JS с html5 надо делать. А уж если он проходит ту защиту от 'дурака', то задайтесь вопрос, зачем это ему...
Т.е. если вдруг у вас будет, например, ошибка подключения к базе, то пользователям отправится белый экран? И раз вы не собираете в лог-файле ошибки, то этого и не заметите, пока не с коннектитесь сами с базой данных.