Jump to content
pemoamsi

[Resolvido] Evitar o isset POST quando F5

Recommended Posts

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 ?

Share this post


Link to post
Share on other 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%.

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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');

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Edited by pemoamsi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.