Как сделать проверку полей после отправки формы а не сразу?
Изучаю PhP, решил сделать самую простую, ненавороченную форму регистрации. Условия поставил себе такие, если в имени больше 10 символов, то имя не корректно. Если в email нет 2 точек и одного @, то email не корректен.
Всего чего хотел добился, но проблема с If получилась, при обновлении страницы, текст из операторов ветвления, сразу же показывается, и изменяется только в случае если условие верно.
Как можно незамысловата, самым простым для новичков способом сделать так, что бы текст операторов не показывался пока не будет отправлена форма?

Ответы (3 шт):
Сначала делай проверку
if (isset($_POST['submit'] { // пришли данные из формы
а потом проверяй их.
Зачем в мыле две точки должны быть? Одной достаточно.
UPD: форму отправляй методом POST
<form action="" method="post">
UPD 2.0
Как можно незамысловата, самым простым для новичков способом сделать так, что бы текст операторов не показывался пока не будет отправлена форма?
Ответ: Для этого делайте проверку isset() как написал ранее.
По вашему примеру получится вот так:
<?php
if (isset($_GET['submit'])) {
if (isset($_GET['name']) && !empty($_GET['name'])) {
$name = $_GET['name'];
$strName = mb_strlen($name);
if( $strName > 10 ) {
echo "Вы ввели слишком, ошибка!";
}elseif( $strName <= 10 ) {
echo "Ваше имя, все ок!";
}
}
// Тут остальной код
}
?>
Для проверки формы (Данных с инпутов) делается вот так:
<form>
<input name="email">
<input name="submit" value="Отправить">
</form>
<?php
if(isset($_GET['submit'])){
echo "Введенный Email: ".$_GET['email'];
echo "На кнопку отправить нажали!";
}
?>
Наверное, надо, проверить - была ли отправлена форма?
Вообще, формы, которые отправляют какую-либо информацию на сайт, а не запрашивают её с сайта, отправляются методом POST, а не GET.
Поэтому в общем случае проще всего проверить либо if ($_SERVER['REQUEST_METHOD'] === POST), либо просто if($_POST).
В случае же, когда форма отправлена методом GET, или на странице есть несколько форм, и надо понять, какая именно была отправлена, то имеет смысл проверить наличие одного из полей, например if (isset($_POST['firstname'])).
Кроме того надо помнить несколько важных вещей про отправку форм
- если форма была отправлена методом POST, то после успешной обработки всегда обязательно должен быть сделан редирект, с помощью функции
header(). Можно на ту же самую страницу, или любую другую, но редирект обязателен - по этой причине обработка формы должна идти в файле ДО вывода формы, а не после