Ir para o conteúdo
pemoamsi

[Resolvido] Evitar o isset POST quando F5

Mensagens Recomendadas

pemoamsi

Bom dia.

Quando faço um reload de uma página que tem um "isset" "if(isset($_POST['next']))", ele, com lógica, assume todos os valores da ultima inserção, e se tiver a aparecer uma mensagem de erro, ela continua a aparecer... alguma forma de evitar isso ?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Preciso de mais informação.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

Preciso de mais informação.

Como assim? Contrui input adduser.php


<input type="text" size="30" id="name" name="name" />
<input type="text" size="30" id="password" name="name" />
<input type="submit" value="Download" name="submit_form"/>

<?php
if(isset($_POST['submit_form']))
{
$name = $_SESSION['name'];
$password = $_SESSION['password'];
$insert = "insert into users values (NULL, '" . $name . "', '" . $password. "')";
$stmt = $db->exec($insert);
}
?>

Sempre que faço F5 ele insere novamente... como evitar?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
rezanov

Após a inserção na BD, tenta fazer um redirect para a página onde estás ou outro lado.

header('Location: ......../adduser.php');

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

Após a inserção na BD, tenta fazer um redirect para a página onde estás ou outro lado.

header('Location: ......../adduser.php');

Não pode ser solução porque assim não posso imprimir mensagens de erro, ou seja, seria o mesmo que incluir uma action em vez de toda as funções na mesma página

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Podes imprimir mensagens de erro na mesma. Colocas uma variável como session, em que lhe atribuis se é erro ou não. Sempre que carregas a página lês a session.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pemoamsi

Em vez do isset, usa isto :

if(array_key_exists('submit_form', $_POST))

obrigado pela dica, mas acabava por me dar o mesmo.

Acabei por optar pela solução do rezano e bioshock, pois embora não me satisfaça a 100%, sempre vai fazendo o que quero.

Abraço

Editado por pemoamsi

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.