如何阻止我的页面重复我的功能?

时间:2017-03-25 02:02:21

标签: php

在我的索引页面上,我正在调用它看起来像这样的函数:

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;
    }

}

我的问题是,每次刷新索引页面时,该函数都会再次运行,为我的数据库添加更多内容。我该如何阻止这种情况发生?

2 个答案:

答案 0 :(得分:0)

使用

完成SQL查询后,您可以重定向到另一个页面
header('Location: https://www.yourdomain.com/nextPage.php');

或者,您可以使用会话变量来存储上次访问页面的URL和时间戳。如果您发现上一次访问仅在15分钟前,您可以决定不再运行该功能。

答案 1 :(得分:0)

解决此问题的一种方法是,您的POST请求应使用GET标头返回到另一个Location:资源的重定向,而不是呈现另一个HTML文档。