/** * メンバー情報を取得する * * @param int $c_member_id * @param bool $is_secure `c_member_secure`の項目を取得するかどうか(OPENPNE_AUTH_MODEがemail以外の場合はc_usernameも取得する) * @param bool $with_profile `c_member_profile`の項目を取得するかどうか * @param string $public_flag プロフィール項目を取得する場合の公開設定(public, friend, private) * @return array メンバー情報 */ function db_member_c_member4c_member_id($c_member_id, $is_secure = false, $with_profile = false, $public_flag = 'public') { static $is_recurred = false; //再帰処理中かどうかの判定フラグ if (!$is_recurred) { //function cacheのために再帰処理を行う $is_recurred = true; $funcargs = func_get_args(); $result = pne_cache_recursive_call(OPENPNE_FUNCTION_CACHE_LIFETIME_FAST, __FUNCTION__, $funcargs); $is_recurred = false; return $result; } if ($GLOBALS['_OPENPNE_DSN_LIST']['main']['dsn']['phptype'] == 'pgsql') { $sql = "SELECT *,case when access_date = '0001-01-01 00:00:00 BC' THEN '0000-00-00 00:00:00' ELSE to_char(access_date,'YYYY-MM-DD HH24:MI:SS') END as access_date" . " FROM c_member WHERE c_member_id = ?"; } else { $sql = 'SELECT * FROM c_member WHERE c_member_id = ?'; } $params = array(intval($c_member_id)); if (!($c_member = db_get_row($sql, $params))) { return array(); } if ($is_secure) { $c_member['secure'] = db_member_c_member_secure4c_member_id($c_member_id); } if ($with_profile) { $c_member['profile'] = db_member_c_member_profile_list4c_member_id($c_member_id, $public_flag); } // public_flag_birth_year, public_flag_birth_month_day switch ($public_flag) { case 'public': if ($c_member['public_flag_birth_year'] !== 'public') { unset($c_member['birth_year']); } if ($c_member['public_flag_birth_month_day'] !== 'public') { unset($c_member['birth_month']); unset($c_member['birth_day']); } break; case 'friend': if ($c_member['public_flag_birth_year'] === 'private') { unset($c_member['birth_year']); } if ($c_member['public_flag_birth_month_day'] === 'private') { unset($c_member['birth_month']); unset($c_member['birth_day']); } break; } if (OPENPNE_AUTH_MODE != 'email' && $is_secure) { $c_member['username'] = db_member_username4c_member_id($c_member_id); } return $c_member; }
function do_common_send_mail_c_commu_admin_change($c_member_id_to, $c_commu_id) { $c_member_to = $c_member = db_member_c_member4c_member_id($c_member_id_to, true); $c_commu = db_commu_c_commu4c_commu_id($c_commu_id); $to_address = ''; $params = array('c_member_to' => $c_member_to, 'c_commu' => $c_commu); if (!empty($c_member_to['secure']['pc_address'])) { $to_address = $c_member_to['secure']['pc_address']; return fetch_send_mail($to_address, 'm_pc_c_commu_admin_change', $params); } else { $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member['c_member_id'], true))); $params['login_url'] = openpne_gen_url('ktai', 'page_o_login', $p); $to_address = $c_member_to['secure']['ktai_address']; return fetch_send_mail($to_address, 'm_ktai_c_commu_admin_change', $params); } }
function execute($requests) { if (!($c_member_id = db_member_c_member_id4easy_access_id(OpenPNE_KtaiID::getID()))) { // 認証エラー $p = array('msg' => 14, 'kad' => t_encrypt($requests['ktai_address']), 'login_params' => $requests['login_params']); openpne_redirect('ktai', 'page_o_login', $p); } $c_member = db_member_c_member4c_member_id($c_member_id, true); @session_name('OpenPNEktai'); $config = get_auth_config(true); $auth = new OpenPNE_Auth($config); $auth->setExpire($GLOBALS['OpenPNE']['ktai']['session_lifetime']); $auth->setIdle($GLOBALS['OpenPNE']['ktai']['session_idletime']); $this->_auth =& $auth; if (LOGIN_CHECK_ENABLE) { // 不正ログインチェック include_once 'OpenPNE/LoginChecker.php'; $options = array('check_num' => LOGIN_CHECK_NUM, 'check_time' => LOGIN_CHECK_TIME, 'reject_time' => LOGIN_REJECT_TIME); $lc = new OpenPNE_LoginChecker($options); if ($lc->is_rejected()) { // 認証エラー $lc->fail_login(); $p = array('msg' => '0', 'login_params' => $requests['login_params']); openpne_redirect('ktai', 'page_o_login', $p); } } $auth->auth =& $auth->factory(true); $username = db_member_username4c_member_id($c_member_id, true); if (OPENPNE_AUTH_MODE == 'email') { $username = t_encrypt($username); } $auth->auth->setAuth($username); $auth->auth->setAuthData('OPENPNE_URL', OPENPNE_URL); $auth->auth->setAuthData('USER_AGENT', $_SERVER['HTTP_USER_AGENT']); if (OPENPNE_ONE_SESSION_PER_USER) { db_member_update_c_member_secure_insert_sess_id($c_member_id, session_id()); } if (db_member_is_login_rejected($c_member_id)) { ktai_display_error('ログインできませんでした。'); } if (db_member_is_blacklist($c_member_id)) { ktai_display_error('ログインできませんでした。'); } db_member_do_access($c_member_id); // ログイン後のリダイレクト先を決定する $a = ''; $m = 'ktai'; $p = array(); if ($requests['login_params']) { parse_str($requests['login_params'], $p); } if (!empty($p['a'])) { $a = $p['a']; } if (!empty($p['m'])) { $m = $p['m']; } if ($m == 'ktai' && $a == 'page_o_login') { $a = ''; } $_SESSION['c_member_id'] = $c_member_id; $p['ksid'] = session_id(); openpne_redirect($m, $a, $p); }
/** * スケジュール通知メールを送信する */ function biz_do_common_send_schedule_mail() { $y = date("Y"); $m = date("m"); $d = date("d"); $c_schedule_list = biz_getDateSchedule($y, $m, $d); $send_list = array(); foreach ($c_schedule_list as $schedule_id) { $value = biz_getScheduleInfo($schedule_id); $biz_schedule_member = biz_getJoinIdSchedule($value['biz_schedule_id']); foreach ($biz_schedule_member as $c_member_id) { $send_list[$c_member_id][] = $value; } } foreach ($send_list as $c_member_id => $c_schedule_list) { $c_member_secure = db_member_c_member_secure4c_member_id($c_member_id); if (!empty($c_member_secure['pc_address'])) { // PCメールアドレスがある場合は、PCのみ送信 $pc_address = $c_member_secure['pc_address']; $params = array('c_member' => db_member_c_member4c_member_id_LIGHT($c_member_id), 'c_schedule_list' => $c_schedule_list); fetch_send_mail($pc_address, 'm_pc_schedule_mail', $params); } else { // PCメールアドレスがない場合は、携帯のみ送信 $ktai_address = $c_member_secure['ktai_address']; $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_id, true))); $login_url = openpne_gen_url('ktai', 'page_o_login', $p); $params = array('c_member' => db_member_c_member4c_member_id_LIGHT($c_member_id), 'login_url' => $login_url, 'c_schedule_list' => $c_schedule_list); fetch_send_mail($ktai_address, 'm_ktai_schedule_mail', $params); } } }
/** * パスワードが正しいかどうか認証する * * @param int $c_member_id * @param string $password 平文のパスワード * @return bool パスワードが正しいかどうか */ function db_common_authenticate_password($c_member_id, $password, $is_ktai = false) { $auth_config = get_auth_config($is_ktai); if (OPENPNE_AUTH_MODE == 'slavepne' || OPENPNE_AUTH_MODE == 'pneid') { $username = db_member_username4c_member_id($c_member_id, $is_ktai); } else { $auth_config['options']['usernamecol'] = 'c_member_id'; $username = $c_member_id; } $storage = Auth::_factory($auth_config['storage'], $auth_config['options']); if ($storage->fetchData($username, $password, false) === true) { return true; } return false; }
function execute($requests) { // --- リクエスト変数 $ses = $requests['ses']; $password = $requests['password']; // ---------- // セッションが有効かどうか if (!($pre = db_member_c_ktai_address_pre4session($ses))) { // 無効の場合、login へリダイレクト openpne_redirect('ktai', 'page_o_login'); } // メールアドレスが登録できるかどうか if (!util_is_regist_mail_address($pre['ktai_address'], $pre['c_member_id'])) { openpne_redirect('ktai', 'page_o_login', array('msg' => 42)); } $c_member_id = $pre['c_member_id']; $ktai_address = $pre['ktai_address']; // パスワードチェック if (!db_common_authenticate_password($c_member_id, $password, true)) { $p = array('msg' => 18, 'ses' => $ses); openpne_redirect('ktai', 'page_o_login2', $p); } if (IS_GET_EASY_ACCESS_ID == 2 || IS_GET_EASY_ACCESS_ID == 3) { // 携帯の個体識別番号の取得が必須 if (!($easy_access_id = OpenPNE_KtaiID::getID())) { // 携帯の個体識別番号を取得できませんでした $p = array('msg' => 27, 'ses' => $ses); openpne_redirect('ktai', 'page_o_login2', $p); } else { $id = db_member_c_member_id4easy_access_id($easy_access_id); if ($id && $c_member_id != $id) { $p = array('msg' => 39, 'ses' => $ses); openpne_redirect('ktai', 'page_o_login2', $p); } if (db_member_easy_access_id_is_blacklist(md5($easy_access_id))) { ktai_display_error('携帯メールアドレスを登録できませんでした。'); } // update db_member_update_easy_access_id($c_member_id, $easy_access_id); db_member_update_ktai_address($c_member_id, $ktai_address); db_member_delete_ktai_address_pre($pre['c_ktai_address_pre_id']); openpne_redirect('ktai', 'do_o_easy_login'); } } else { if (IS_GET_EASY_ACCESS_ID == 1) { // 携帯の個体識別番号の取得が任意 if ($easy_access_id = OpenPNE_KtaiID::getID()) { $id = db_member_c_member_id4easy_access_id($easy_access_id); if ($id && $c_member_id != $id) { $p = array('msg' => 39, 'ses' => $ses); openpne_redirect('ktai', 'page_o_login2', $p); } if (db_member_easy_access_id_is_blacklist(md5($easy_access_id))) { ktai_display_error('携帯メールアドレスを登録できませんでした。'); } // update db_member_update_easy_access_id($c_member_id, $easy_access_id); db_member_update_ktai_address($c_member_id, $ktai_address); db_member_delete_ktai_address_pre($pre['c_ktai_address_pre_id']); openpne_redirect('ktai', 'do_o_easy_login'); } } } // 携帯の個体識別番号を取得しない db_member_update_ktai_address($c_member_id, $ktai_address); db_member_delete_ktai_address_pre($pre['c_ktai_address_pre_id']); // login ページへリダイレクト $p = array('msg' => 19, 'kad' => t_encrypt(db_member_username4c_member_id($c_member_id, true))); openpne_redirect('ktai', 'page_o_login', $p); }
function do_admin_send_message_mail_send_ktai($c_member_id_to, $c_member_id_from, $subject, $body) { $c_member_to = db_member_c_member4c_member_id($c_member_id_to, true); $ktai_address = $c_member_to['secure']['ktai_address']; $is_receive_ktai_mail = $c_member_to['is_receive_ktai_mail']; $p = array('kad' => t_encrypt(db_member_username4c_member_id($c_member_to['c_member_id'], true))); $login_url = openpne_gen_url('ktai', 'page_o_login', $p); $params = array('c_member_to' => db_member_c_member4c_member_id($c_member_id_to), 'c_member_from' => db_member_c_member4c_member_id($c_member_id_from), 'login_url' => $login_url, 'subject' => $subject, 'body' => $body); return admin_fetch_send_mail($ktai_address, 'm_ktai_message_zyushin', $params, $is_receive_ktai_mail); }