Validação de Formulário PHP - Campos Obrigatórios
- Página anterior Validação de formulário PHP
- Próxima página URL/E-mail do formulário PHP
Este capítulo mostra como criar campos de entrada obrigatórios e criar mensagens de erro necessárias.
Campos de Entrada PHP
Doas regras de validação do capítulo anterior, vemos que os campos "Nome", "E-mail" e "Gênero" são obrigatórios. Esses campos não podem estar vazios e devem ser preenchidos no formulário HTML.
Campo | Regras de Validação |
---|---|
Nome | Obrigatório. Deve conter letras e espaços. |
Obrigatório. Deve conter um endereço de e-mail válido (inclusive @ e .). | |
Website | Opcional. Se preenchido, deve conter um URL válido. |
Comentário | Opcional. Campo de entrada de múltiplas linhas (caixa de texto). |
Gênero | Obrigatório. É necessário selecionar uma opção. |
No capítulo anterior, todos os campos de entrada eram opcionais.
No código a seguir, adicionamos algumas novas variáveis: $nameErr, $emailErr, $genderErr e $websiteErr. Essas variáveis de erro armazenarão as mensagens de erro dos campos solicitados. Também adicionamos uma instrução if else para cada variável $_POST. Essa instrução verifica se o variável $_POST está vazio (através da função PHP empty()). Se estiver vazio, a mensagem de erro será armazenada em diferentes variáveis de erro. Se não estiver vazio, os dados de entrada do usuário serão enviados através da função test_input():
<?php}} // Definir variáveis e configurar como valores vazios $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Nome é obrigatório"; } else { $name = test_input($_POST["name"]); } if (empty($_POST["email"])) { $emailErr = "Email é obrigatório"; } else { $email = test_input($_POST["email"]); } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = test_input($_POST["comment"]); } if (empty($_POST["gender"])) { $genderErr = "Sexo é obrigatório"; } else { $gender = test_input($_POST["gender"]); } } ?>
PHP - Exibir mensagens de erro
No formulário HTML, adicionamos um pouco de script após cada campo solicitado. Se necessário, geramos mensagens de erro apropriadas (se o usuário tentar enviar o formulário sem preencher campos obrigatórios):
Exemplo
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Nome: <input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> E-mail: <input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> Website: <input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> <label>Comentário: <textarea name="comment" rows="5" cols="40"></textarea></label> <br><br> Gênero: <input type="radio" name="gender" value="female">Feminino <input type="radio" name="gender" value="male">Masculino <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Enviar"> </form>
A seguir, é necessário verificar os dados de entrada, ou seja, “O campo Nome contém apenas letras e espaços?”, e “O campo E-mail contém uma sintaxe de endereço de e-mail válido?”, e se o campo Website foi preenchido, “Este campo contém uma URL válida?”.
- Página anterior Validação de formulário PHP
- Próxima página URL/E-mail do formulário PHP