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

source: OpenPNE/branches/work/ebihara/prj_regist_ktai_uid/webapp/modules/ktai/do/o_regist_ktai_id.php @ 4204

Last change on this file since 4204 was 4204, checked in by ebihara, 14 years ago

#1129:PCからの新規登録時、携帯メールアドレス登録をプロフィール入力画面から外し、別ページにした。その他各種変更

  • 登録済メンバーに対して個体識別番号登録を強制しないようにした
  • c_member_pre の メールアドレスの暗号化をしないようにした
  • 携帯登録用のセッションを作成し、プロフィール項目入力・携帯アドレス登録がリトライできるようにした
  • プロフィール登録済みで携帯未登録のメールアドレスへの招待があった場合、プロフィール情報を削除するようにした
  • c_member_preのktai_addressも、登録済みメールアドレスかどうかのチェック対象にできるようにした
File size: 6.4 KB
Line 
1<?php
2/**
3 * @copyright 2005-2007 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7require_once 'OpenPNE/KtaiID.php';
8
9class ktai_do_o_regist_ktai_id extends OpenPNE_Action
10{
11    function isSecure()
12    {
13        return false;
14    }
15
16    function execute($requests)
17    {
18        // --- リクエスト変数
19        $ses = $requests['ses'];
20        $password = $requests['password'];
21        $c_member_id = intval($requests['id']);
22        $c_member_pre_id = intval($requests['pre_id']);
23        // ----------
24
25        $pre = array();
26
27        // セッションが有効かどうか
28        if ((!$pre = db_member_c_ktai_address_pre4session($ses)) && !empty($c_member_id)) {
29            // 無効の場合、login へリダイレクト
30            openpne_redirect('ktai', 'page_o_login');
31        } elseif (!empty($c_member_id)) {
32        } elseif ((!$pre = db_member_c_member_pre4session($ses)) && !empty($c_member_pre_id)) {
33            openpne_redirect('ktai', 'page_o_login');
34        }
35
36        // メールアドレスが登録できるかどうか
37        if (!util_is_regist_mail_address($pre['ktai_address'])) {
38            openpne_redirect('ktai', 'page_o_login', array('msg' => 42));
39        }
40
41        $c_member_id = $pre['c_member_id'];
42        $c_member_pre_id = $pre['c_member_pre_id'];
43        $ktai_address = $pre['ktai_address'];
44
45        // パスワードチェック
46        if (!empty($c_member_id) && !db_common_authenticate_password($c_member_id, $password, true)) {
47            $p = array('msg' => 18, 'ses' => $ses);
48            openpne_redirect('ktai', 'page_o_login2', $p);
49        } elseif (!empty($c_member_pre_id) && (md5($password) !== $pre['password'])) {
50            $p = array('msg' => 18, 'ses' => $ses);
51            var_dump(md5($password), $pre['password']);
52            openpne_redirect('ktai', 'page_o_login2', $p);
53        }
54       
55        if (!$easy_access_id = OpenPNE_KtaiID::getID()) {
56            if (!empty($c_member_id)) {
57                $p = array('ses' => $ses, 'id' => $c_member_id);
58            } elseif (!empty($c_member_pre_id)) {
59                $p = array('ses' => $ses, 'pre_id' => $c_member_pre_id);
60            }
61            openpne_redirect('ktai', 'page_o_regist_ktai_uid_err', $p);
62        }
63       
64        $id = db_member_c_member_id4easy_access_id($easy_access_id);
65        if (!empty($c_member_id) && $id && $c_member_id != $id) {
66            $p = array('msg' => 39, 'ses' => $ses, 'id' => $c_member_id);
67            openpne_redirect('ktai', 'page_o_regist_ktai_id', $p);
68        } elseif (!empty($c_member_pre_id) && !empty($id)) {
69            $p = array('msg' => 39, 'ses' => $ses, 'pre_id' => $c_member_pre_id);
70            openpne_redirect('ktai', 'page_o_regist_ktai_id', $p);
71        }
72       
73        if (db_member_easy_access_id_is_blacklist(md5($easy_access_id))) {
74            if (!empty($c_member_id)) {
75                $p = array('msg' => 44, 'ses' => $ses, 'c_member_id' => $c_member_id);
76            } elseif (!empty($c_member_pre_id)) {
77                $p = array('msg' => 44, 'ses' => $ses, 'c_member_pre_id' => $c_member_pre_id);
78            }
79            openpne_redirect('ktai', 'page_o_regist_ktai_id', $p);
80        }
81       
82        if (!empty($c_member_id)) {
83            // 既存ユーザの場合は個体識別番号を登録するだけ
84            db_member_update_easy_access_id($c_member_id, $easy_access_id);
85            db_member_update_ktai_address($c_member_id, $ktai_address);
86            db_member_delete_ktai_address_pre($pre['c_ktai_address_pre_id']);
87        } elseif (!empty($c_member_pre_id)) {
88            // 新規ユーザの場合、PC版で行わなかったメンバー登録処理をここで行う
89            $c_member = $pre;
90            $c_member['c_member_id_invite'] = $pre['c_member_id_invite'];
91            $c_member['is_receive_mail'] = 1;
92            $c_member['is_receive_ktai_mail'] = 1;
93            $c_member['is_receive_daily_news'] = 1;
94            $c_member_secure = array(
95                'password' => $pre['password'],
96                'c_password_query_id' => $pre['c_password_query_id'],
97                'password_query_answer' => $pre['c_password_query_answer'],
98                'pc_address' => $pre['pc_address'],
99                'ktai_address' => $pre['ktai_address'],
100                'regist_address' => $pre['pc_address'],
101            );
102
103            $u = db_member_insert_c_member($c_member, $c_member_secure);
104   
105            if (OPENPNE_USE_POINT_RANK) {
106                //入会者にポイント加算
107                $point = db_action_get_point4c_action_id(1);
108                db_point_add_point($u, $point);
109   
110                //メンバー招待をした人にポイント付与
111                $point = db_action_get_point4c_action_id(7);
112                db_point_add_point($pre['c_member_id_invite'], $point);
113            }
114   
115            // c_member_profile
116            $c_member_pre_profile = db_member_c_member_pre_profile4c_member_pre_id($pre['c_member_pre_id']);
117            foreach ($c_member_pre_profile as $item) {
118                db_member_insert_c_member_profile($u, $item['c_profile_id'], $item['c_profile_option_id'], $item['value'], $item['public_flag']);
119            }
120   
121            // 招待者とフレンドリンク
122            db_friend_insert_c_friend($u, $pre['c_member_id_invite']);
123   
124            //管理画面で指定したコミュニティに強制参加
125            $c_commu_id_list = db_commu_regist_join_list();
126            foreach ($c_commu_id_list as $c_commu_id) {
127                db_commu_join_c_commu($c_commu_id, $u);
128            }
129
130            db_member_update_easy_access_id($u, $easy_access_id);
131            db_member_update_ktai_address($u, $ktai_address);
132            db_member_delete_ktai_address_pre($pre['c_ktai_address_pre_id']);
133        }
134        // pre の内容を削除
135        db_member_delete_c_member_pre4sid($ses);
136        db_member_delete_c_member_pre4ktai_session($ses);
137        db_member_delete_c_member_pre_profile4c_member_pre_id($pre['c_member_pre_id']);
138
139        // 登録完了メール送信
140        do_regist_prof_do_regist2_mail_send($u);
141
142        if (!empty($c_member_id)) {
143            $p = array('ses' => $ses, 'id' => $c_member_id);
144        } elseif (!empty($c_member_pre_id)) {
145            $p = array('ses' => $ses, 'pre_id' => $c_member_pre_id);
146        }
147
148        openpne_redirect('ktai', 'page_o_regist_ktai_uid_end', $p);
149    }
150}
151
152?>
Note: See TracBrowser for help on using the repository browser.