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

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1371 closed enhancement (fixed)

DBにメールアドレスを登録する際、メールアドレスの重複チェックをおこなう

Reported by: ebihara Owned by: ebihara
Priority: blocker Milestone: OpenPNE2.10beta1
Component: その他 Version: 2.10.x
Keywords: Cc:

Description (last modified by ebihara)

■機能概要

■仕様

既存のDB関数の大部分はutil_is_regist_mail_address()を使って重複チェックをしているので、その対応漏れ部分の修正。

■関連情報

現状、新規登録等でのメールアドレスの重複チェックは、doアクションもしくは pageアクション実行時のみで行われているが、これをメールアドレスの重複チェックはDB登録時にもおこなうように変更する。

変更対象は、メールアドレスの登録・更新を行う全ての箇所。

関連チケット:#1129

Change History (9)

comment:1 Changed 12 years ago by ebihara

  1. PHPスクリプト中で、以下が使われている箇所をリストアップ
    • INSERT INTO c_member_secure
      • (なし)
    • UPDATE c_member_secure
      • setup\script\update01-for2.9.3-easy_ktai_id.php(30): $sql = "UPDATE c_member_secure SET easy_access_id = ? " .
    • db_insert('c_member_secure',
      • webapp\lib\db\member.php(1098): db_insert('c_member_secure', $data);
      • webapp\lib\db\member.php(1136): db_insert('c_member_secure', $data);
      • webapp\lib\db\member.php(1839): db_insert('c_member_secure', $data);
      • webapp\modules\setup\do\setup.php(45): db_insert('c_member_secure', $data);
    • db_update('c_member_secure',
      • webapp\lib\db\member.php(1200): db_update('c_member_secure', $data, $where);
      • webapp\lib\db\member.php(1215): return db_update('c_member_secure', $data, $where);
      • webapp\lib\db\member.php(1229): db_update('c_member_secure', $data, $where);
      • webapp\lib\db\member.php(1241): return db_update('c_member_secure', $data, $where);
      • webapp\lib\db\member.php(1254): return db_update('c_member_secure', $data, $where);
      • webapp\lib\db\member.php(1273): return db_update('c_member_secure', $data, $where);
      • webapp\lib\db\member.php(1285): return db_update('c_member_secure', $data, $where);
  2. 1.のうち、新規にメールアドレスを挿入するか、変更を加えるものをリストアップ
    • webapp\lib\db\member.php(1098): db_insert('c_member_secure', $data);
      • db_member_insert_c_member() 内
    • webapp\lib\db\member.php(1136): db_insert('c_member_secure', $data);
      • db_member_ktai_insert_c_member() 内
    • webapp\lib\db\member.php(1839): db_insert('c_member_secure', $data);
      • db_member_create_member() 内
    • webapp\modules\setup\do\setup.php(45): db_insert('c_member_secure', $data);
      • setup_do_setup::execute() 内
    • webapp\lib\db\member.php(1241): return db_update('c_member_secure', $data, $where);
      • db_member_update_c_member_pc_address4c_member_id() 内
    • webapp\lib\db\member.php(1254): return db_update('c_member_secure', $data, $where);
      • db_member_regist_c_member_pc_address4c_member_id() 内
    • webapp\lib\db\member.php(1273): return db_update('c_member_secure', $data, $where);
      • db_member_update_ktai_address() 内
    • webapp\lib\db\member.php(1285): return db_update('c_member_secure', $data, $where);
      • db_member_update_password() 内

以上の手順で、修正対象箇所を絞り込みました。2.のそれぞれについて、メールアドレスの重複チェック処理を仕込みます。

comment:2 Changed 12 years ago by ebihara

Owner: changed from nobody to ebihara
Status: newassigned

実装に取りかかります。

comment:3 Changed 12 years ago by ebihara

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

r4267で対応しました。ご確認ください。既存のDB関数の大部分はutil_is_regist_mail_address()を使って重複チェックをしているように見えますので、今回はその対応漏れ部分の修正ということになります。

ちなみに今回コードを見ていて気になったのが、メンバー登録系関数で、登録失敗時に false を返していることです。これ自体は何ら問題ないのですが、do系アクションで false を返却されることを想定していないコードがかなり見受けられました。

ついでに修正しようとしましたが、ちょっと量が多いので別チケットで作業することにします。

comment:4 Changed 12 years ago by ebihara

#1373に、メンバー登録のDB関数で false が返却されたケースを想定していないコードがある問題についてのチケットを作りました。

comment:5 Changed 12 years ago by ogawa

r4269 でr4267の修正をしました。

comment:6 Changed 12 years ago by ogawa

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

comment:7 Changed 12 years ago by ogawa

Resolution: fixed
Status: newclosed

comment:8 Changed 12 years ago by ebihara

Description: modified (diff)

comment:9 Changed 12 years ago by ebihara

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