Validacao de formulario PHP

17/09/2017

0

PHP

Boa noite, estou com alguns problemas na validacao do meu formulario ao enviar para o Banco.
1 - Se houver alguma valor em branco em alguns dos campos do formulario ele nao armazene no banco.
2 - Que ao redirecionar de voltar para a minha index os valores ja preenchidos se mantem no preenchidos no campo.

Se alguem puder me ajduar, irei agradecer muito.

Segue o codigo:

Index.php: Fale conosco:

<section id="contato">
<div class="container">
<div class="row">
<div class="col-xs-12">
<div class="page-header"><h1>Contato <small>Fale conosco agora mesmo!</small></h1></div>
</div>
</div>

<div class="row contato">
<div class="col-xs-12">

<form name="frmContato" id="formContato" method="post" action="valida_dados.php">
<div class="row">
<div class="col-md-12">

<div class="form-group">
<input type="text" name="nome" class="form-control input-lg" placeholder="Nome completo"
<?php
if(!empty($_SESSION['value_nome']))
{
echo "value='".$_SESSION['value_nome']."'";
unset($_SESSION['value_nome']);
}
?> />
<?php
if(!empty($_SESSION['vazio_nome']))
{
echo $_SESSION['vazio_nome'];
unset($_SESSION['vazio_nome']);
}
?>
</div>

<div class="form-group">
<input type="email" name="email" class="form-control input-lg" placeholder="E-mail"
<?php
if(!empty($_SESSION['value_email']))
{
echo "value='".$_SESSION['value_email']."'";
unset($_SESSION['value_email']);
}
?> />
<?php
if(!empty($_SESSION['vazio_email']))
{
echo $_SESSION['vazio_email'];
unset($_SESSION['vazio_email']);
}
?>
</div>

<div class="form-group">
<input type="text" name="assunto" class="form-control input-lg" placeholder="Assunto"
<?php
if(!empty($_SESSION['value_assunto']))
{
echo "value='".$_SESSION['value_assunto']."'";
unset($_SESSION['value_assunto']);
}
?> />
<?php
if(!empty($_SESSION['vazio_assunto']))
{
echo $_SESSION['vazio_assunto'];
unset($_SESSION['vazio_assunto']);
}
?>
</div>

</div>
<div class="col-md-12">
<?php
if(!empty($_SESSION['value_mensagem']))
{
?>
<textarea name="mensagem" class="form-control input-lg" placeholder="Sua mensagem!"><?php echo $_SESSION['value_mensagem']; ?></textarea>
<?php
unset($_SESSION['value_mensagem']);
}
else
{
?>
<textarea name="mensagem" class="form-control input-lg" placeholder="Sua mensagem!"></textarea>
<?php
}
?>
<?php
if(!empty($_SESSION['vazio_mensagem']))
{
echo $_SESSION['vazio_mensagem'];
unset($_SESSION['vazio_mensagem']);
}
?>
</div>
</div>

<div class="row">
<div class="col-sm-6">
<input type="submit" name="enviar" value="Enviar Formulário" class="btn btn-default btn-lg">
</div>
</div>
</form>
</div>
</div>
</div>
</section>

PHP validacao:

<?php
session_start();

include_once('conexao.php');
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Imperial Raccoon - Formulario</title>

<link href="css/bootstrap.min.css" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container theme-showcase" role="main">
<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];

if(empty($nome))
{
$_SESSION['vazio_nome'] = "<br><div class='alert alert-danger'>Campo nome é obrigatório! </div>";
$url = 'http://localhost/ImperialRaccoon/Site/index.php#contato';
echo "<META HTTP-EQUIV=REFRESH CONTENT = '0;URL = $url'>";
}
else
{
$_SESSION['value_nome'] = $_POST['nome'];
}

if(empty($email))
{
$_SESSION['vazio_email'] = "<br><div class='alert alert-danger'>Campo e-mail é obrigatório! </div>";
$url = 'http://localhost/ImperialRaccoon/Site/index.php#contato';
echo "<META HTTP-EQUIV=REFRESH CONTENT = '0;URL = $url'>";
}
else
{
$_SESSION['value_email'] = $_POST['email'];
}

if(empty($assunto))
{
$_SESSION['vazio_assunto'] = "<br><div class='alert alert-danger'>Campo assunto é obrigatório! </div>";
$url = 'http://localhost/ImperialRaccoon/Site/index.php#contato';
echo "<META HTTP-EQUIV=REFRESH CONTENT = '0;URL = $url'>";
}
else
{
$_SESSION['value_assunto'] = $_POST['assunto'];
}

if(empty($mensagem))
{
$_SESSION['vazio_mensagem'] = "<br><div class='alert alert-danger'>Campo mensagem é obrigatório! </div>";
$url = 'http://localhost/ImperialRaccoon/Site/index.php#contato';
echo "<META HTTP-EQUIV=REFRESH CONTENT = '0;URL = $url'>";
}
else
{
$_SESSION['value_mensagem'] = $_POST['mensagem'];
}

//ENVIA OS DADOS PARA O BANCO
/*$nome = mysqli_real_escape_string($conexao, $_POST['nome']);
$email = mysqli_real_escape_string($conexao, $_POST['email']);
$assunto = mysqli_real_escape_string($conexao, $_POST['assunto']);
$mensagem = mysqli_real_escape_string($conexao, $_POST['mensagem']);
*/

$envia_banco = "INSERT INTO formulario_contato (nome, email, assunto, mensagem) VALUES ('$nome','$email','$assunto','$mensagem')";

$resultado_envia_banco = mysqli_query($conexao, $envia_banco);

if(mysqli_affected_rows($conexao) > 0)
{
?>
<!-- MODAL FORMULARIO DE CONTATO -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">
Formulário enviado com Sucesso!
</h4>
</div>
<div class="modal-body">
Agradecemos o contato, em breve responderemos seu contato!
</div>
<div class="modal-footer">
<a href="index.php">
<button type="button" id="btn" class="btn btn-success">Ok</button>
</a>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('#myModal').modal('show');
});
</script>
<?php
}
?>
</div>
</body>
</html>
Alexandre

Alexandre

Responder

Post mais votado

18/09/2017

Aconselho usar javascript para fazer a validação, tente mais ou menos assim:

<?php
    if(empty($nome))
    {
        ?>
            <script>
                alert('Campo NOME deve ser preenchido!');
                history.go(-1);
            </script>
        <?php
        exit();
    }

?>


Assim ele redireciona de volta para a pagina anterior e vem com os dados preenchidos antes do post.

Alex William

Alex William
Responder

Mais Posts

18/09/2017

William Nascimento

Concordo use o javascript para validação, eu recomendo o plugin Jquery Validation
Responder

18/09/2017

Alexandre

Então mais da para ao invés de aparecer o pop-up na tela ele apresentar em mensagem igual o botstrap faz? E eu quero que os campos sejam zerados ao retorna a minha index, é possível?
Responder

19/09/2017

William Nascimento

Sim, como nós falamos o mais recomendável validar pelo lado do cliente, e como estamos falando de Html a manipulação de tal se torna fácil com javascript, dê uma pesquisada em validação com javascript, aqui no devmedia tem um curso de validação de formulário com JQuery
Responder

19/09/2017

Gxf

Usando required no fim da tag input, caso o campo esteja em branco ele não salva no banco, é uma boa forma de usar também. Por exemplo:

<input type="text" name="nome" placeholder="Nome" required>
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar