Validation проверяет только 1 форму а не 2? Почему не на другие формы не проходит валидация?

Validation в PHP выполняет проверку данных в соответствии с определенными правилами, чтобы убедиться, что они соответствуют заданным критериям.

В терминах PHP, каждая форма обрабатывается отдельно. Если у вас есть две формы на одной странице, вы должны убедиться, что каждая форма будет правильно обработана при отправке данных. Это можно сделать, используя условные операторы или перенаправляя или обрабатывая каждую форму одновременно.

Если ваши формы отправляют данные на один скрипт обработки, то это может быть причиной, по которой валидация работает только для одной формы. При обработке запроса на сервере, вам необходимо явно указать, какую форму вы хотите обработать. В противном случае, PHP будет пытаться обработать первую форму, и если нет явной проверки на это, то вторая форма может быть проигнорирована.

Для решения этой проблемы вы можете использовать условные операторы, чтобы определить, какая форма была отправлена, и соответственно обработать ее данные. Например:


if ($_SERVER['REQUEST_METHOD'] == 'POST') {
   if (isset($_POST['form1_submit'])) {
       // Обработка данных из первой формы

       // Валидация данных из первой формы
   } elseif (isset($_POST['form2_submit'])) {
       // Обработка данных из второй формы

       // Валидация данных из второй формы
   }
}

В этом примере мы проверяем метод запроса ($_SERVER['REQUEST_METHOD']) для определения того, отправлены ли данные через POST. Затем мы используем условные операторы (if-else) для определения, какая форма была отправлена.

Можно также использовать разные атрибуты "name" для каждой кнопки отправки формы и проверять их с помощью оператора isset.

Таким образом, проверка и валидация форм в PHP должны быть специфичными для каждой формы, и вы должны продумать их обработку в зависимости от конкретных потребностей вашего проекта.