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 | |
---|
7 | require_once 'OpenPNE/KtaiID.php'; |
---|
8 | |
---|
9 | class ktai_do_o_regist_ktai 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 | openpne_redirect('ktai', 'page_o_login2', $p); |
---|
52 | } |
---|
53 | |
---|
54 | if ((!$easy_access_id = OpenPNE_KtaiID::getID()) && (!$pre['is_disabled_regist_easy_access_id'])) { |
---|
55 | if (!empty($c_member_id)) { |
---|
56 | $p = array('ses' => $ses, 'id' => $c_member_id); |
---|
57 | } elseif (!empty($c_member_pre_id)) { |
---|
58 | $p = array('ses' => $ses, 'pre_id' => $c_member_pre_id); |
---|
59 | } |
---|
60 | openpne_redirect('ktai', 'page_o_regist_ktai_uid_err', $p); |
---|
61 | } |
---|
62 | |
---|
63 | $id = db_member_c_member_id4easy_access_id($easy_access_id); |
---|
64 | if (!$pre['is_disabled_regist_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', $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', $p); |
---|
71 | } |
---|
72 | } |
---|
73 | |
---|
74 | if (db_member_easy_access_id_is_blacklist(md5($easy_access_id))) { |
---|
75 | if (!empty($c_member_id)) { |
---|
76 | $p = array('msg' => 44, 'ses' => $ses, 'c_member_id' => $c_member_id); |
---|
77 | } elseif (!empty($c_member_pre_id)) { |
---|
78 | $p = array('msg' => 44, 'ses' => $ses, 'c_member_pre_id' => $c_member_pre_id); |
---|
79 | } |
---|
80 | openpne_redirect('ktai', 'page_o_regist_ktai', $p); |
---|
81 | } |
---|
82 | |
---|
83 | if (!empty($c_member_id)) { |
---|
84 | // 既存ユーザの場合は個体識別番号を登録するだけ |
---|
85 | db_member_update_easy_access_id($c_member_id, $easy_access_id); |
---|
86 | db_member_update_ktai_address($c_member_id, $ktai_address); |
---|
87 | db_member_delete_ktai_address_pre($pre['c_ktai_address_pre_id']); |
---|
88 | } elseif (!empty($c_member_pre_id)) { |
---|
89 | // 新規ユーザの場合、PC版で行わなかったメンバー登録処理をここで行う |
---|
90 | $c_member = $pre; |
---|
91 | $c_member['c_member_id_invite'] = $pre['c_member_id_invite']; |
---|
92 | $c_member['is_receive_mail'] = 1; |
---|
93 | $c_member['is_receive_ktai_mail'] = 1; |
---|
94 | $c_member['is_receive_daily_news'] = 1; |
---|
95 | $c_member_secure = array( |
---|
96 | 'password' => $pre['password'], |
---|
97 | 'c_password_query_id' => $pre['c_password_query_id'], |
---|
98 | 'password_query_answer' => $pre['c_password_query_answer'], |
---|
99 | 'pc_address' => $pre['pc_address'], |
---|
100 | 'ktai_address' => $pre['ktai_address'], |
---|
101 | 'regist_address' => $pre['pc_address'], |
---|
102 | ); |
---|
103 | |
---|
104 | $u = db_member_insert_c_member($c_member, $c_member_secure); |
---|
105 | |
---|
106 | if (OPENPNE_USE_POINT_RANK) { |
---|
107 | //入会者にポイント加算 |
---|
108 | $point = db_action_get_point4c_action_id(1); |
---|
109 | db_point_add_point($u, $point); |
---|
110 | |
---|
111 | //メンバー招待をした人にポイント付与 |
---|
112 | $point = db_action_get_point4c_action_id(7); |
---|
113 | db_point_add_point($pre['c_member_id_invite'], $point); |
---|
114 | } |
---|
115 | |
---|
116 | // c_member_profile |
---|
117 | $c_member_pre_profile = db_member_c_member_pre_profile4c_member_pre_id($pre['c_member_pre_id']); |
---|
118 | foreach ($c_member_pre_profile as $item) { |
---|
119 | db_member_insert_c_member_profile($u, $item['c_profile_id'], $item['c_profile_option_id'], $item['value'], $item['public_flag']); |
---|
120 | } |
---|
121 | |
---|
122 | // 招待者とフレンドリンク |
---|
123 | db_friend_insert_c_friend($u, $pre['c_member_id_invite']); |
---|
124 | |
---|
125 | //管理画面で指定したコミュニティに強制参加 |
---|
126 | $c_commu_id_list = db_commu_regist_join_list(); |
---|
127 | foreach ($c_commu_id_list as $c_commu_id) { |
---|
128 | db_commu_join_c_commu($c_commu_id, $u); |
---|
129 | } |
---|
130 | |
---|
131 | db_member_update_easy_access_id($u, $easy_access_id); |
---|
132 | db_member_update_ktai_address($u, $ktai_address); |
---|
133 | db_member_delete_ktai_address_pre($pre['c_ktai_address_pre_id']); |
---|
134 | } |
---|
135 | // pre の内容を削除 |
---|
136 | db_member_delete_c_member_pre4sid($ses); |
---|
137 | db_member_delete_c_member_pre4ktai_session($ses); |
---|
138 | db_member_delete_c_member_pre_profile4c_member_pre_id($pre['c_member_pre_id']); |
---|
139 | |
---|
140 | // 登録完了メール送信 |
---|
141 | do_regist_prof_do_regist2_mail_send($u); |
---|
142 | |
---|
143 | if (!empty($c_member_id)) { |
---|
144 | $p = array('ses' => $ses, 'id' => $c_member_id); |
---|
145 | } elseif (!empty($c_member_pre_id)) { |
---|
146 | $p = array('ses' => $ses, 'pre_id' => $c_member_pre_id); |
---|
147 | } |
---|
148 | |
---|
149 | openpne_redirect('ktai', 'page_o_regist_ktai_end', $p); |
---|
150 | } |
---|
151 | } |
---|
152 | |
---|
153 | ?> |
---|