Bug(バグ) #1863
closedop_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時に例外が発生し閲覧できない場合がある
100%
Description
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の場合
Updated by Shingo Yamada over 13 years ago
- Priority changed from Normal(通常) to High(高め)
Updated by Masato Nagasawa over 13 years ago
- Assignee deleted (
Masato Nagasawa)
3.5.2 の登録時プロフィール設定と、プロフィール編集にて確認しました。
生まれ年の入力に対して全角文字列「1987」を入力して送信しましたが、
「正しくありません。」と表示され正しくバリデートされていることを確認しました。
また、その後プロフィール確認画面に遷移しても問題なく表示されていました。
ただ、完全に問題がないとは言い切れない状態なので、
ひとまずチケットは残しておき、担当からはずします。
Updated by Shingo Yamada over 13 years ago
本チケットは、高橋さんに依頼しました。(高橋さんのassign権限を要求中)
Updated by Maki Takahashi over 13 years ago
- Status changed from New(新規) to Accepted(着手)
- Assignee set to Maki Takahashi
Updated by Shingo Yamada over 13 years ago
- Assignee changed from Maki Takahashi to Shingo Yamada
Updated by Maki Takahashi over 13 years ago
- Assignee changed from Shingo Yamada to Maki Takahashi
バージョン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が日付としてでたらめならば例外発生
となっており、「プロフィールが閲覧不可能」な状態となっていると思われます。
新規に日付型のプロフィール項目を追加し、でたらめなデータとなっている場合には例外発生とはなりません。
Updated by Maki Takahashi over 13 years ago
- Subject changed from 【バグ】プロフィールのみ見られないメンバー to op_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時にFatal Errorが発生する場合がある
Updated by Maki Takahashi over 13 years ago
- Subject changed from op_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時にFatal Errorが発生する場合がある to op_preset_birthdayについて、member_profileのvalue_datetimeがゼロ値もしくはnullの場合、プロフィール閲覧時に例外が発生し閲覧できない場合がある
Updated by Maki Takahashi over 13 years ago
- Target version set to OpenPNE 3.7.0
Updated by Maki Takahashi over 13 years ago
- Status changed from Accepted(着手) to Pending Review(レビュー待ち)
- % Done changed from 0 to 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の場合は、フォームに表示されない
となり、フォームに値が表示されていない場合でも新たに登録し直すことができることを確認しています。
Updated by Maki Takahashi over 13 years ago
3.4系、3.6系でも同様の問題が発生すると思われます(BPチケットは未作成)
Updated by Naoya Tozuka over 13 years ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
- % Done changed from 50 to 70
修正箇所( 69233565 )確認しました。問題ありません。
Updated by Yuma Sakata about 13 years ago
- Status changed from Pending Testing(テスト待ち) to Fixed(完了)
- % Done changed from 70 to 100
テストOKです。