Exemple #1
0
/**
 * メンバー情報を取得する
 *
 * @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;
}
Exemple #2
0
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);
        }
    }
}
Exemple #5
0
/**
 * パスワードが正しいかどうか認証する
 *
 * @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);
 }
Exemple #7
0
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);
}