2017-03-25 59 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文檔。

相關問題