Neste capítulo, apresentaremos como definir os campos obrigatórios do formulário e as mensagens de erro.
No capítulo anterior apresentamos as regras de validação da tabela. Podemos observar que os campos “Nome”, “E-mail” e “Sexo” são obrigatórios e cada campo não pode ficar vazio.
Campo | Regras de validação |
---|---|
nome | Obrigatório. + só pode conter letras e espaços |
Obrigatório. + Deve conter um endereço de e-mail válido (contém "@" e ".") | |
URL | Opcional. Se presente, deve conter um URL válido |
Observação | Opcional. Campos multilinha (campos de texto). |
gênero | Obrigatório. Necessário para selecionar um. |
Como nos capítulos anteriores, todos os campos de entrada são opcionais.
No código a seguir adicionamos algumas novas variáveis: $nameErr, $emailErr, $genderErr e $websiteErr. Essas variáveis de erro serão exibidas nos campos obrigatórios. Também adicionamos uma instrução if else para cada variável $_POST. Estas instruções verificarão se a variável $_POST está vazia (usando a função vazia() do PHP). Se estiver vazio, a mensagem de erro correspondente será exibida. Se não estiver vazio, os dados serão passados para a função test_input():
<?php// Definir variáveis e configurá-las para valores vazios por padrão $nameErr = $emailErr = $genderErr = $websiteErr = "";$name = $email = $gender = $comment = $website = ""; if ($_SERVER ["REQUEST_METHOD"] == "POST") { if (empty($_POST["nome"])) { $nameErr = "Nome é obrigatório."; } else { $name = test_input($_POST["name"] } if (empty($_POST["email"])) { $emailErr = "E-mail é obrigatório." } else { $email = test_input ( $_POST["email"] } if (vazio($_POST["site"])) { $site = "" } else { $site = ""; test_input($_POST["website"] } if (empty($_POST["comment"])) { $comment = "" } else { $comment = test_input($_POST["comment"] }); if (empty($_POST["gênero"])) { $genderErr = "Sexo é obrigatório."; test_input($_POST["gênero"]);
No formulário de exemplo HTML a seguir, adicionamos alguns scripts a cada campo. Cada script exibirá uma mensagem de erro quando as informações forem inseridas incorretamente. (Se o usuário enviar o formulário sem preencher as informações, será exibida uma mensagem de erro):
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"> Nome: <input type="text" name="name"> <span>* <? php echo $nameErr;?></span> <br><br> E-mail: <input type="text" name="email"> <span>* <?php echo $emailErr;?></span > <br><br> Site: <input type="text" name="website"> <span><?php echo $websiteErr;?></span> <br><br> Observações: <textarea name=" comment" rows="5" cols="40"></textarea> <br><br> Gênero: <input type="radio" name="gender" value="female">Feminino<input type="radio "nome="gênero" value="male">Masculino<span>* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </ formulário>