2017-03-25 60 views
0

在我的索引页,我调用一个函数,它看起来像这样:如何阻止我的页面重复我的功能?

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

此外,switch语句基于与主视图页面上的按钮相关的操作。如果您按“存款”存款操作,然后获得“存款”的价值。 –

+0

会是因为资金流动吗?或者是否因为我们不知道'案件'存款'触发事件'这一事实而无法回答? – Xorifelse

回答

0

您可以在SQL查询后重定向到另一个页面完成后,使用

header('Location: https://www.yourdomain.com/nextPage.php'); 

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

0

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

相关问题