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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar