Guest Luckxander Postado Março 11, 2007 Denunciar Share Postado Março 11, 2007 Pessoal, estou tentando validar o formulário seguinte, com a função abaixo dele, mas quando deixo os campos vazios não estou recebendo mensagem de erro.Alguém sabe me dizer o que fiz errado ou estou omitindo ?<html><head><title>Formulário</title></head><body><form action="recebe_dados_get.php" method="post"><table><tr><td align="right">Username: <input type="text" name="username"></td><td>Senha: <input type="password" name="texto" size=7></td></tr><tr><td align="right">Nome: <input type="text" name="nome"></td></tr> <tr><td align="right"> Email: <input type="text" name="email"></td></tr><tr><td align="right">Cidade: <input type="text" name="cidade"></td><td> Estado: <input type="text" size=1 name="estado"></td></tr><tr><td align="center"><input type="submit" value="Envia"></td></tr></table></form></body></html><?php//Validação de formulário PHP - Arquivo "recebe_dados_get.php"$usuario = $_POST["username"]; $senha = $_POST["password"]; $nome = $_POST["nome"]; $email = $_POST["email"]; $cidade = $_POST["cidade"]; $estado = $_POST["estado"]; if (isset($_POST["submit"])) { $error = array(); if (strlen($usuario) < 3) { $error[] = "Username deve conter no mínimo 3 dígitos!"; } else if (strlen($senha) < 5) { $error[] = "Senha deve conter no mínimo 5 dígitos"; } else if (strlen($nome) < 9) { $error[] = "Preencha o nome completo"; } else if (empty($email)|| strstr($email,'@')==FALSE) { $error[] = "O campo de email deve conter @"; } else if (empty($cidade)) { $error[] = "Favor preencher o campo cidade"; } else if (strlen($estado) != 2) { $error[] = "Estado deve ser uma sigla de 2 dígitos"; } foreach ($error as $error) { echo "Erro: $error<br>"; }}?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Março 11, 2007 Denunciar Share Postado Março 11, 2007 Deixe o foreach assim:foreach ($error as $erro) { echo "Erro: $erro<br>"; }Você havia usado $error para duas coisas diferentes.Abraços,Beraldo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Luckxander Postado Março 11, 2007 Denunciar Share Postado Março 11, 2007 Coloquei o foreach como você disse, mas quando envio o formulário com todos os campos vazios, ele retorna a página "recebe_dados_get.php" em branco.Sabe me dizer o que está acontecendo ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Beraldo Postado Março 11, 2007 Denunciar Share Postado Março 11, 2007 Para qye exista $_POST['submit'], é necessário que o botão submit tenha o atributo name:<input type="submit" name="submit" value="Envia"> Tire aquele monte de elseif's também, deixando assim: if (strlen($usuario) < 3) { $error[] = "Username deve conter no mínimo 3 dígitos!"; } if (strlen($senha) < 5) { $error[] = "Senha deve conter no mínimo 5 dígitos"; } //...Abraços,Beraldo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Luckxander Postado Março 12, 2007 Denunciar Share Postado Março 12, 2007 Consegui, obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Luckxander
Pessoal, estou tentando validar o formulário seguinte, com a função abaixo dele, mas quando deixo os campos vazios não estou recebendo mensagem de erro.
Alguém sabe me dizer o que fiz errado ou estou omitindo ?
<html>
<head>
<title>Formulário</title>
</head>
<body>
<form action="recebe_dados_get.php" method="post">
<table>
<tr>
<td align="right">Username: <input type="text" name="username"></td>
<td>Senha: <input type="password" name="texto" size=7></td>
</tr>
<tr><td align="right">
Nome: <input type="text" name="nome">
</td></tr>
<tr><td align="right">
Email: <input type="text" name="email">
</td></tr>
<tr><td align="right">
Cidade: <input type="text" name="cidade"></td>
<td> Estado: <input type="text" size=1 name="estado">
</td></tr>
<tr><td align="center">
<input type="submit" value="Envia">
</td></tr>
</table>
</form>
</body>
</html>
<?php
//Validação de formulário PHP - Arquivo "recebe_dados_get.php"
$usuario = $_POST["username"];
$senha = $_POST["password"];
$nome = $_POST["nome"];
$email = $_POST["email"];
$cidade = $_POST["cidade"];
$estado = $_POST["estado"];
if (isset($_POST["submit"]))
{
$error = array();
if (strlen($usuario) < 3)
{
$error[] = "Username deve conter no mínimo 3 dígitos!";
}
else if (strlen($senha) < 5)
{
$error[] = "Senha deve conter no mínimo 5 dígitos";
}
else if (strlen($nome) < 9)
{
$error[] = "Preencha o nome completo";
}
else if (empty($email)|| strstr($email,'@')==FALSE)
{
$error[] = "O campo de email deve conter @";
}
else if (empty($cidade))
{
$error[] = "Favor preencher o campo cidade";
}
else if (strlen($estado) != 2)
{
$error[] = "Estado deve ser uma sigla de 2 dígitos";
}
foreach ($error as $error)
{
echo "Erro: $error<br>";
}
}
?>
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.