Bug(バグ) #3584
完了
フォームタイプが日付のプロフィール項目の最小値に now を設定し、プロフィールに当日日付を設定するとエラーになる
Hisahsi Ishihara さんが10年以上前に追加.
1年以上前に更新.
説明
初めてです
3.8.10を使用。プロフィールに項目追加し、フォームタイプを日付にした時、最小値、最大値のいづれかまたは両方をnowにすると、SNS会員が当日の日付を入れて、送信ボタンを押すとエラーになって、プロフィールを更新できない。3.8.9の時は、エラーにならなかった。
- 対象バージョン を OpenPNE 3.10.x にセット
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を kaoru n にセット
- 対象バージョン を OpenPNE 3.10.x から OpenPNE 3.11.x に変更
最大値に now を設定し、プロフィール編集で当日日付を入力してもエラーにならない。
https://github.com/openpne/OpenPNE3/blob/master/lib/validator/opValidatorDate.class.php#L54-L70
if ($this->hasOption('max'))
{
$max = new DateTime($this->getOption('max'));
if ($max && $clean->format('U') > $max->format('U'))
{
throw new sfValidatorError($this, 'max', array('max' => $max->format($this->getOption('date_format_range_error'))));
}
}
if ($this->hasOption('min'))
{
$min = new DateTime($this->getOption('min'));
if ($min && $clean->format('U') < $min->format('U'))
{
throw new sfValidatorError($this, 'min', array('min' => $min->format($this->getOption('date_format_range_error'))));
}
}
$min, $max ともに now を設定した場合、new DateTime() の引数にそのまま now が設定されるため、時刻も比較対象とされる。
例えば now = '2023-02-07 18:18:18' だった場合、プロフィール編集で '2023/02/07' を入力すると入力値は '2023-02-07 00:00:00' として扱われるため、最小値との比較でエラーになる。
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
- 題名 を プロフィール項目を追加し、フォームタイプを日付の時 から フォームタイプが日付のプロフィール項目no に変更
- 題名 を フォームタイプが日付のプロフィール項目no から フォームタイプが日付のプロフィール項目の最小値に now を設定し、プロフィールに当日日付を設定するとエラーになる に変更
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
- ステータス を Pending Testing(テスト待ち) から Pending Merge(マージ待ち) に変更
- 進捗率 を 70 から 80 に変更
- ステータス を Pending Merge(マージ待ち) から Fixed(完了) に変更
- 進捗率 を 80 から 100 に変更
他の形式にエクスポート: Atom
PDF