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

Opened 12 years ago

Last modified 12 years ago

#1373 new enhancement

メンバー情報のDB登録に失敗したケースを想定していないコードがある

Reported by: ebihara Owned by: nobody
Priority: minor Milestone:
Component: その他 Version:
Keywords: Cc:

Description

メンバー登録用のDB関数で、登録失敗時に false を返している箇所がありますが、そういった関数をコールしている do系アクションで、返り値に false がくることを想定していないコードがかなり散見されます。

例:pc_do_o_regist_prof

                $u = db_member_insert_c_member($c_member, $c_member_secure);
        
                if (OPENPNE_USE_POINT_RANK) {
                    //入会者にポイント加算
                    $point = db_action_get_point4c_action_id(1);
                    db_point_add_point($u, $point);
        
                    //メンバー招待をした人にポイント付与
                    $point = db_action_get_point4c_action_id(7);
                    db_point_add_point($pre['c_member_id_invite'], $point);
                }
        
                // c_member_profile
                db_member_update_c_member_profile($u, $c_member_profile_list);

この db_member_insert_c_member() は、PCメールアドレスが登録済だったなどの理由でメンバー情報を登録できなかった場合(直前でエラー処理を行っているが、起こりうる)、false を返します。

しかし、ここでは 返り値がどんな値であったとしても登録処理を継続しまうため、DB内のデータが不整合になってしまう場合があり得ます。

失敗した場合は、なるべくエラー画面に遷移させ、登録を中断した方がよいでしょう。

Change History (6)

comment:1 Changed 12 years ago by ogawa

Milestone: OpenPNE2.10beta1OpenPNE2.10beta2

comment:2 Changed 12 years ago by ogawa

Milestone: OpenPNE2.10beta2OpenPNE2.10RC1

comment:3 Changed 12 years ago by ebihara

Priority: criticalminor

優先度下げます。

comment:4 Changed 12 years ago by ogawa

Milestone: OpenPNE2.10RC1OpenPNE2.10

comment:5 Changed 12 years ago by ogawa

Component: その他pne-framework
Milestone: OpenPNE2.10OpenPNE2.12
Type: defectenhancement
Version: 2.10.x

comment:6 Changed 12 years ago by kiwa

Milestone: OpenPNE2.12.0
Note: See TracTickets for help on using tickets.