バージョン選択

フォーラム

メニュー

オンライン状況

122 人のユーザが現在オンラインです。 (116 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 122
もっと...

サイト内検索

バグ報告 > その他 > 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はどこのも使われていないようですし消してしまっていい関数のように見えますね


----------------
EC-CUBEのカスタマイズ、トラブル解決承ります
お気軽にお問い合わせ下さい
https://www.ec-cube.net/integrate/partner/partner.php?partner_id=690

seasoft
投稿日時: 2013/6/4 22:58
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7369
Re: SC_CheckError::CHECK_DATE2メソッドのif文が恒等式になるバグ
red 様の方針を支持します。(直すにしても、削除するにしても)


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

ゲスト
投稿日時: 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 は、それに該当する様なメソッドなのか否か・・・ 個人的には使った記憶が無い機能なので、あまり有用性は感じておりませんが、一般的にはどうなのですかね。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は90,000名です
総投稿数は110,280件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1677
8
red
1570
9
mcontact
1342
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.