PHP での複数のフォーム送信の防止: 総合ガイド
Web アプリケーションでは複数のフォーム送信が問題となり、予期せぬ結果を招く可能性があります。この記事では、PHP での複数の送信を防ぐための詳細なソリューションを提供します。
トークンを使用したソリューション
PHP は、生成および保存できる固有のトークンを使用した堅牢なソリューションを提供します。セッション。実装方法は次のとおりです:
コード例:
<?php session_start(); function getToken(){ $token = sha1(mt_rand()); $_SESSION['tokens'][$token] = 1; return $token; } function isTokenValid($token){ if(!empty($_SESSION['tokens'][$token])){ unset($_SESSION['tokens'][$token]); return true; } return false; } $postedToken = filter_input(INPUT_POST, 'token'); if(!empty($postedToken) && isTokenValid($postedToken)){ // Process Form } $token = getToken(); ?> <form method="post"> <input type="hidden" name="token" value="<?php echo $token; ?>"/> <!-- Form Content --> </form>
リダイレクトと下位互換性
適切な前後ナビゲーションを維持するには、POST/リダイレクト/GET パターンを実装することをお勧めします。これには以下が含まれます:
これらの手順に従うことで、複数のフォーム送信を効果的に防止し、Web アプリケーションの整合性を確保できます。
以上がPHP で複数のフォーム送信を防ぐ方法: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。