在我的索引页面上,我正在调用它看起来像这样的函数:
case 'deposit':
$balance = filter_input(INPUT_POST, 'deposit', FILTER_VALIDATE_FLOAT);
$accountID = filter_input(INPUT_POST, 'accountID', FILTER_VALIDATE_INT);
deposit($balance, $accountID);
break;
这是该功能目前正在做的事情:
function deposit($balance, $accountID) {
global $db;
$dquery = "UPDATE bankaccount SET balance = balance + :balance WHERE accountID = :accountID";
try{
$dStatement = $db-> prepare($dquery);
$dStatement->bindValue(':balance', $balance);
$dStatement->bindValue(':accountID', $accountID);
$dStatement->execute();
$dStatement->closeCursor();
}catch (Exception $e){
$error_message = $e->getMessage();
echo "error". $error_message;
}
}
我的问题是,每次刷新索引页面时,该函数都会再次运行,为我的数据库添加更多内容。我该如何阻止这种情况发生?
答案 0 :(得分:0)
使用
完成SQL查询后,您可以重定向到另一个页面header('Location: https://www.yourdomain.com/nextPage.php');
或者,您可以使用会话变量来存储上次访问页面的URL和时间戳。如果您发现上一次访问仅在15分钟前,您可以决定不再运行该功能。
答案 1 :(得分:0)
解决此问题的一种方法是,您的POST
请求应使用GET
标头返回到另一个Location:
资源的重定向,而不是呈现另一个HTML文档。