Internet Explorer も、気がついてみたらFirefoxまでも、複数タブ・ウィンドウ間で同一セッションになってしまった。確か、Firefox 3.6のときは、ウィンドウが別だったらセッションも別になっていたと思ったのになぁ...
で、同一セッションになって困るのは、セッション変数の扱い。
同じフォームを二つのタブやウィンドウで開くと、後から開いた方の値でセッション変数は上書きされてしまう。
これを防ぐには、フォームがはじめて表示されたときにフォームに対して一意の値を生成し、そいつを毎回POSTする。
そして、セッション配列へフォームの値を保存するときは、POSTされた一意の値をセッション配列のkey、保存したいフォームの値をvalueとすればよい。
で、いらなくなったときに、セッション配列の要素をunset()してやればいい。
この考え方は、ワンタイムチケットと同じ。
こっちも参照してね。
ワンタイムチケットでなくても、例えばログインフォームで一意の値を生成し、そいつをフォーム間で引き回せば、同じことができる。
ただし、ログインフォームで生成した一意の値が仮に悪意の第3者に漏れた場合、何をされるかわからないので、できれば、一定間隔で再生成する仕組みを考えた方がいい。
なんでも屋さんの自称SEさんが、知らなかったことをメモ代わりに書いてます。 たまに関係のないことも書きますが、良かったら参考にどうぞ。 2020/11 なんでも屋さんだったSEさんは、転職しました。今は社内SEさんとして、自社システム開発してます。 でも、一人なんだよね・・・ 2021/8 もう少し自分で考えてよって人が増えました...いい歳なんだからさー、指示待ちやめてよねー 2023/11 転職してから早3年、仲間が4名になりました!
登録:
コメントの投稿 (Atom)
Chatの「メッセージは投稿者によって削除されました」を非表示にする方法
Chrome拡張機能を自作してやってみよう! ♪できるかな できるかな ・・・ 無理ぽ (´・ω・`) iframeの中に、実際のメッセージのやり取りが表示されるので、 $(function(){ $('iframe[name^="spa...
-
Internet Explorer も、気がついてみたらFirefoxまでも、複数タブ・ウィンドウ間で同一セッションになってしまった。確か、Firefox 3.6のときは、ウィンドウが別だったらセッションも別になっていたと思ったのになぁ... で、同一セッションになって困るの...
-
本題に入る前に、まずは、sh/bash系のシェルで標準出力と標準エラー出力をリダイレクトする方法から。 現在使用中のシェルを確認するには、 # echo $SHELL とすれば確認できる。 その他、利用できるシェルを確認するには # cat /etc/shell...
-
mb_send_mail()を使ってメールを送信する場合は、第5引数に Return-Path を指定する。 さもなければ、Return-Path は apache@hoge.dom (コマンドラインから実行したときは、実行アカウント名@hoge.dom)になる。 第5引...
0 件のコメント:
コメントを投稿