機能拡張フォームのconcrete5-5.4.2への対応について

2011年8月10日 at 12:17

tomoacさんへ

concrete5-5.4.2はjQuery1.6.2のようです。

jquery1.6.2への対応のためauto.jsを変更しました。

211~212行目 attr('checked') -> is(':checked')
217~222行目 attr('checked') -> is(':checked')
325~342行目 attr('checked','') -> attr('checked',false)
331~336行目 attr('checked','checked') -> attr('checked',true)
338~339行目 attr('checked','') -> attr('checked',false)
341~342行目 attr('checked','checked') -> attr('checked',true)

たぶんこれでconcrete5-5.4.1.1でも5.4.2でも動作可能だと思います。
お役に立てれば幸いです。

添付: auto.zip

Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年8月11日 at 6:22
ありがとうございました。

すみません。8月になって新しい会社の仕事を引き受けてとてもいそがしくなってしまってます。
jQueryの仕様をきっちり書いた本をご存じないですか?
jQueryに限らずですがつまみ食いのハウツー本ばっかり。
 

Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年8月11日 at 12:13
いやぁ・・・。僕はjqeuryはうといです。
でも、買うなら「関数の使い方」「プラグインの導入方法」「おすすめプラグイン」が載っている本を探すと思います。

jqueryのおすすめの本があれば僕も知りたいです。
誰か教えてくださーい!!!!


今回の件はjquery1.6で仕様変更があったことを知ったので調査した結果わかったことです。

http://concrete5-japan.org/community/forums/development/post-2805/

もし、まだご覧になられていなければ参考にしてみてください。
 

Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年8月28日 at 11:07
返事が遅くなりました。

5.4.2をインストールしてみました。
具体的に、どんな操作を行ったとき問題が出ていましたでしょうか。
 

Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年8月28日 at 11:27
jqueryが1.6.2にバージョンアップされていてattr()の挙動が変わった件です。
僕が8月10日に投稿させていただいた内容で解決できるはずです。

ちゃんと書いてなくてすみませんでした。
 

Re: Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年8月28日 at 16:16
書いてあるとおりにすればいいのですが、

一応、「おかしい」ことを確認し、
ご指摘の修正を行うと正しく動作するということを、
私も確認したいと思っています。

修正前だと、どの操作がおかしいでしょうか。
 

Re: Re: Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年8月28日 at 19:07
218~222行目のif文は戻り値が FALSE となりデータベースへの登録に影響がありましゅ。

325~330行目のattr('checked','')はチェックをはずす処理なのにチェックがはいります。

331~336行目のattr('checked',true)のへの変更は僕の好みです。すみません.
crying
チェックボックス、ラジオボタンはtrue,falseで処理したほうが、コーディング間違いが減ると思います。ほとんどのエディタでtrue、falseは色を変えてくれるので気づきやすい。checkedを使用する場合chekedと打ち間違いをしても、実行エラーすらはいてくれない。''で囲むからよけいにですけど。

jQuery1.6以降はプロパティ参照にはattr()の変わりにprop()を使用することを推奨されているようですが、まだoncrete5-5.4.1.1を使用しているサイトも多いと思いますのでattrを使用したままの稼動が理想と考えます。

以上が説明ですが伝わるように書けていますでしょうか?文章能力の無さがたたっています。すみません。不明点やご指摘あれば言ってください。
 

Re: Re: Re: Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年9月3日 at 8:56
ありがとうございました。

ご指摘の修正をして、リリースしました。
5.4.2.1の日本語化がなされるようですので、それがリリースされたころまた機能アップをしてみます。
 

Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年9月13日 at 12:01
auto.jsの修正お願いします。

211~212行 is("checked") ----> is(':checked')
217~222行 is("checked") ----> is(':checked')
325~330行 is('checked','') ----> attr('checked',false)
331~336行 is('checked',true) ----> attr('checked',true)
338~339行 is('checked',false) ----> attr('checked',false)
341~342行 is('checked',true) ----> attr('checked',true)

2.4.1を見ました。
XSSはどの状況で発生ですか?ソースはどこを変更しました?
また都合のいいときに教えてください。
 

Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年9月13日 at 18:07
2.4.2をリリースしました。

修正を間違えていたようですね。失礼しました。

XSS対策は、controls.php の285-298, 354-358 に、htmlspecialcahr()を追加しました。
メールで対策要望がありました。
 

Re: Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年9月13日 at 18:10
具体的にどのような入力があったときにXSSが発生したのか教えていただけませんか?
 

Re: Re: Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年9月13日 at 18:17
XSSというより、" を入力したらおかしくなるとの指摘です。

タグの間に、value="" が、value=""" になって、表示がおかしくなることが確認できましたので、
 

Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年9月13日 at 23:34
""ですか・・・・。チェック漏れてました。
phpコードやjavascriptはチェックしたのですが、すみません。

コードに関してですが標準のフォームブロックは
view側でstripslashes(htmlspecialchars($val))で処理してます。
エラーメッセージがでる設定ですが標準に合わす形で処理されてはどうでしょうか?
 

Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年9月14日 at 8:58
エラーチェックは、もともとcontrollerのあの付近にあったので、追加する形で今に至っています。
viewで処理するということは、エラーチェックを全部viewに移すということでしょうか?
 

Re: Re: Re: 機能拡張フォームのconcrete5-5.4.2への対応について

2011年9月18日 at 15:37
標準のフォームブロックでは特殊文字はエラー処理ではなく、エスケープ処理しています。ですのでエスケープしたほうがいいと思ったのですがそれも問題があることが分かりましたので撤回します。すみません。