Project

General

Profile

Backport(バックポート) #3288

opValidatorDate で「年」に 0 を入力した場合に空値として認識される

Added by Mutsumi Imamura almost 9 years ago. Updated almost 9 years ago.

Status:
Fixed(完了)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2012-03-13
Due date:
% Done:

100%


Description

現象

opValidatorDate を使用しているフォーム(コミュニティイベントの作成画面など)で、日付を入力する項目の「年」に 0 を入力すると空値として扱われる。

  • コミュニティイベントの作成画面の場合、「募集期日」の「年」に 0 と入力された状態(「月」「日」は入力しない)で送信しても「正しくありません。」と表示されずにイベントの作成が完了する。

原因

lib/validator/opValidatorDate.class.php の 100 行目付近

    // if one date value is empty, all others must be empty too
    $empties =
      (!isset($value['year']) || !$value['year'] ? 1 : 0) +
      (!isset($value['month']) || !$value['month'] ? 1 : 0) +
      (!isset($value['day']) || !$value['day'] ? 1 : 0);

この判定で、「年」($value['year']) に "0" が入力されると !isset($value['year']) || !$value['year']true となり空値と判定されることが原因。

参照: PHP: PHP 型の比較表 - Manual

修正内容

修正内容を記入


Related issues

Related to OpenPNE 3 - Bug(バグ) #2882: opValidatorDate で「年」に 0 を入力した場合に空値として認識される Won't fix(対応せず) 2012-03-13

Associated revisions

Revision 12939dc0 (diff)
Added by Yuya Watanabe almost 9 years ago

(refs #3288, BP from #2882) add sfValidatorDateTest +38 case

about test case
empty values: ('', false, array(), new SimpleXmlElement('<hoge />'))
not empty values: (0, '0', 0.0)

required:         (true, false)
date array: (Yms, YmsH)

Revision 2ce507a4 (diff)
Added by Yuya Watanabe almost 9 years ago

(refs #3288, BP from #2882) fixed not to evaluate empty array in preg_match

Revision 37a5e15f (diff)
Added by Yuya Watanabe almost 9 years ago

(refs #3288, BP from #2882) fixed not to be empty for zero number or string

Revision 803c1653 (diff)
Added by Yuya Watanabe almost 9 years ago

(refs #3288, BP from #2882) fixed not to be empty day values for zero number or string

Revision 9a65195f
Added by Yuya Watanabe almost 9 years ago

Merge branch 't3288' into stable-3.8.x (fixes #3288)

History

#1 Updated by Mutsumi Imamura almost 9 years ago

  • Tracker changed from Bug(バグ) to Backport(バックポート)

#2 Updated by Mutsumi Imamura almost 9 years ago

  • Assignee set to Yuya Watanabe

#3 Updated by Yuya Watanabe almost 9 years ago

  • Status changed from New(新規) to Accepted(着手)

#4 Updated by Yuya Watanabe almost 9 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

更新履歴 9a65195f3a66236ae101259a7e3dc6ccfc2be699 で適用されました。

#5 Updated by Kousuke Ebihara almost 9 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#6 Updated by Mutsumi Imamura almost 9 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

動作確認OKです。

Also available in: Atom PDF