PHP 中的多次點擊表單提交預防
在Web 應用程式中,防止多次表單提交可以增強用戶體驗和資料完整性。 PHP 提供了解決此問題的解決方案。
解:唯一令牌
PHP 使用每次顯示表單時產生的唯一令牌。該令牌只能使用一次。實施令牌系統不僅可以防止多次表單提交,還可以防止跨站請求偽造 (CSRF) 和重播攻擊。
實作範例:
<?php session_start(); // Function to create a unique token function getToken() { $token = sha1(mt_rand()); $_SESSION['tokens'][$token] = 1; return $token; } // Function to validate a token function isTokenValid($token) { if (isset($_SESSION['tokens'][$token])) { unset($_SESSION['tokens'][$token]); return true; } return false; } // Check if a form has been submitted $postedToken = filter_input(INPUT_POST, 'token'); if ($postedToken) { if (isTokenValid($postedToken)) { // Process form } else { // Handling for invalid token } } // Generate a token for the displayed form $token = getToken(); ?> <form method="post"> <fieldset> <input type="hidden" name="token" value="<?php echo $token; ?>"> <!-- Add form content --> </fieldset> </form>
額外注意事項:
透過實現這種基於令牌的解決方案,PHP 開發人員可以有效防止多次表單提交,確保資料完整性並增強使用者體驗。
以上是如何使用唯一令牌防止 PHP 中的多次點擊表單提交?的詳細內容。更多資訊請關注PHP中文網其他相關文章!