フォームの繰り返し送信を防ぐための関数がcakephpに組み込まれていますか?
たとえば、ユーザー登録機能を作成する場合、情報確認ページに送信をクリックし、それをデータベースに入力します(情報例: ユーザー名はすでに有効ですか? 情報確認ページに入るときに、対応するチェックが実行されます。
保存が完了したら、ブラウザの戻るボタンをクリックして情報確認ページに戻ります。このとき、認証は行われないため、ユーザーの情報がデータベースに繰り返し入力されます。
Cakephp の組み込みメソッドについて聞きたいのですが、トークン検証などのメソッドは知っています。
長い間 Cake に触れていなかったので、教えていただければ幸いです。それについて詳しく教えてください。
- -----解決策---------
http://www.ibm.com/developerworks/cn/opensource/os-php-cake3/ を見てください。
ここで述べられています
キャッシュについての簡単な説明
操作を保護するために requireAuth を使用していますが明らかな利点がありますが、克服する必要のある欠点もいくつかあります。デメリットのほとんどは「キャッシュの問題」です。
認証キーは、フォームが requireAuth で評価されるたびに生成されます。これは、ユーザーがすでに使用されているキーを使用してフォームを送信した場合、フォームの送信は無効とみなされます。この問題は、複数のブラウザ ウィンドウの使用、[戻る] ボタンを使用して前のページに戻る、ブラウザのキャッシュ、プロキシ サーバーのキャッシュなど (ただしこれらに限定されません) のさまざまな状況で発生する可能性があります。これらの問題をユーザーのエラーとして無視するかもしれませんが、誘惑に抵抗して無効なフォームの送信に取り組む必要があります。
セキュリティを使用している場合、フォームを送信するときに、cakephp はフォームとセッションのトークンを自動的に検証します。その後、データベースにトークンを追加した後でも、セッション内のトークン値の設定を解除できます。ユーザーが確認ページに戻ると、cakephp が送信する前にチェックします。チェックが失敗した場合はロールバックされます。
コア コードを理解していれば、このプロセスを実行できます。わかりました。