CakePHP:【解決】AU携帯でSecurityComponent

SecurityComponentを使うとAUケータイでブラックホールに吸い込まれるという話を昨日書いたわけですが、解決方法が見つかったので、それを書きます。
ちなみにCakePHPユーザ会のほうにも投稿しておいた。

$form->create で出力されるfieldsetを消す方法

昨日の投稿にも書きましたが、SecurityComponentを使うとAUケータイではdisplay:noneになってるfieldsetタグ内のトークンがPOSTされません。よって、fieldsetタグのみを削除すれば動くに違いないということで、fieldsetタグを削除する方法です。

参考にしたサイトは以下です(英語)。
http://cakeqs.org/eng/questions/view/disable_fieldset_around_an_hidden_form_element

CakePHPユーザ会のほうに書いた方法でもいけると思いますが、何度も使いたいので自分はKtai LibraryのKtaiヘルパーにメソッドを追加しました。

/app/views/helpers/ktai.php

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
/**
 * Ktai helper class for CakePHP1.2
 */
class KtaiHelper extends Helper {
     
    var $helpers = array('Html', 'Form'); // 'Form'を追加した
     
    var $_lib3gk = null;
 
// ... 最後に以下の2つのメソッドを追加
    function form_create($model = null, $options = array()){
        $out = $this->Form->create($model, $options);
        return strip_tags($out, '<form><input>');
    }
     
    function form_end($options = null){
        $out = $this->Form->end($options);
        return strip_tags($out, '<form><input>');
    }
}

View側では、以下のように使います。

1
<?php echo $ktai->form_create($model, $options); ?>

AUケータイで試してみましたが、結果は上々でした。


カテゴリー CakePHP, PHP | タグ    | パーマリンク

コメント・トラックバック一覧

  1. Pingback: CakePHP:AU携帯とSecurityコンポーネント | 自転車で通勤しましょ♪ブログ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です