プロジェクト

全般

プロフィール

Backport(バックポート) #2164

ProfileForm で日付型のプロフィール項目の最大値・最小値の入力欄に now などの strtotime() が解釈できる文字列を入力すると、そのプロフィール項目を保存した時点の日付が DB に保存されてしまう

isao sanoほぼ13年前に追加. 12年以上前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2011-06-09
期日:
進捗率:

100%


説明

ProfileForm で日付型のプロフィール項目の最大値・最小値の入力欄に now などの strtotime() が解釈できる文字列を入力すると、そのプロフィール項目を保存した時点の日付が DB に保存されてしまう。

この問題は #930 の 4e1f2665 の変更で混入したもの。

たとえば日付型プロフィールの最大値を today や now などにして保存すると、 2010-09-17 といった入力時点の日付で登録されてしまう。これらの文字列はそのまま DB に保存し、メンバーがプロフィールを入力した際に now や 2010-09-17 や next Sunday といった文字列をその時点での日付に変換した上で、メンバーの入力値と比較するのが正しい挙動である。


関連するチケット

関連している OpenPNE 3 - Bug(バグ) #1595: ProfileForm で日付型のプロフィール項目の最大値・最小値の入力欄に now などの strtotime() が解釈できる文字列を入力すると、そのプロフィール項目を保存した時点の日付が DB に保存されてしまう Fixed(完了) 2010-09-17
関連している OpenPNE 3 - Bug(バグ) #2356: 管理画面でプロフィール項目の識別名に全角文字や角括弧が使えてしまう Fixed(完了) 2011-08-17

関係しているリビジョン

リビジョン 6fd556d9 (差分)
Minoru Takai12年以上前に追加

(fixed #2164, BP from #1595) revised to store an inputted value even if it is a relative date.

リビジョン 2d4813bf (差分)
Minoru Takai12年以上前に追加

(fixes #2164, BP from #1595) uses opValidatorDate (from sfValidatorDate) for date value in ProfileForm

リビジョン 6e25ff6b (差分)
Minoru Takai12年以上前に追加

(fixes #2164, BP from #1595) fixed message of about date-format.

リビジョン 6f41f568 (差分)
Minoru Takai12年以上前に追加

(fixes #2164, BP from #1595) fixed for coding standard, and changed message of about date-format.

履歴

#1 Kousuke Ebiharaほぼ13年前に更新

  • 対象バージョンOpenPNE3.6beta11 から OpenPNE3.6beta12 に変更

親チケットが「テスト待ち」「完了」でないものをすべて beta12 以降での対応とします。

#2 isao sanoほぼ13年前に更新

  • 対象バージョンOpenPNE3.6beta12 から OpenPNE3.6beta13 に変更

#3 Maki Takahashi12年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Shingo Yamada から Maki Takahashi に変更

BP引き受けます

#4 Minoru Takai12年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

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

#5 Minoru Takai12年以上前に更新

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

#6 Minoru Takai12年以上前に更新

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

#7 Maki Takahashi12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

親チケットを差し戻しましたので、BPチケットも差し戻しいたします

#8 Minoru Takai12年以上前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

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

#9 Maki Takahashi12年以上前に更新

release-3.6beta13ブランチに取り込み済みです

#10 Shingo Yamada12年以上前に更新

下記の差分が一致していることを確認しました。

master stable-3.6.x
b51d54adc43ef3dc945236b714e692b96f9da74e 6f41f5683b4b5f1ca1c729f212c03c6293d06e88
afee7267847f2350da4accd21e181a6c1729be3b 6e25ff6beb8e1e97a11abaa28820ca26a560dfad
a932c17831a732fee4754a3b4242d2fe36a3d35a 2d4813bf2f4ee2f83a7c90f8985d26e69618ef8b
9072bbd231dc28faaf9b010c0622fe7c99639d89 6fd556d92eae912b7315de6d387f929b536679f8

#11 Shingo Yamada12年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

#12 Yuma Sakata12年以上前に更新

  • ステータスPending Testing(テスト待ち) から Rejected(差し戻し) に変更
  • 進捗率70 から 50 に変更

テスト実施しましたが、気になる点がありましたので確認お願いします。

ProfileForm で日付型の場合、mobile_frontendの動作確認

  • 試験手順
    1. プロフィール項目追加画面(/pc_backend.php/profile/edit)にアクセスする
    2. フォームタイプで日付を選択する
    3. 最小値にlast Monday、最大値にnowを入れsubmit
    4. mobile_frontendログイン後、プロフィール編集ページ(/member/edit/profile)でアクセスする
    5. 管理画面で設定した範囲内の値で設定する
  • 試験結果
    「正しくありません。」とエラーメッセージが表示される
  • 修正方針
    管理画面で設定した範囲内の値を入力した場合、mobile_frontendで設定できるように修正お願いします。
    pc_frontendで設定できることは確認済みです。
  • 追記
    プロフィール項目追加画面(/pc_backend.php/profile/edit)で識別子に半角英数字以外を用いるとエラーになります。

#13 Minoru Takai12年以上前に更新

  • ステータスRejected(差し戻し) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

note-12 の指摘内容を検証しました。

結論から言うと、別のバグによる問題でした。このチケットで扱う内容ではありませんのでテスト待ちにします。

この動作テスト時には、以下の手順 2. で示す「別のバグを引き起こす特定の操作」を行なわないでください。

手順

1. プロフィール項目追加画面(/pc_backend.php/profile/edit)にアクセスする
2. 識別名に「全角文字を含めた文字列」を入力する
3. プロフィール項目を作成する
4. mobile_frontend ログイン後、プロフィール編集ページ(/member/edit/profile)にアクセスする
5. プロフィール編集ページで「確定」ボタンを押す

すると、「正しくありません。」というエラーメッセージが表示され、プロフィール編集が成功しない。

これは、手順 2. の『識別名に「全角文字を含めた文字列」を入力する』という特定の操作を行った場合に、管理画面側では何のエラーもなくプロフィール項目の作成が成功するものの、メンバー側のプロフィール変更ページの携帯版ではエラーが生じるというバグによるものです。

識別名が半角英字列(※)ではない場合について、

  • なぜ pc_backend では、プロフィール作成時点でバリデータに弾かれ「ない」のか
  • なぜ pc_frontend では、プロフィール編集時点でバリデータに弾かれ「ない」のか
  • なぜ mobile_frontend では、PC版と異なり、プロフィール編集時点でバリデータに弾かれ「る」のか
  • (※)また、そもそも識別名に使える文字は何なのか

については追えていませんが、このようなバグがあることを示しておきます。

#14 Yuma Sakata12年以上前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

他の形式にエクスポート: Atom PDF