Limpar URL via GET

10/11/2013

0

PHP

Bem minha dúvida é que eu tenho um formulário de cadastro com retorno de mensagem na mesma página, para isso criei uma função para gravar no banco, só que quando o usuario cadastra um cliente, a url do get fica na barra de endereço e se ele pressionar enter grava os mesmos dados quantas vezes quiser, já tentei usar o

header("Location:cadclientes.php");


mais retorna um erro e não funciona, existe outra maneira de fazer isso?

Action do meu formulario:
action="?acao=gravar"


pagina de cadastro: cadclientes.php

<?php
            if(isset($_POST['cadastrar']))
            {
                include 'config/funcoes.php';
                if(!empty($_POST['nome']) && !empty($_POST['telefone']) &&
                   !empty($_POST['email'])&& !empty($_POST['usuario'])&& 
                   !empty($_POST['senha']))
                {    
                gravar();
                }
                else
                {
                    echo '<div class="alert alert-warning">Verifique se algum campo necessario está em branco.</div>';
                }
            }


Função para gravar no banco:
function gravar()
{
    $con = mysql_connect("localhost","root","");
    mysql_select_db("paulista_pinturas",$con);
    
    if(isset($_GET['acao']) && $_GET['acao'] == 'gravar')
    {         
        $nome = $_POST['nome'];
        $cpf = $_POST['cpf'];
        $telefone = $_POST['telefone'];
        $celular = $_POST['celular'];
        $email = $_POST['email'];
        $usuario = $_POST['usuario'];
        $senha = $_POST['senha'];
                
        $sql = "INSERT INTO clientes (nome,cpf,telefone,celular,email,usuario,senha)"
                . " VALUES('$nome', '$cpf', '$telefone', '$celular', '$email', '$usuario', '$senha')";
    
        $resultado = mysql_query($sql,$con);
        
        if($resultado == TRUE)
        {
            
            echo "<div class='alert alert-success offset2 span8'>
              <button type='button' class='close' data-dismiss='alert'>×</button>
              <strong>Atenção: </strong>Cadastro realizado com seucesso!
            </div>";
            
        }
        else
        {
           echo "<div class='alert alert-success'>
              <button type='button' class='close' data-dismiss='alert'>×</button>
              <strong>Atenção: </strong>Erro ao cadastrar, contacte o seu
              webmaster para resolver seu problema.
            </div>";
        }
    }
}
Raniel Gomes

Raniel Gomes

Responder

Posts

11/11/2013

William

Qual a mensagem de erro que retorna?
Responder

11/11/2013

Raniel Gomes

Fiz assim e deu ceerto:

 <?php
            if(isset($_POST['cadastrar']))
            {
                include 'config/funcoes.php';
                if(!empty($_POST['nome']) && !empty($_POST['telefone']) &&
                   !empty($_POST['email'])&& !empty($_POST['usuario'])&& 
                   !empty($_POST['senha']))
                {    
                gravar();
                header("Location:cadcliente.php");
                echo '<div class="alert alert-success">Cadastro realizado com sucesso.</div>';
                }
                else
                {
                    echo '<div class="alert alert-warning">Verifique se algum campo necessario está em branco.</div>';
                }
            }
            ?>


Mais ai não retorna nenhuma mensagem de que o cadastro realizado com sucesso...
Responder

11/11/2013

William

Geralmente esses retornos de verificação sucesso ou erro eu jogo dentro de uma SESSION, depois só verifico na página onde será exibida a mensagem!!
Responder

11/11/2013

Raniel Gomes

Tem algum exemplo que poderia me passar?
Responder

11/11/2013

William

Colega vou postar um exemplo simples aqui, mas usando PDO porque as funções mysql_ do PHP já estão sendo descontinuadas e pessoalmente não recomendo mais a utilização das mesmas!

// Instruções usando PDO

// Conexão com o banco de dados
$pdo = new PDO('mysql:host=localhost; dbname=dbteste', 'root', '00000');

// Instruções para inserção dos dados capturando o retorno
$sql = "INSERT INTO TAB_TESTE(campo1, campo2)VALUES(?, ?)";
$stm = $pdo->prepare($sql);
$stm->bindValue(1, 'valor1');
$stm->bindValue(2, 'valor2');
$retorno = $stm->execute();

// Atribui o retorno booleano a SESSION
$_SESSION['retorno'] = $retorno;

// Redireciona para página
header("Location:cadcliente.php");


Observe que atribui o retorno da execução para uma SESSION, esse retorno pode ser TRUE se a inserção ocorreu com sucesso ou FALSE se houve falha.

// Na página cadcliente.php

//  Verifica se existe a SESSION
if(isset($_SESSION['retorno']) && $_SESSION['retorno'] == TRUE):
	echo '<div class="alert alert-success">Cadastro realizado com sucesso.</div>';
else:
	 echo '<div class="alert alert-warning">Verifique se algum campo necessario está em branco.</div>';
endif;
Responder

11/11/2013

Raniel Gomes

Vou testar obrigado.
Responder

12/11/2013

Claudio Lopes

coloque um alerta com javascript informando que ja foi gravado e ao clicar dá um reload na pagina
<script type="text/javascript">alert("Dados Gravados com sucesso!");window.location.reload();</script>


Dica: não gosto de fazer operações com o banco via GET, utilize $_post ou até mesmo ajax


Responder

13/11/2013

Raniel Gomes

Obrigado pela dica, vou testar mais acho que isso resolve meu problema.
Responder

19/08/2014

Tiago Baldo

Se for usar variáveis de sessão para mostrar alertas nas páginas, não pode esquecer que ao mostrar a mensagem logo após precisa-se limpar o conteúdo dessa variável, senão srá mostrado em todas as páginas que você configurar para mostrar os alertas nela contidos ;-)

// Na página cadcliente.php
 
//  Verifica se existe a SESSION
if(isset($_SESSION['retorno']) && $_SESSION['retorno'] == TRUE):
    echo '<div class="alert alert-success">Cadastro realizado com sucesso.</div>';
    unset($_SESSION['retorno']);
else:
     echo '<div class="alert alert-warning">Verifique se algum campo necessario está em branco.</div>';
endif;
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