Bug(バグ) #2584
未完了プロフィール編集画面にて、国または地域のVALUE一覧に無い値で送信すると、その編集したメンバーのプロフィール画面で500エラーが発生する
0%
説明
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.
Causes (原因)¶
lib/form/doctrine/MemberProfileForm.class.php のバリデーターがプリセットのプロフィール項目の値に対して甘い(プルダウンにある値以外の値を受け取ったときの例外処理を行なっていない)からだと思われる。
Environment (再現環境)¶
OpenPNE 3.6.0
Way to repro (再現手順)¶
1. 管理画面の「プロフィール項目設定」でプリセットの「国または地域」を使用するように設定する。
2. プロフィール編集ページ(/member/edit/profile)にアクセスする。
3. Web Developerで「国または地域」のselect要素をinput要素に変換する。
4. 「JAPAN」と入力して送信ボタンをクリックする。
5. プロフィール編集が完了して、プロフィール確認画面に遷移する。
6. 「プロフィール確認ページ」(/member/profile)を開くと500エラーが発生する。