ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1535 closed defect (fixed)

SlavePNEで初回認証後のプロフィール登録が完了しない

Reported by: ogawa Owned by: ebihara
Priority: major Milestone: OpenPNE2.10.2
Component: pne-masterslave Version: 2.8.x & 2.10.x & 2.11.x
Keywords: OpenPNE2.8.7 OpenPNE2.11.2 Cc:

Description (last modified by ebihara)

■現象

SlavePNE有効時に初回認証後のプロフィール登録が完了せず、プロフィール入力画面が繰り返し表示されてしまう。

■原因

  • c_password_query_id が登録できていなかった

■修正内容

  • 「■関連情報」の修正パッチを適用
  • #1544 の修正を適用

■関連情報

  • 関連チケット:#1544
  • 修正パッチ↓
    Index: webapp/modules/pc/do/h_regist_prof.php
    ===================================================================
    --- webapp/modules/pc/do/h_regist_prof.php
    +++ webapp/modules/pc/do/h_regist_prof.php
    @@ -85,7 +85,7 @@
             case "register":
                 db_member_config_prof_new($u, $prof);
                 db_member_update_c_member_profile($u, $c_member_profile_list);
    -            db_member_update_password_query($u, $prof['password_query_id'], $prof['password_query_answer']);
    +            db_member_update_password_query($u, $prof['c_password_query_id'], $prof['c_password_query_answer']);
                 //管理画面で指定したコミュニティに強制参加
                 $c_commu_id_list = db_commu_regist_join_list();
                 foreach ($c_commu_id_list as $c_commu_id) {
    

Change History (22)

comment:1 Changed 12 years ago by ebihara

Owner: changed from nobody to ebihara
Status: newassigned

このコードが間違っているのは間違いないんですが、auth.incの

    if (($c_member['nickname'] === '')
     || ($c_member['birth_year'] === '')
     || ($c_member['birth_month'] === '')
     || ($c_member['birth_day'] === '')
     || ($c_member['c_password_query_id'] === '')
     || ($c_member['secure']['hashed_password_query_answer'] === '')

という間違った値チェックによって、再現しませんでした(このバグだと$c_memberc_password_query_id?が0に、$c_membersecure?hashed_password_query_answer?がd41d8cd98f00b204e9800998ecf8427e(空文字列のmd5ハッシュ値)になるため、チェックに引っかからない)。空文字列がmd5()に渡されることによって空文字列が返るPHPのバージョンがある、なんてこともなさそうです。

このチェックを正すのと、パッチの適用はやるべきだとは思いますが、プロフィール登録が完了しない件については別の原因かもしれません。引き続き調査してみます。

comment:2 Changed 12 years ago by ebihara

おっと。上のコメントの括弧のなかが大変なことに。

このバグだと

$c_member['c_password_query_id']
}}
が0に、
{{{
$c_member['secure']['hashed_password_query_answer']
}}}
がd41d8cd98f00b204e9800998ecf8427e(空文字列のmd5ハッシュ値)になるため、チェックに引っかからない

ですね。

comment:3 Changed 12 years ago by ebihara

再度訂正。

$c_member['c_password_query_id']

が0に、

$c_member['secure']['hashed_password_query_answer']

がd41d8cd98f00b204e9800998ecf8427e(空文字列のmd5ハッシュ値)になるため、チェックに引っかからない

comment:4 Changed 12 years ago by ebihara

Keywords: 確認中 added
Owner: changed from ebihara to ogawa
Status: assignednew

r4632で修正しました。

パッチで修正されている内容も原因のひとつではあるのですが、一番大きな要因はファンクションキャッシュがクリアできていなかったことでした。

ということで、SlavePNEの登録に関わる他のコードも見てみたのですが、

  • プロフィール項目入力済かどうかを判定する際は、 db_member_check_param_inputed() を共通して使用している
  • db_member_check_param_inputed()以外に、SlavePNE 独自で使用している関数は見あたらない
  • 既存の関数でファンクションキャッシュを用いている箇所でも、適切にキャッシュを削除しており、確認をした限りでは問題なく動作している

ということで、今回修正した箇所以外には特に問題は見あたりませんでした。

なお、プロフィール項目登録だけでなく、メールアドレス登録も完了せずにループしてしまうという現象がありましたが、同じ db_member_check_param_inputed() を使用しているため、r4632 で改善されたようです。

ご確認ください。

comment:5 Changed 12 years ago by ebihara

Description: modified (diff)

comment:6 Changed 12 years ago by ebihara

あ、必須プロフィール項目が入力済かどうかのチェックについては、#1544

comment:7 Changed 12 years ago by ebihara

trunkにマージを忘れていました。以下のリビジョンでtrunkのコードでも対応しました。

r4635

comment:8 Changed 12 years ago by ogawa

Keywords: OpenPNE2.11.2 added
Milestone: OpenPNE2.10.2

comment:9 Changed 12 years ago by ogawa

Keywords: 確認中 removed

メールアドレス登録後のキャッシュクリアと、ktaiモジュールの確認をお願いします。

comment:10 Changed 12 years ago by ebihara

Owner: changed from ogawa to ebihara
Status: newassigned

確認します

comment:11 Changed 12 years ago by ebihara

Keywords: ご確認ください added
Owner: changed from ebihara to ogawa
Status: assignednew

以下のリビジョンでメールアドレス登録後のファンクションキャッシュクリアに対応しました。

ktaiモジュールについても、PC版と同様に db_member_check_param_inputed() でプロフィール登録が完了しているかどうかチェックしているため、PC版で適切にキャッシュがクリアされてさえいれば問題ないように見えます。

comment:12 Changed 12 years ago by ebihara

Keywords: 確認中 added; ご確認ください removed
ktaiモジュールについても、PC版と同様に db_member_check_param_inputed() でプロフィール登録が完了しているかどうかチェックしているため、PC版で適切にキャッシュがクリアされてさえいれば問題ないように見えます。

のコメントは間違いでした。

ただし、プロフィールの登録処理においても、PC版と同一の関数を使用しており、db_member_update_password_query() で適切にキャッシュのクリアをおこなっているため、問題ないと思います。

comment:13 Changed 12 years ago by ebihara

以下のリビジョンで、携帯メールアドレス登録後にもファンクションキャッシュをクリアするようにしました。

comment:14 Changed 12 years ago by ogawa

Keywords: OpenPNE2.8.7 added; 確認中 removed
Owner: changed from ogawa to nobody
Version: 2.10.x & 2.11.x2.8.x & 2.10.x & 2.11.x

2.8系も修正しましょう。

comment:15 Changed 12 years ago by ebihara

Keywords: 確認中 added
Owner: changed from nobody to ogawa

r4643で2.8系へも修正しました。

ご確認ください。

comment:16 Changed 12 years ago by ogawa

Keywords: 確認中 removed
Owner: changed from ogawa to ebihara

comment:17 Changed 12 years ago by ogawa

Resolution: fixed
Status: newclosed

comment:18 Changed 12 years ago by kiwa

Description: modified (diff)

comment:19 Changed 12 years ago by kiwa

Keywords: テスト待ち added
Resolution: fixed
Status: closedreopened

動作テストが完了していないのでテスト待ちに変更します

comment:20 Changed 12 years ago by kiwa

Resolution: fixed
Status: reopenedclosed

comment:21 Changed 12 years ago by kiwa

Keywords: テスト待ち removed

comment:22 Changed 12 years ago by ebihara

Description: modified (diff)
Note: See TracTickets for help on using tickets.