function execute($requests) { $errors = array(); if (!db_common_is_mailaddress($requests['pc_address']) || is_ktai_mail_address($requests['pc_address'])) { $errors[] = 'PCメールアドレスを正しく入力してください'; } if (OPENPNE_AUTH_MODE == 'email') { if ($requests['password'] !== $requests['password2']) { $errors[] = 'パスワードが一致していません'; } } if ($requests['admin_password'] !== $requests['admin_password2']) { $errors[] = '管理用パスワードが一致していません'; } if (OPENPNE_AUTH_MODE == 'slavepne') { $auth_config = get_auth_config(false); $storage = Auth::_factory($auth_config['storage'], $auth_config['options']); $result = $storage->fetchData($requests['username'], $requests['password'], false); if ($result !== true) { $errors[] = 'ログインIDまたはパスワードが一致しません'; } } if (OPENPNE_AUTH_MODE == 'pneid') { if (is_null($requests['username']) || $requests['username'] === '') { $errors[] = 'ログインIDを入力してください'; } elseif (!preg_match('/^[a-zA-Z0-9][a-zA-Z0-9\\-_]+[a-zA-Z0-9]$/i', $requests['username'])) { $errors[] = 'ログインIDは4~30文字の半角英数字、記号(アンダーバー「_」、ハイフン「-」)で入力してください'; } elseif (mb_strwidth($requests['username'], 'UTF-8') < 4) { $errors[] = "ログインIDは半角4文字以上で入力してください"; } elseif (mb_strwidth($requests['username'], 'UTF-8') > 30) { $errors[] = "ログインIDは半角30文字以内で入力してください"; } } if ($errors) { $this->handleError($errors); } // c_admin_config: SNS_NAME $data = array('name' => 'SNS_NAME', 'value' => $requests['SNS_NAME']); db_insert('c_admin_config', $data); // c_member_secure $data = array('c_member_id' => 1, 'hashed_password' => md5($requests['password']), 'hashed_password_query_answer' => '', 'pc_address' => t_encrypt($requests['pc_address']), 'ktai_address' => '', 'regist_address' => t_encrypt($requests['pc_address']), 'easy_access_id' => ''); if (OPENPNE_AUTH_MODE == 'slavepne' && !IS_SLAVEPNE_EMAIL_REGIST) { $data['ktai_address'] = t_encrypt('*****@*****.**'); } db_insert('c_member_secure', $data); // c_admin_user $data = array('username' => $requests['admin_username'], 'password' => md5($requests['admin_password']), 'auth_type' => 'all'); db_insert('c_admin_user', $data); if (OPENPNE_AUTH_MODE != 'email') { db_member_insert_username(1, $requests['username']); } openpne_redirect('setup', 'page_setup_done'); }
/** * メンバー登録を行う * * @param array $c_member * @param array $c_member_secure * @param array $c_member_profile_list * @param bool $is_password_encrypted パスワードが既に暗号化済みかどうか * @return int */ function util_regist_c_member($c_member, $c_member_secure, $c_member_profile_list = array(), $is_password_encrypted = false) { // メール受信設定をデフォルト値に $c_member['is_receive_mail'] = 1; $c_member['is_receive_ktai_mail'] = 1; $c_member['is_receive_daily_news'] = 1; // メンバー登録 $u = db_member_insert_c_member($c_member, $c_member_secure, $is_password_encrypted); if ($u === false) { // メンバー登録に失敗した場合 return false; } 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($c_member['c_member_id_invite'], $point); } // c_member_profile db_member_update_c_member_profile($u, $c_member_profile_list); // 招待者とフレンドリンク db_friend_insert_c_friend($u, $c_member['c_member_id_invite']); //管理画面で指定したコミュニティに強制参加 $c_commu_id_list = db_commu_regist_join_list(); foreach ($c_commu_id_list as $c_commu_id) { db_commu_join_c_commu($c_commu_id, $u); } // ログインIDを登録 if (OPENPNE_AUTH_MODE == 'pneid') { $login_id = strtolower($c_member['login_id']); db_member_insert_username($u, $login_id); } return $u; }