Jump to content
Eddy Parera

Reset de variáveis?

Recommended Posts

Eddy Parera

Estou a criar um website de serviço a utilizadores, e há uma parte que não consigo resolver.

Criei o formulario em html e o script php corre na mesma página. Quando o utilizador clica em Submit, o script corre normalmente, está impecável. E depois de correr o script, fica na mesma página mas apresenta outro codigo php-html.

O problema está no refresh. Quando faço refresh, o script é corrido novamente e pode surgir situações em que os valores sejam diferentes dos introduzidos pois foi realizado 2 e 3 vezes.

Gostava de saber como contornar esta situação não perdendo a parte do submit pois é o que faz diferir que codigo php-html utilizar.

Já agora obrigado.

Share this post


Link to post
Share on other sites
NunoDinis

O problema está no refresh. Quando faço refresh, o script é corrido novamente e pode surgir situações em que os valores sejam diferentes dos introduzidos pois foi realizado 2 e 3 vezes.

Quando e como é que chamas o script ?

Edited by NunoDinis

Estranha forma de vida que tem a capacidade de transformar comandos em mensagens de erro.

ndsotware.org

Share this post


Link to post
Share on other sites
Eddy Parera

<?php
include_once 'connect.php';
session_start();
include 'menu.php';
include 'header.php';
?>
<html>
<head>
<title>New Document</title>
</head>
<?php
if (isset($_SESSION['user']))
{
$user=$_SESSION['user'];
}
else
{
echo "<br><br> There is no logged in account. Please <A href='login.php'>Login</a><br>";
exit;
}
$userinfo="SELECT * from account where user='$user'";
$userinfo2=mysql_query($userinfo) or die("could not get account stats!");
$userinfo3=mysql_fetch_array($userinfo2);
$money=$userinfo3['money'];
if(isset($_POST['submit']))
{
if ($_POST['amount'])
{
$amount=$_POST['amount'];
}
if ($_POST['operation'])
{
$operation=$_POST['operation'];
}
if($operation == "+")
{
$money=$money+$amount;
}
else
{
$money=$money-$amount;
}

mysql_query("UPDATE account SET money=$money WHERE user='$user'");
}
else
{
?>
<body>
<div id="form">
<?php
echo "You have ",$money,"€<br><br>";
?>
<form method ="post" action="updateBudget.php">
Type the amount to be added or subtracted here: <input type="text" name="amount"><br>
<select name="operation"><option value="+">Add Money</option><option value="-">Subtract Money</option></select><br>
<p align="center"><input type="submit" value="Submit" name="submit"></td></p></form></p>
</div>
<?php
}
?>
</body>
</html>

Este é o documento

Edited by yoda

Share this post


Link to post
Share on other sites
HappyHippyHippo

Se é intenção ter a apresentar o resultado no mesmo script do formulário, só terás uma solução. enviares o formulário para um segundo script que ao fim do processo redirecciona para o script original. Dessa forma um refresh da página do formulário nunca insere dados na base de dados.


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Hijack

Uma pequena sugestão que nada tem a ver com o teu problema. Coloca o código entre as tags [-CODIGO=PHP][-/CODIGO] mas sem os (-) ;)

Fica mais fácil de ler :)

Edited by Hijack

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.