プロジェクト

全般

プロフィール

Bug(バグ) #1863

op_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時に例外が発生し閲覧できない場合がある

pnetan  13年以上前に追加. 8年以上前に更新.

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

100%

3.6 で発生するか:
Yes
3.8 で発生するか:
Unknown (未調査)

説明

Overview (現象)

http://sns.openpne.jp/diary/25790 より転記

お世話様です。
既出や3.6βで解決してたらごめんなさい。

OpenPNE3.52を使ってます。
プロフィールを閲覧不能のメンバーがたまに出てきてphpMyAdminで直して気付いたんですが、生年月日の生まれ年を適当に入れたり全角で入れたりするとこの症状が出ます

リストボックスのように選べるのを限定(沢山有ってダメっすかね?)かチェックをかける事はできますか?

現在サポート中の各バージョンおよびMasterにおいて、チェック(バリデーション)がかかっています。

ただし、旧バージョンからのアップグレード等で、
op_preset_birthdayのmember_profileデータが正しくない場合
(具体的にはvalue_datetimeがゼロ値もしくはvalue_datetimeがnullかつ、valueが日付として認識できない場合)
プロフィール閲覧(member/profile)で「Impossible to parse date "xxxxxxxx" with format "yyyy-MM-dd HH:mm:ss".」という例外が発生します

(3.0系ではデータ構造が異なるため上記の現象は発生しません)

Causes (原因)

本来、member_profileのvalue_datetimeには日付が正しく入っているはずで、
その値をもとにプロフィール閲覧の表示を行っているが
上記のように、ゼロ値もしくはnullかつvalueがでたらめの場合は
プロフィール閲覧で利用しているop_format_date()で例外が発生してしまう。

Way to fix (修正内容)

member_profileの値が以下の場合は値を返さず、nullを返すようにする
  • value_datetimeがnullではなく、ゼロ値の場合
  • op_preset_birthdayに対応するデータなのに、value_datetimeがnullの場合

関連するチケット

関連している OpenPNE 3 - Bug(バグ) #940: プロフィール項目の日付やテキストの最小値を最大値より大きくして設定できてしまう Pending Fixing(修正待ち) 2010-04-05
関連している OpenPNE 3 - Backport(バックポート) #2292: op_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時に例外が発生し閲覧できない場合がある Fixed(完了) 2011-07-25
関連している OpenPNE 3 - Backport(バックポート) #2683: op_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時に例外が発生し閲覧できない場合がある Fixed(完了) 2011-01-12 2012-01-12

関係しているリビジョン

リビジョン 69233565 (差分)
Maki Takahashi12年以上前に追加

changed MemberProfile::getValue() to return null if op_preset_birthday's data is Invalid (value_datetime is zero or null) (refs #1863)

履歴

#1 Kousuke Ebihara約13年前に更新

  • 3.6 で発生するかYes にセット

#2 Shingo Yamadaほぼ13年前に更新

  • 優先度Normal(通常) から High(高め) に変更

#3 Shingo Yamadaほぼ13年前に更新

  • 担当者Masato Nagasawa にセット

#4 Masato Nagasawaほぼ13年前に更新

  • 担当者 を削除 (Masato Nagasawa)

3.5.2 の登録時プロフィール設定と、プロフィール編集にて確認しました。
生まれ年の入力に対して全角文字列「1987」を入力して送信しましたが、
「正しくありません。」と表示され正しくバリデートされていることを確認しました。
また、その後プロフィール確認画面に遷移しても問題なく表示されていました。

ただ、完全に問題がないとは言い切れない状態なので、
ひとまずチケットは残しておき、担当からはずします。

#5 Shingo Yamadaほぼ13年前に更新

本チケットは、高橋さんに依頼しました。(高橋さんのassign権限を要求中)

#6 Maki Takahashiほぼ13年前に更新

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

#7 Shingo Yamadaほぼ13年前に更新

  • 担当者Maki Takahashi から Shingo Yamada に変更

#8 Maki Takahashi12年以上前に更新

  • 担当者Shingo Yamada から Maki Takahashi に変更
プロフィール設置&プロフィール編集において全角数字、数字以外(英字)、マイナス、0000を入れた際、
バージョン3.5.2の他、
  • 3.0.8.4
  • 3.3.4.13
  • 3.6beta11
  • maseter
    でバリデーションがかかることを確認しました。

ただし、旧バージョンからのアップグレード等において、全角数字等が入っているデータもあり得ます。

op_preset_birthday(プリセットの誕生日項目)についてmember_profileの
  • value_datetimeが「0000-00-00 00:00:00」の場合(日付として、でたらめな値をvalue_datetimeに無理矢理入れようとして場合)、valueが正しくても、例外発生
  • value_datetimeがnullの場合、valueが日付としてでたらめならば例外発生

となっており、「プロフィールが閲覧不可能」な状態となっていると思われます。

新規に日付型のプロフィール項目を追加し、でたらめなデータとなっている場合には例外発生とはなりません。

#9 Maki Takahashi12年以上前に更新

  • 題名【バグ】プロフィールのみ見られないメンバー から op_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時にFatal Errorが発生する場合がある に変更

#10 Maki Takahashi12年以上前に更新

  • 題名op_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時にFatal Errorが発生する場合がある から op_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時に例外が発生し閲覧できない場合がある に変更

#11 Maki Takahashi12年以上前に更新

  • 対象バージョンOpenPNE 3.7.0 にセット

#12 Maki Takahashi12年以上前に更新

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

692335657d0685572a43e6c756a8718c3f7c19b3 にて修正いたしました。

誕生日(プリセット項目)のmember_profileデータについて、
  • value_datetimeが正しく登録されている場合は登録された日時がプロフィールに表示されること
  • value_datetimeがゼロ値('0000-00-00 00:00:00')の場合は、プロフィールに表示されないこと(プロフィール画面そのものは表示される)
  • value_datetimeがnullの場合は、プロフィールに表示されないこと(プロフィール画面そのものは表示される)
を確認しました。
また、プロフィール編集において(誕生日の編集が可能な場合)
  • value_datetimeが正しく登録されている場合は登録された日時がフォームに表示される
  • value_datetimeがゼロ値('0000-00-00 00:00:00')の場合は、フォームに表示されない
  • value_datetimeがnullの場合は、フォームに表示されない

となり、フォームに値が表示されていない場合でも新たに登録し直すことができることを確認しています。

#13 Maki Takahashi12年以上前に更新

3.4系、3.6系でも同様の問題が発生すると思われます(BPチケットは未作成)

#14 Naoya Tozuka12年以上前に更新

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

修正箇所( 69233565 )確認しました。問題ありません。

#15 Shingo Yamada12年以上前に更新

  • 360対象RC1 にセット

#16 Yuma Sakata12年以上前に更新

  • 360対象 を削除 (RC1)

#17 Yuma Sakata12年以上前に更新

  • 360対象RC1 にセット

#18 Yuma Sakata12年以上前に更新

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

テストOKです。

#19 kaoru n8年以上前に更新

  • 3.8 で発生するかUnknown (未調査) にセット

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