明日になったら本気出せるスマートフォン用の表示で見る明日になったら本気出せる底辺Web系エンジニアの日記この広告は、90日以上更新していないブログに表示しています。IT検証なんてどうでもいいよって人が多い気もするので結論から書く。ctype_digit("{$var}")を個人的に一番推す。個人的にだぞ!引数を文字列化してるのがミソ。PHP触ってるとあれ?っと思った挙動が結構ある。なんというかポリシーなんてくそくらえだぜ!!みたいなノリで実装されてるんじゃないかといったさ。最近数値っぽい文字列あつかってるときにそういった挙動があったので、せっかくだからちょっと調べてみた。ちなみに最後の方に環境情報書いてるけどPHP5.4.11だよ。15:08トランザクション分離レベルについて極力分かりやすく解説してみた[SQL]Tweet広告を非表示にするもっと読むコメントを書く2013-11-16入力画面でSubmitボタンを連打した時の挙動[IT]IT結構昔に僕が作ったシステムでBtoCなサイトがある。あるフォーム画面で以下のような形。完了画面(C)なんか最近全然その単語を聞かなくなったPRGパターンとかいうやつ。GetRFC的にはリダイレクトされたリクエストでクライアントがメソッドを変更する事を許さないと規定しているはずなのに、リダイレクト時にPOSTしてくるブラウザは見たことない...と、ここではその話は置いとこう。実際に表示される画面は上でいうAとCなんだけど、この両方の画面にJavascriptのアクセス解析ツールを仕込んでいた。GoogleAnalytics(以下GA)なんだけどね。この画面で些細なんだけど以下の問題が発生した。データベースに入力した内容は保存されているものの、GAだとCにアクセスされた形跡はない但し、Aはアクセスされている毎回ではなく数あるうちの数回だけ発生しているで、このページは以下のような仕様となっている。上3つはよくあるCSRF対策。最初はたまたまGAのJavascriptでエラーが起こったんじゃないかとかそういうこと考えたりPOSTした瞬間にブラウザ落としたりしたのが原因じゃないかと思ってた。そっち可能性も0じゃないんだけど、よくよく考えると以下の感じの挙動が問題を起こしたんじゃないかなという結論に達した。ブラウザが登録リクエスト送信(1回目)サーバ側で登録処理が行われ、302レスポンスが行われる302転送を行わずブラウザが登録リクエスト送信(2回目)サーバ側で403レスポンスが行われる。結果としては上の挙動をブラウザが取ったことにより問題となったんだけど、Firefoxだけ挙動が異なった。調べたのはIE,Chorme,Firefoxの3つなんだけどね。ブラウザが登録リクエスト送信(1回目)サーバ側で登録処理が行われ、302レスポンスが行われる。画面CのGET処理が行われる。※302転送を行わずブラウザが登録リクエスト送信(2回目)サーバ側で403レスポンスが行われる。※の部分なんだけどさすがに画面Cの画像とかはリクエスト送ってないよね...。可能性は0じゃないけど調べてない。30xの場合は転送後に次のリクエストが送られるような挙動を示した。まとめだからなんだって話なんだけど今まで連続リクエスト時の挙動なんて全く意識してなかったからまとめてみた。普通にJavascriptで2重POSTされないようにすれば解決する話。Submitボタンを連打した際はブラウザによってちょっと挙動が違うよという結論です。+演算子の違いについて。ぐぐればいっぱい出てくるんだけどよく忘れるので備忘録。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。