OpenPNEのテンプレートファイル(.tpl)でフォームを出力する場合、t_form_block, t_form などのタグが使われています。
どうやって2種類を使い分けるかは、いまいちよく分かっていませんけど、パソコンの.tplはt_form_block、携帯の.tplはt_formを使っていることが多いようです。
以下、これらのフォーム出力タグでの、セッションIDなど自動的に付加されるhiddenフィールドのまとめ。
({t_form_block m=pc a=page_hoge}) の場合(actionの先がpage_の場合)
<input type="hidden" name="m" value="pc" /> <input type="hidden" name="a" value="page_hoge" />
が自動でフォーム中に付加される。
({t_form_block m=pc a=do_hoge}) の場合(actionの先がdo_の場合)
<input type="hidden" name="m" value="pc" /> <input type="hidden" name="a" value="do_hoge" /> <input type="hidden" name="sessid" value="hogea91df98hoged88hoge4hoge04dad" />
が自動でフォーム中に付加される。
name="a" value="do_hoge" により、フレームワーク中で対象となるアクションを決定する。
do_hoge の場合、モデルでの操作アクションとなるので、ここはDBの変更操作が行われることが多いです。
そのためか、自動的にセッションID情報がhiddenフィールドに追加される仕様となっているみたいです。
携帯の.tplの場合
携帯でformをpostで送信する場合、セッションを次のページに渡すために、以下のように書く。
既存の携帯の.tplファイルは、以下のようになっているものが多い。
({t_form m=ktai a=page_hoge})
<input type="hidden" name="ksid" value="({$PHPSESSID})">
これで、ログイン状態が保持され続ける。
hiddenフィールドをハードコーディングするのはちょっと気持ち悪い感じもしますので、t_form_block が使えないか検査が必要かもしれません。
■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/460