• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ResoDUTE

Query auto executa-se após reload da página

5 mensagens neste tópico

Boas noites pessoal

Está-me a surgir um problema numa página em PHP, que, sempre que faço reload da página, a query é executada, fazendo assim, inserção de linhas em branco na BD.

Deixo aqui a string de conexão e da query:

<?php

$ligacao=mysql_connect("localhost","user","pw") or die('erro ao ligar a BD');

mysql_select_db("nome_bd", $ligacao);

$sql="INSERT INTO tabela (campo1, campo2, campo3, campo4) VALUES ('$var1', '$var2', '$var3', '$var4')";

$resultado=mysql_query($sql,$ligacao);

mysql_close($ligacao);

?>

Variáveis usadas:

<?php

$var1=$_POST["var1"];

$var2=$_POST["var2"];

$var3=$_POST["var3"];

$var4=$_POST["var4"];

?>

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso acontece porque o código PHP, incluindo a Query, sãio executados de cada vez que há uma request da página. Se não quiseres isso, podes sempre fazer um redirect da página da query. Assim corres menos o risco de alguém voltar a inserir. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, redirect é uma opção, e/ou verificar se foi um pedido por POST:

if ($_POST)
{
    //query
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas ao fazer reload da página, o próprio browser envia os dados de POST outra vez.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vou tentar com um redirect a ver se resolve a situação de não enviar dados sempre que a pagina é refrescada.

Obrigado pessoal

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora