Project

General

Profile

Backport(バックポート) #3281

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

Added by Chiharu Nakajima almost 9 years ago. Updated over 8 years ago.

Status:
Fixed(完了)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2012-12-17
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 8c2d6632 (diff)
Added by Yuya Watanabe over 8 years ago

(refs #3281, BP from #2882) add sfValidatorDateTest +42 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 dc518fa1 (diff)
Added by Yuya Watanabe over 8 years ago

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

Revision cfb16e16 (diff)
Added by Yuya Watanabe over 8 years ago

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

Revision cef6c1fa (diff)
Added by Yuya Watanabe over 8 years ago

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

History

#1 Updated by Yuya Watanabe over 8 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Yuya Watanabe

#2 Updated by Yuya Watanabe over 8 years ago

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

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

#3 Updated by Kousuke Ebihara over 8 years ago

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

#4 Updated by Mutsumi Imamura over 8 years ago

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

動作確認OKです。

Also available in: Atom PDF