FC2ブログ

[スポンサー広告]スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[CakePHP]画面が真っ白くなる場合の対処方法(Ajax編)

[CakePHP 1.2.0 RC3]

もうほんとヤダ。。。またもやblackhole現象が多発した。
Ajaxで登録フォームの送信(post)をするためsubmitをするがDBが更新されない。
Securityコンポーネントを外すとあっさり登録される。うーんなぜなんだ!!!

朝から晩までほぼ半日悩みに悩んだ結果、やっと解決。。。

で、原因は、フォームの作り方に問題があり、
トークンが2重に作成されてしまったからのようだ。

<NGのやり方>
echo $ajax->form('hogehoge','post',$options);
echo $form->submit('send');
echo $form->end();
<解決したやり方>
echo $ajax->form('hogehoge','post',$options);
echo $form->end('send');
<結論>
Ajaxの場合は、FORMの中にformヘルパーのsubmitを作成してはいけない。

あーあ、俺、半日もなにやってるんだろ。orz...
スポンサーサイト

[CakePHP]画面が真っ白くなる場合の対処方法

[CakePHP 1.2.0 RC3]

CakePHPをつかっているとよく出くわす現象「画面がまっしろ!」
これって、ログにも画面にもどこにもなんも出ないから、ほんとにやっかい。

実際の原因というと様々な要因が考えられる。
毎回そんな現象を調べるのに四苦八苦してたら時間がいくらあっても足りないので、チェックリストとしてまとめてみた。

≪初歩的なチェック≫
文字化けしていないこと。
(ヘッダーで指定した charset とプログラムソースの文字コードを合わせる)
文字コードが UTF-8 の場合は、BOMを除去する。(UTF-8N にする)
構文間違いやステップ末尾に";"を付け忘れてないこと。
Ajax など呼び出す際の view が全て存在すること。

Securityコンポーネントを使い始めると、多発するようになる。(俺だけ?)
原因は規定外のことをやると、CakePHPの仕様で blackHole メソッドが実行されてしまうことなので、javascriptなどの操作の際には気をつけなければならない。

≪Securityコンポーネントを使っている場合≫
javascript で hidden 項目を書き換えていないこと。(hiddenとid以外ならOK)
javascript で form内のタグ内容を書き換えていないこと。
form タグで囲った部分以外に input タグが存在しないこと。(hiddenでもダメ)
Ajaxの場合はFORMの中にformヘルパーのsubmitを作成してないこと。(2009.3.25追記)

今のところ思いつくのはこんなところかな?

≪参考資料≫
プロフィール

jsuz

Author:jsuz
あなたは 人目の覗き人
せっせと自宅で作る開発者ブログ。 メインblogはこちら↓
今日もイイコトあった?

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。