タグ別アーカイブ: 二重送信

CakePHP2.0 SecurityComponentで二重送信防止

このエントリーをはてなブックマークに追加
はてなブックマーク - CakePHP2.0 SecurityComponentで二重送信防止
Facebook にシェア
LINEで送る
LinkedIn にシェア
Pocket
[`evernote` not found]

概要

SecurityComponentのCSRF対策の機能を使って、Formからの二重送信を防止することができます。

1.xのときに使ってみたことがありましたが、SecurityComponentは思ったように動いてくれなかったイメージがありました。

2.0でとりあえずもう一度使ってみようと思い、動かしてみたらいい感じでした。

環境

  • CakePHP2.0
  • Windows
  • XAMPP

続きを読む

CakePHP 二重送信防止Component

このエントリーをはてなブックマークに追加
はてなブックマーク - CakePHP 二重送信防止Component
Facebook にシェア
LINEで送る
LinkedIn にシェア
Pocket
[`evernote` not found]

二重送信についてのアクセスがときどきあるので、
PreventWSubmitComponentを更新してみました。

以前の記事に追加したのだけれど、ごちゃごちゃするので別に書くことにしました。
続きを読む

CakePHP jQuery disableOnSubmitを使うときの注意

このエントリーをはてなブックマークに追加
はてなブックマーク - CakePHP jQuery disableOnSubmitを使うときの注意
Facebook にシェア
LINEで送る
LinkedIn にシェア
Pocket
[`evernote` not found]

disableOnSubmitを使うときの注意点

二重送信を防止するために、jQueryのプラグインdisableOnSubmitを使うと便利だけれど、使うとname属性を取得できなくなる

以下のようにsubmitのボタンで処理を振り分けたいときには、振り分けができなくなるので注意が必要。

<?=$this->Html->script('disableOnSubmit')?>
<script>
	$(function(){
		$('form').disableOnSubmit();
	});
</script>
......
$this->Form->submit('削除', array('name' => 'delete'));
......
$this->Form->submit('修正', array('name' => 'edit'));
......

二重送信防止は修正のときだけでいいよって場合は、次のようにする。
ただしこのときも、修正のsubmitのname属性は取得できない。

<?=$this->Html->script('disableOnSubmit')?>
<script>
	$(function(){
		$('form').disableOnSubmit('.submit');
	});
</script>
......
$this->Form->submit('削除', array('name' => 'delete', 'div' => false));
......
$this->Form->submit('修正', array('name' => 'edit'));
......

ってことで、処理を振り分けたい場合は別の方法を考えないといけない。