バグ報告 > その他 > SC_CheckError::CHECK_DATE2メソッドのif文が恒等式になるバグ |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 2013/6/4 19:49
対応状況: −−−
|
SC_CheckError::CHECK_DATE2メソッドのif文が恒等式になるバグ バグの報告です。CHECK_DATE2メソッドにおいて、
// 少なくともどれか一つが入力されている。 if ($this->arrParam[$value[1]] > 0 || $this->arrParam[$value[2]] > 0 || $this->arrParam[$value[3]] > 0 || $this->arrParam[$value[4]] >= 0 || $this->arrParam[$value[5]] >= 0) { このif文の $this->arrParam[$value[4]] >= 0 と $this->arrParam[$value[5]] >= 0 の式の値が常に成り立つ。 以下のように空文字が0と解釈されるため。 code: <?php if ('' >= 0) echo 'true'; echo "<br />"; echo (int)''; ?> result: true 0 以下の対応を行うとよい。 if ($this->arrParam[$value[1]] > 0 || $this->arrParam[$value[2]] > 0 || $this->arrParam[$value[3]] > 0 || ($this->arrParam[$value[4]] >= 0 && $this->arrParam[$value[4]] != '') || ($this->arrParam[$value[5]] >= 0 && $this->arrParam[$value[5]] != '')) { php:5.2.17 eccube:2.12.4 |
|
red |
投稿日時: 2013/6/4 20:36
対応状況: −−−
|
神 ![]() ![]() 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: SC_CheckError::CHECK_DATE2メソッドのif文が恒等式になるバグ もしなおすならstrlenなどを使うほうがよい気がしますがCHECK_DATE2とCHECK_DATE3はどこのも使われていないようですし消してしまっていい関数のように見えますね
|
seasoft |
投稿日時: 2013/6/4 22:58
対応状況: −−−
|
神 ![]() ![]() 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: SC_CheckError::CHECK_DATE2メソッドのif文が恒等式になるバグ red 様の方針を支持します。(直すにしても、削除するにしても)
|
ゲスト |
投稿日時: 2013/6/5 8:52
対応状況: −−−
|
Re: SC_CheckError::CHECK_DATE2メソッドのif文が恒等式になるバグ デフォルトでは使っていませんが、時と分を入力するようにカスタマイズする場合のエラーチェックで使用するので消すのはどうかと思いますが。
|
|
seasoft |
投稿日時: 2013/6/5 9:26
対応状況: −−−
|
神 ![]() ![]() 登録日: 2008/6/4 居住地: 投稿: 7369 |
Re: SC_CheckError::CHECK_DATE2メソッドのif文が恒等式になるバグ 動作の保証もできないような機能を保守し続けるのは、今のプロジェクト体制では難しい気もいたします。
単体テストの自動化も進んでいるので、そちらでカバーする方法もあろうかと思いますが、それでも大きな実装の組み換え時には、開発の足かせとなり得ますし。 とは言え、頻繁に利用されそうな、若しくは近い将来 EC-CUBE 本体でも使われそうな機能を残すのは有意義だと思います。 SC_CheckError::CHECK_DATE2 は、それに該当する様なメソッドなのか否か・・・ 個人的には使った記憶が無い機能なので、あまり有用性は感じておりませんが、一般的にはどうなのですかね。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |