プロジェクト

全般

プロフィール

Bug(バグ) #2584

Yuya Watanabe12年以上前に更新

h3. Overview (現象)

プロフィール項目に「国または地域(op_preset_country)」が使われている場合、
メンバーがプロフィール編集画面にて、profile[op_preset_country][value]の値(value)をFirebug等を用いて、「国または地域」のプルダウンにない値(例えばprofile[op_preset_country][value]=JAPANESE とする等)を送信した場合、そのメンバーのプロフィール確認画面(もしくは他のメンバーが、上記のような行為を行った該当メンバーのプロフィールページ)を覗こうとした時に
そのページで500エラーが発生する。

以下はそのエラー文。
500 | Internal Server Error | InvalidArgumentException
The country JAPAN does not exist.

!http://dl.dropbox.com/u/20190621/p/201111071650.png!

h3. Causes (原因)

lib/form/doctrine/MemberProfileForm.class.php のバリデーターがプリセットのプロフィール項目の値に対して甘い(プルダウンにある値以外の値を受け取ったときの例外処理を行なっていない)からだと思われる。

関連するチケット


http://redmine.openpne.jp/issues/2423
「プロフィール編集画面にて、入力規則で指定された文字列以外の都道府県が登録できる」

h3. Environment (再現環境)

OpenPNE 3.6.0

h3. Way to repro (再現手順)

1. 管理画面の「プロフィール項目設定」でプリセットの「国または地域」を使用するように設定する。
2. プロフィール編集ページ(/member/edit/profile)にアクセスする。
3. Web Developerで「国または地域」のselect要素をinput要素に変換する。
4. 「JAPAN」と入力して送信ボタンをクリックする。
5. プロフィール編集が完了して、プロフィール確認画面に遷移する。
6. 「プロフィール確認ページ」(/member/profile)を開くと500エラーが発生する。 「プロフィール確認ページ」(/member/edit/profile)を開くと500エラーが発生する。

戻る