function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $ktai_address = $requests['ktai_address']; // ---------- $ktai_address = str_replace('"', '', $ktai_address); //--- 権限チェック //必要なし? //--- if (!db_common_is_mailaddress($ktai_address)) { // メールアドレスを入力してください $p = array('msg' => 12); openpne_redirect('ktai', 'page_h_regist_address', $p); } if (!is_ktai_mail_address($ktai_address)) { // 携帯メールアドレス以外は指定できません $p = array('msg' => 16); openpne_redirect('ktai', 'page_h_regist_address', $p); } if (db_member_is_sns_join4mail_address($ktai_address)) { // このメールアドレスはすでに登録されています $p = array('msg' => 17); openpne_redirect('ktai', 'page_h_regist_address', $p); } db_member_delete_c_member_ktai_pre4id($ktai_address); db_member_delete_c_ktai_address_pre4ktai_address($ktai_address); $session = create_hash(); db_member_insert_c_ktai_address_pre($u, $session, $ktai_address); //function cache削除 cache_drop_c_member_profile($u); do_mail_sns_change_ktai_mail_send($u, $session, $ktai_address); openpne_redirect('ktai', 'page_o_send_mail_end'); }
function execute($requests) { //<PCKTAI if (!OPENPNE_ENABLE_PC) { openpne_redirect('ktai', 'page_h_home'); } //> $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; // --- リクエスト変数 $pc_address = $requests['pc_address']; // ---------- $errors = array(); if (!db_common_is_mailaddress($pc_address)) { $errors[] = 'メールアドレスを正しく入力してください'; } elseif (is_ktai_mail_address($pc_address)) { $errors[] = '携帯メールアドレスは入力できません'; } elseif (db_member_c_member4pc_address($pc_address)) { $errors[] = '入力したメールアドレスは既に登録されています'; } elseif (!db_member_is_limit_domain4mail_address($pc_address)) { $errors[] = '入力したメールアドレスでは登録できません'; } if ($errors) { ktai_display_error($errors); } db_member_h_config_1($u, $pc_address); openpne_redirect('ktai', 'page_h_pc_send_confirm'); }
function execute($requests) { //<PCKTAI if (!OPENPNE_ENABLE_KTAI) { openpne_redirect('pc', 'page_h_home'); } //> $u = $GLOBALS['AUTH']->uid(); // --- リクエスト変数 $ktai_address = $requests['ktai_address']; // ---------- $ktai_address = str_replace('"', '', $ktai_address); if (!is_ktai_mail_address($ktai_address)) { $msg = "携帯メールアドレスを記入してください"; $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_config_ktai', $p); } // 登録済みメールアドレスかどうかチェックする if (($c_member_id = db_member_c_member_id4ktai_address2($ktai_address)) && $c_member_id != $u) { $msg = "入力されたメールアドレスは既に登録されています"; $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_config_ktai', $p); } db_member_delete_c_member_ktai_pre4ktai_address($ktai_address); db_member_delete_c_ktai_address_pre4ktai_address($ktai_address); $session = create_hash(); db_member_insert_c_ktai_address_pre($u, $session, $ktai_address); do_mail_sns_change_ktai_mail_send($u, $session, $ktai_address); openpne_redirect('pc', 'page_h_config_ktai_end'); }
function execute($requests) { //<PCKTAI if (OPENPNE_AUTH_MODE == 'slavepne' || !(OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_PC)) { client_redirect_login(); } //> $sid = $requests['sid']; $ktai_address = $requests['ktai_address']; $ktai_address = str_replace('"', '', $ktai_address); if (!db_member_is_active_sid($sid)) { $p = array('msg_code' => 'invalid_url'); openpne_redirect('pc', 'page_o_tologin', $p); } //携帯メールアドレスチェック if (!db_common_is_mailaddress($ktai_address)) { $msg = "メールアドレスを正しく入力してください"; } elseif (db_member_is_sns_join4mail_address($ktai_address)) { $msg = "そのメールアドレスは既に登録済みです"; } elseif (!is_ktai_mail_address($ktai_address)) { $msg = "携帯メールアドレスを入力してください"; } if (!empty($msg)) { $p = array('msg' => $msg, 'sid' => $sid, 'ktai_address' => $ktai_address); openpne_redirect('pc', 'page_o_regist_ktai_address', $p); } $pre = db_member_c_member_pre4sid($sid); $ktai_session = create_hash(); // c_member_pre にデータ挿入 $c_member_pre_secure = array('ktai_session' => $ktai_session, 'ktai_address' => $ktai_address); db_member_update_c_member_pre_secure($pre['c_member_pre_id'], array_merge($pre, $c_member_pre_secure), true); do_mail_sns_regist_ktai_id_mail_send_pre($ktai_session, $ktai_address); openpne_redirect('pc', 'page_o_regist_ktai_address_end', array('c_member_pre_id' => $pre['c_member_pre_id'])); }
function execute($requests) { //<PCKTAI if (OPENPNE_AUTH_MODE == 'slavepne' || !(OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_PC)) { client_redirect_login(); } //> $sid = $requests['sid']; $ktai_address = $requests['ktai_address']; $ktai_address = str_replace('"', '', $ktai_address); if (!db_member_is_active_sid($sid)) { $p = array('msg_code' => 'invalid_url'); openpne_redirect('pc', 'page_o_tologin', $p); } //携帯メールアドレスチェック if (!db_common_is_mailaddress($ktai_address)) { $msg = "メールアドレスを正しく入力してください"; } elseif (db_member_is_sns_join4mail_address($ktai_address, 0, true)) { $msg = "そのメールアドレスは既に登録済みです"; } elseif (!is_ktai_mail_address($ktai_address)) { $msg = "携帯メールアドレスを入力してください"; } if (!empty($msg)) { $p = array('msg' => $msg, 'sid' => $sid, 'ktai_address' => $ktai_address); openpne_redirect('pc', 'page_o_regist_ktai_address', $p); } $pre = db_member_c_member_pre4sid($sid); //---- inc_ テンプレート用 変数 ----// $this->set('inc_page_header', fetch_inc_page_header('regist')); $this->set('ktai_address', $ktai_address); $this->set('sid', $sid); return 'success'; }
function execute($requests) { $specify_type = $requests['specify_type']; $id_list_string = $requests['c_member_id_list']; if (!$id_list_string) { $error_msg = 'IDまたはメールアドレスを入力してください'; $this->handleError($error_msg); } //改行をスペースに $id_list_string = str_replace("\r\n", ' ', $id_list_string); $id_list_string = str_replace("\n", ' ', $id_list_string); $id_list_string = str_replace("\r", ' ', $id_list_string); $id_list_string = str_replace(" ", ' ', $id_list_string); $id_list_parsed = explode(' ', $id_list_string); $c_member_id_list = array(); foreach ($id_list_parsed as $each_id) { if (!$each_id) { continue; } switch ($specify_type) { case 'c_member_id': $each_c_member_id = $each_id; break; case 'mail_address': if (!is_ktai_mail_address($each_id)) { $each_c_member_id = db_member_c_member_id4pc_address($each_id); } else { $each_c_member_id = db_member_c_member_id4ktai_address2($each_id); } if (!$each_c_member_id) { $error_msg = '無効なメールアドレスが含まれています: ' . $each_id; $this->handleError($error_msg); } break; default: $this->handleError(''); break; } if (!is_numeric($each_c_member_id)) { $error_msg = 'IDは整数値で指定してください: ' . $each_c_member_id; $this->handleError($error_msg); } if (!db_member_is_active_c_member_id($each_c_member_id)) { $error_msg = '無効なIDが含まれています: ' . $each_c_member_id; $this->handleError($error_msg); } //重複チェック if (in_array($each_c_member_id, $c_member_id_list)) { continue; } $c_member_id_list[] = intval($each_c_member_id); } $_REQUEST['c_member_ids'] = $c_member_id_list; openpne_forward(ADMIN_MODULE_NAME, 'page', 'send_messages'); exit; }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); if (!IS_USER_INVITE) { openpne_forward('pc', 'page', 'h_err_invite'); exit; } // --- リクエスト変数 $form_val = $requests; // ---------- if (is_ktai_mail_address($form_val['mail'])) { $form_val['mail'] = str_replace('"', '', $form_val['mail']); } $msg = ""; if (OPENPNE_USE_CAPTCHA && (empty($_SESSION['captcha_keystring']) || $_SESSION['captcha_keystring'] != $requests['captcha'])) { unset($_SESSION['captcha_keystring']); $msg = "確認キーワードが誤っています"; } else { unset($_SESSION['captcha_keystring']); if (!db_common_is_mailaddress($form_val['mail'])) { $msg = "メールアドレスを正しく入力してください"; } elseif (db_member_is_sns_join4mail_address($form_val['mail'])) { $msg = "そのメールアドレスは既に登録済みです"; } elseif (!db_member_is_limit_domain4mail_address($form_val['mail'])) { $msg = "そのメールアドレスは登録できません"; } else { if (is_ktai_mail_address($form_val['mail'])) { //<PCKTAI if (!((OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_KTAI) >> 1)) { $msg = "携帯メールアドレスには招待を送ることができません"; } //> } else { //<PCKTAI if (!(OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_PC)) { $msg = "PCメールアドレスには招待を送ることができません"; } //> } } } if ($msg) { $_REQUEST['msg'] = $msg; openpne_forward('pc', 'page', "h_invite"); exit; } $this->set('inc_navi', fetch_inc_navi("h")); $this->set('form_val', $form_val); $this->set('SNS_NAME', SNS_NAME); $random_string = do_common_create_password(); $_SESSION['captcha_confirm'] = $random_string; $this->set('captcha_confirm', md5($random_string)); return 'success'; }
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'); }
function execute($requests) { //外部認証の場合はリダイレクト check_action4pne_slave(true); // --- リクエスト変数 $ktai_address = $requests['ktai_address']; $q_id = $requests['c_password_query_id']; $q_answer = $requests['password_query_answer']; // ---------- if (!$ktai_address) { $p = array('msg' => 25); openpne_redirect('ktai', 'page_o_password_query', $p); } if (!is_ktai_mail_address($ktai_address)) { $p = array('msg' => 31); openpne_redirect('ktai', 'page_o_password_query', $p); } if (IS_PASSWORD_QUERY_ANSWER) { if (!$q_id) { $p = array('msg' => 22); openpne_redirect('ktai', 'page_o_password_query', $p); } if (is_null($q_answer) || $q_answer === '') { $p = array('msg' => 23); openpne_redirect('ktai', 'page_o_password_query', $p); } } //--- 権限チェック if (IS_PASSWORD_QUERY_ANSWER) { $c_member_id = db_member_is_password_query_complete2($ktai_address, $q_id, $q_answer); if (!$c_member_id) { $p = array('msg' => 25); openpne_redirect('ktai', 'page_o_password_query', $p); } } else { $c_member_id = db_member_c_member_id4ktai_address($ktai_address); // メールアドレスが一致しない場合でも正常に完了した時と同じ画面にする if (!$c_member_id) { $p = array('msg' => 26); openpne_redirect('ktai', 'page_o_login', $p); } } //--- // パスワード再発行 $session = create_hash(); db_member_update_c_member_config($c_member_id, 'password_reset_sid', $session); db_member_update_c_member_config($c_member_id, 'password_reset_sid_time', time()); db_mail_send_m_ktai_password_reset_query($c_member_id, $session); $p = array('msg' => 26); openpne_redirect('ktai', 'page_o_login', $p); }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); // --- リクエスト変数 $pc_address = $requests['pc_address']; $pc_address2 = $requests['pc_address2']; // ---------- $msg_list = array(); if (!$pc_address) { $msg_list[] = "メールアドレスを入力してください"; } if (!$pc_address2) { $msg_list[] = "メールアドレス(確認)を入力してください"; } if ($pc_address != $pc_address2) { $msg_list[] = "メールアドレスが一致しません"; } if (!db_common_is_mailaddress($pc_address)) { $msg_list[] = "メールアドレスを正しく入力してください"; } if ($msg_list) { $msg = array_shift($msg_list); $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_regist_address', $p); } $c_member_id = db_member_c_member_id4pc_address($pc_address); if ($c_member_id == $u) { //自分のメールアドレス $p = array('msg' => "入力されたメールアドレスは既に登録されています"); openpne_redirect('pc', 'page_h_regist_address', $p); } elseif ($c_member_id) { //既に使われている $p = array('msg' => "入力されたメールアドレスは既に登録されています"); openpne_redirect('pc', 'page_h_regist_address', $p); } if (!db_member_is_limit_domain4mail_address($pc_address)) { $msg = "そのメールアドレスでは登録できません"; $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_regist_address', $p); } if (is_ktai_mail_address($pc_address)) { $p = array('msg' => '携帯メールアドレスは記入できません'); openpne_redirect('pc', 'page_h_regist_address', $p); } db_member_h_regist_mail($u, $pc_address); $GLOBALS['AUTH']->logout(); openpne_redirect('pc', 'page_o_h_regist_mail'); }
function xmlrpc_au_000_auth($message) { $re_false = array('result' => 1); $param = $message->getParam(0); if (!XML_RPC_Value::isValue($param)) { return xmlrpc_get_response($re_false); } $params = XML_RPC_decode($param); if (empty($params['mail'])) { //メールアドレス必須 return xmlrpc_get_response($re_false); } if (empty($params['passwd'])) { //パスワード必須 return xmlrpc_get_response($re_false); } if (is_null($params['sidflg']) || $params['sidflg'] === '') { //セッション作成フラグ必須 return xmlrpc_get_response($re_false); } if (!is_numeric($params['sidflg'])) { //セッション作成フラグは数値 return xmlrpc_get_response($re_false); } if (intval($params['sidflg']) != 0 && intval($params['sidflg']) != 1) { //セッション作成フラグは0 or 1 return xmlrpc_get_response($re_false); } $user_mail = htmlentities($params['mail']); $user_passwd = htmlentities($params['passwd']); $sid = htmlspecialchars($params['sid']); $sidflg = intval($params['sidflg']); $is_ktai = is_ktai_mail_address($user_mail); //携帯か? if ($is_ktai) { //携帯からのアクセス $c_member_id = OP::op_member_k_auth_login($user_mail, $user_passwd); } else { //PCからのアクセス $c_member_id = OP::op_member_auth_login($user_mail, $user_passwd); } if (!$c_member_id) { //メンバIDが取得できたか? return xmlrpc_get_response($re_false); } if (OP::op_member_is_login_rejected($c_member_id)) { //ログイン拒否されているか? return xmlrpc_get_response($re_false); } if (!OP::op_member_is_active_c_member_id($c_member_id)) { //アクティブメンバーか? return xmlrpc_get_response($re_false); } if (!$sidflg) { //セッションIDを作成するか $req = array('c_member_id' => $c_member_id, 'address' => $user_mail, 'password' => $user_passwd, 'sid' => $sid, 'is_ktai' => $is_ktai); if (!($session_id = OP::op_k_login($req))) { return xmlrpc_get_response($re_false); } $re_true = array('result' => 0, 'sid' => $session_id, 'mid' => intval($c_member_id)); } else { //セッションIDを作成しない $re_true = array('result' => 0, 'mid' => intval($c_member_id)); } return xmlrpc_get_response($re_true); }
function main() { $matches = array(); list($from_user, $from_host) = explode('@', $this->from, 2); list($to_user, $to_host) = explode('@', $this->to, 2); // メンテナンスモード if (OPENPNE_UNDER_MAINTENANCE) { $this->error_mail('現在メンテナンス中のため、メール投稿はおこなえません。しばらく時間を空けて再度送信してください。'); m_debug_log('mail_sns::main() maintenance mode'); return false; } // from_host が携帯ドメイン以外はエラー if (!is_ktai_mail_address($this->from)) { m_debug_log('mail_sns::main() from wrong host'); return false; } if (MAIL_ADDRESS_PREFIX) { if (strpos($to_user, MAIL_ADDRESS_PREFIX) === 0) { $to_user = substr($to_user, strlen(MAIL_ADDRESS_PREFIX)); } } if (!$this->c_member_id) { // 送信者がSNSメンバーでない場合 if (!IS_CLOSED_SNS) { // get 新規登録 if ($to_user == 'get') { // アフィリエイトIDが付いている場合 $body = $this->decoder->get_text_body(); m_debug_log('mail_sns::regist_get()', PEAR_LOG_INFO); return $this->regist_get($body); } } m_debug_log('mail_sns::main() action not found'); return false; } // 送信者がログイン停止登録されているメンバーの場合 if (db_member_is_login_rejected($this->c_member_id)) { m_debug_log('mail_sns::main() mail from rejected member'); return false; } // 送信者がブラックリスト登録済みメンバーの場合 if (db_member_is_blacklist($this->c_member_id)) { m_debug_log('mail_sns::main() mail from member on blacklist'); return false; } //--- // ログインURL通知 if ($to_user == 'get') { m_debug_log('mail_sns::login_get()', PEAR_LOG_INFO); return $this->login_get(); } elseif (preg_match('/^t(\\d+)$/', $to_user, $matches) || preg_match('/^t(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { // トピックIDのチェック if (!($c_commu_topic_id = $matches[1])) { return false; } if (MAIL_ADDRESS_HASHED) { if (empty($matches[2])) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_commu_topic_comment()', PEAR_LOG_INFO); return $this->add_commu_topic_comment($c_commu_topic_id); } elseif ($to_user == 'blog' || preg_match('/^b(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { if (MAIL_ADDRESS_HASHED) { if (empty($matches[1]) || empty($matches[2])) { return false; } // メンバーIDのチェック if ($matches[1] != $this->c_member_id) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_diary()', PEAR_LOG_INFO); return $this->add_diary(); } elseif (preg_match('/^bc(\\d+)$/', $to_user, $matches) || preg_match('/^bc(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { // 日記IDのチェック if (!($c_diary_id = $matches[1])) { return false; } if (MAIL_ADDRESS_HASHED) { if (empty($matches[2])) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_diary_comment()', PEAR_LOG_INFO); return $this->add_diary_comment($c_diary_id); } elseif ($to_user == 'album' || preg_match('/^a(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { if (MAIL_ADDRESS_HASHED) { if (empty($matches[1]) || empty($matches[2])) { return false; } // メンバーIDのチェック if ($matches[1] != $this->c_member_id) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_album()', PEAR_LOG_INFO); return $this->add_album(); } elseif (preg_match('/^ai(\\d+)$/', $to_user, $matches) || preg_match('/^ai(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { // アルバムIDのチェック if (!($c_album_id = $matches[1])) { return false; } if (MAIL_ADDRESS_HASHED) { if (empty($matches[2])) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_album_image()', PEAR_LOG_INFO); return $this->add_album_image($c_album_id); } elseif (preg_match('/^p(\\d+)$/', $to_user, $matches) || preg_match('/^p(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { // メンバーIDのチェック if ($matches[1] != $this->c_member_id) { return false; } if (MAIL_ADDRESS_HASHED) { if (empty($matches[2])) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_member_image()', PEAR_LOG_INFO); return $this->add_member_image(); } elseif (preg_match('/^bi(\\d+)$/', $to_user, $matches) || preg_match('/^bi(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { // 日記IDのチェック if (!($c_diary_id = $matches[1])) { return false; } if (MAIL_ADDRESS_HASHED) { if (empty($matches[2])) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_diary_image()', PEAR_LOG_INFO); return $this->add_diary_image($c_diary_id); } elseif (preg_match('/^ci(\\d+)$/', $to_user, $matches) || preg_match('/^ci(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { // コミュニティIDのチェック if (!($c_commu_id = $matches[1])) { return false; } if (MAIL_ADDRESS_HASHED) { if (empty($matches[2])) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_commu_image()', PEAR_LOG_INFO); return $this->add_commu_image($c_commu_id); } elseif (preg_match('/^ti(\\d+)$/', $to_user, $matches) || preg_match('/^ti(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { // トピックIDのチェック if (!($c_commu_topic_id = $matches[1])) { return false; } if (MAIL_ADDRESS_HASHED) { if (empty($matches[2])) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_topic_image()', PEAR_LOG_INFO); return $this->add_topic_image($c_commu_topic_id); } elseif (preg_match('/^ac(\\d+)$/', $to_user, $matches) || preg_match('/^ac(\\d+)-([0-9a-f]+)$/', $to_user, $matches)) { // アルバムIDのチェック if (!($c_album_id = $matches[1])) { return false; } if (MAIL_ADDRESS_HASHED) { if (empty($matches[2])) { return false; } // メンバーハッシュのチェック if (!t_check_user_hash($this->c_member_id, $matches[2])) { return false; } } m_debug_log('mail_sns::add_album_cover_image()', PEAR_LOG_INFO); return $this->add_album_cover_image($c_album_id); } m_debug_log('mail_sns::main() action not found(member)'); return false; }
function execute($requests) { $tail = $GLOBALS['KTAI_URL_TAIL']; $u = $GLOBALS['KTAI_C_MEMBER_ID']; if (!IS_USER_INVITE) { ktai_display_error(SNS_NAME . 'では、メンバーによる招待は行えません'); } // --- リクエスト変数 $mail = $requests['mail_address']; $body = $requests['body']; // ---------- if (is_ktai_mail_address($mail)) { $mail = str_replace('"', '', $mail); } if (!$mail) { $p = array('msg' => 12); openpne_redirect('ktai', 'page_h_invite', $p); } if (!db_common_is_mailaddress($mail)) { $p = array('msg' => 31); openpne_redirect('ktai', 'page_h_invite', $p); } if (db_member_is_sns_join4mail_address($mail)) { $p = array('msg' => 9); openpne_redirect('ktai', 'page_h_invite', $p); } if (!db_member_is_limit_domain4mail_address($mail)) { $p = array('msg' => 37); openpne_redirect('ktai', 'page_h_invite', $p); } $session = create_hash(); if (is_ktai_mail_address($mail)) { //<PCKTAI if (!((OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_KTAI) >> 1)) { $p = array('msg' => 13); openpne_redirect('ktai', 'page_h_invite', $p); } //> if (OPENPNE_AUTH_MODE != 'slavepne') { // c_member_ktai_pre に追加 if (db_member_c_member_ktai_pre4ktai_address($mail)) { db_member_update_c_member_ktai_pre($session, $mail, $u); } else { db_member_insert_c_member_ktai_pre($session, $mail, $u); } } h_invite_insert_c_invite_mail_send($session, $u, $mail, $body); } else { //<PCKTAI if (!(OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_PC)) { $p = array('msg' => 16); openpne_redirect('ktai', 'page_h_invite', $p); } //> if (OPENPNE_AUTH_MODE != 'slavepne') { // c_member_pre に追加 if (db_member_c_member_pre4pc_address($mail)) { db_member_update_c_invite($u, $mail, $body, $session); } else { db_member_insert_c_invite($u, $mail, $body, $session); } } do_h_invite_insert_c_invite_mail_send($u, $session, $body, $mail); } $p = array('msg' => 30); openpne_redirect('ktai', 'page_h_invite', $p); }
function execute($requests) { $u = $GLOBALS['AUTH']->uid(); if (!IS_USER_INVITE) { openpne_forward('pc', 'page', 'h_err_invite'); exit; } // --- リクエスト変数 $mail = $requests['mail']; $message = $requests['message']; // ---------- if (is_ktai_mail_address($mail)) { $mail = str_replace('"', '', $mail); } if (OPENPNE_USE_CAPTCHA) { if (empty($_SESSION['captcha_confirm']) || $requests['captcha_confirm'] != md5($_SESSION['captcha_confirm'])) { unset($_SESSION['captcha_confirm']); $msg = "確認キーワードが誤っています"; $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_invite', $p); } unset($_SESSION['captcha_confirm']); } if (!db_common_is_mailaddress($mail)) { $msg = "メールアドレスを入力してください"; $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_invite', $p); } if (db_member_is_sns_join4mail_address($mail)) { $msg = "そのメールアドレスは既に登録済みです"; $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_invite', $p); } if (!db_member_is_limit_domain4mail_address($mail)) { $msg = "そのメールアドレスでは登録できません"; $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_invite', $p); } $session = create_hash(); $c_member_id_invite = $u; if (is_ktai_mail_address($mail)) { //<PCKTAI if (!((OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_KTAI) >> 1)) { $msg = '携帯メールアドレスには招待を送ることができません'; $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_invite', $p); } //> if (OPENPNE_AUTH_MODE != 'slavepne') { // c_member_ktai_pre に追加 if (db_member_c_member_ktai_pre4ktai_address($mail)) { db_member_update_c_member_ktai_pre($session, $mail, $c_member_id_invite); } else { db_member_insert_c_member_ktai_pre($session, $mail, $c_member_id_invite); } } h_invite_insert_c_invite_mail_send($session, $c_member_id_invite, $mail, $message); } else { //<PCKTAI if (!(OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_PC)) { $msg = 'PCメールアドレスには招待を送ることができません'; $p = array('msg' => $msg); openpne_redirect('pc', 'page_h_invite', $p); } //> if (OPENPNE_AUTH_MODE != 'slavepne') { // c_member_pre に追加 if (db_member_c_member_pre4pc_address($mail)) { db_member_update_c_invite($c_member_id_invite, $mail, $message, $session); } else { db_member_insert_c_invite($c_member_id_invite, $mail, $message, $session); } } do_h_invite_insert_c_invite_mail_send($c_member_id_invite, $session, $message, $mail); } openpne_redirect('pc', 'page_h_invite_end'); }
function execute($requests) { $member_file = $_FILES['member_file']; $limit = 1000; // 行数制限 if (empty($member_file) || $member_file['error'] === UPLOAD_ERR_NO_FILE) { $this->handleError('ファイルを指定してください'); } $filename_parts = explode('.', $member_file['name']); if (array_pop($filename_parts) != 'csv') { $this->handleError('拡張子は.csvにしてください'); } $handle = fopen($member_file['tmp_name'], 'r'); if (($data = fgetcsv($handle, 4096)) === false) { $this->handleError('ファイルの内容が空です'); } $required_list = array('nickname', 'mail_address', 'password'); if (OPENPNE_AUTH_MODE == 'pneid') { $required_list[] = 'login_id'; } foreach ($required_list as $required) { if (!in_array($required, $data)) { $this->handleError('1行目: ' . $required . 'は必須項目です'); } } $title = array(); foreach ($data as $key => $value) { $matches = array(); if (preg_match('/^profile\\[(.*)\\]$/', $value, $matches)) { $is_profile = true; $name = $matches[1]; $c_profile = db_member_c_profile4name($name); } else { $is_profile = false; $name = $value; $c_profile = null; } $title[$key] = array('is_profile' => $is_profile, 'name' => $name, 'c_profile' => $c_profile); } $row = 1; // 1行目がタイトル行 $count = 0; // メンバー登録に成功した数 while (($data = fgetcsv($handle, 4096)) !== false && $row <= $limit) { $row++; $data_member = array(); $data_profile = array(); foreach ($data as $key => $value) { if (empty($title[$key])) { continue; } $name = $title[$key]['name']; if ($title[$key]['is_profile']) { if ($title[$key]['c_profile']['form_type'] === 'checkbox') { $data_profile[$name] = explode(',', $value); } else { $data_profile[$name] = $value; } } else { $data_member[$name] = $value; } } if (is_ktai_mail_address($data_member['mail_address'])) { $data_member['mail_address'] = str_replace('"', '', $data_member['mail_address']); } // validate $errors = array(); $validator = new OpenPNE_Validator(); $validator->addRequests($data_member); $validator->addRules($this->_getValidateRules()); if (!$validator->validate()) { $errors = array_merge($errors, $validator->getErrors()); } $member = $validator->getParams(); // mail_address if (!db_common_is_mailaddress($member['mail_address'])) { $errors[] = "メールアドレス [{$member['mail_address']}] はメールアドレスとして正しくありません"; } elseif (db_member_is_sns_join4mail_address($member['mail_address'])) { $errors[] = "メールアドレス [{$member['mail_address']}] は既に登録済みです"; } elseif (!db_member_is_limit_domain4mail_address($member['mail_address'])) { $errors[] = "メールアドレス [{$member['mail_address']}] は登録できません"; } // login_id if (OPENPNE_AUTH_MODE == 'pneid') { if (db_member_c_member_id4username($member['login_id'])) { $errors[] = "ログインID[{$member['login_id']}]は既に登録済みです"; } } // 生年月日のチェック if ($member['birth_year'] || $member['birth_month'] || $member['birth_day']) { if (!t_checkdate($member['birth_month'], $member['birth_day'], $member['birth_year'])) { $errors[] = '生年月日を正しく入力してください'; } elseif (t_isFutureDate($member['birth_day'], $member['birth_month'], $member['birth_year'])) { $errors[] = '生年月日を未来に設定することはできません'; } } if ($errors) { $this->handleError("{$row}行目:" . array_shift($errors)); } // profile $c_member_profile = db_member_check_profile($data_profile, array()); // register // メールアドレスが携帯メールアドレスのドメインの場合は、 // 携帯メールアドレスとして登録する if (is_ktai_mail_address($member['mail_address'])) { $ktai_address = $member['mail_address']; $pc_address = ''; } else { $ktai_address = ''; $pc_address = $member['mail_address']; } $c_member = array('nickname' => $member['nickname'], 'birth_year' => $member['birth_year'], 'birth_month' => $member['birth_month'], 'birth_day' => $member['birth_day'], 'c_password_query_id' => 0, 'c_member_id_invite' => 1, 'is_receive_mail' => 1, 'is_receive_ktai_mail' => 1, 'is_receive_daily_news' => 1, 'public_flag_birth_year' => $member['public_flag_birth_year'], 'public_flag_birth_month_day' => $member['public_flag_birth_month_day']); if (OPENPNE_AUTH_MODE == 'pneid') { $c_member['login_id'] = $member['login_id']; } $c_member_secure = array('password' => $member['password'], 'pc_address' => $pc_address, 'ktai_address' => $ktai_address, 'regist_address' => $member['mail_address']); if (!util_regist_c_member($c_member, $c_member_secure, $c_member_profile)) { $this->handleError("{$row}行目:メンバー登録に失敗しました"); } $count++; } fclose($handle); admin_client_redirect('import_c_member', "{$count}件のインポートが完了しました"); }
function execute($requests) { // オープン制のSNS以外では無効 if (IS_CLOSED_SNS) { client_redirect_login(); } //<PCKTAI if (OPENPNE_AUTH_MODE == 'slavepne' || !(OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_PC)) { client_redirect_login(); } //> // --- リクエスト変数 $pc_address = $requests['pc_address']; $pc_address2 = $requests['pc_address2']; // ---------- //新規登録時の招待者(c_member_id=1) $c_member_id_invite = 1; if (OPENPNE_USE_CAPTCHA) { @session_start(); if (empty($_SESSION['captcha_keystring']) || $_SESSION['captcha_keystring'] != $requests['captcha']) { unset($_SESSION['captcha_keystring']); $msg = "確認キーワードが誤っています"; $p = array('msg' => $msg); openpne_redirect('pc', 'page_o_public_invite', $p); } unset($_SESSION['captcha_keystring']); } if (!db_common_is_mailaddress($pc_address)) { $msg = 'メールアドレスを正しく入力してください'; $p = array('msg' => $msg); openpne_redirect('pc', 'page_o_public_invite', $p); } if (is_ktai_mail_address($pc_address)) { $msg = '携帯メールアドレスは入力できません'; $p = array('msg' => $msg); openpne_redirect('pc', 'page_o_public_invite', $p); } if ($pc_address != $pc_address2) { $msg = 'メールアドレスが一致していません'; $p = array('msg' => $msg); openpne_redirect('pc', 'page_o_public_invite', $p); } if (db_member_c_member_id4pc_address($pc_address)) { $msg = 'そのメールアドレスは既に登録されています'; $p = array('msg' => $msg); openpne_redirect('pc', 'page_o_public_invite', $p); } if (!db_member_is_limit_domain4mail_address($pc_address)) { $msg = 'そのメールアドレスでは登録できません'; $p = array('msg' => $msg); openpne_redirect('pc', 'page_o_public_invite', $p); } $session = create_hash(); if (db_member_c_member_pre4pc_address($pc_address)) { db_member_update_c_invite($c_member_id_invite, $pc_address, '', $session); } else { db_member_insert_c_invite($c_member_id_invite, $pc_address, '', $session); } do_h_invite_insert_c_invite_mail_send($c_member_id_invite, $session, '', $pc_address); // delete cookie setcookie(session_name(), '', time() - 3600, ini_get('session.cookie_path')); openpne_redirect('pc', 'page_o_public_invite_end'); }
function execute($requests) { $module_name = ADMIN_MODULE_NAME; if ($requests['input'] || empty($requests['mails'])) { openpne_forward($module_name, 'page', 'send_invites'); exit; } $mails = $requests['mails']; $mails = str_replace("\r\n", "\n", $mails); $mails = str_replace("\r", "\n", $mails); $mail_list = explode("\n", $mails); $is_disable_regist_easy_access_id = $requests['is_disable_regist_easy_access_id']; // filtering $errors = array(); $pcs = array(); $ktais = array(); $limits = array(); foreach ($mail_list as $mail) { if (is_ktai_mail_address($mail)) { $mail = str_replace('"', '', $mail); } if (!db_common_is_mailaddress($mail)) { // メールアドレスとして正しくない $errors[] = $mail; } elseif (db_member_is_sns_join4mail_address($mail)) { // 登録済み $registered[] = $mail; } elseif (!db_member_is_limit_domain4mail_address($mail)) { // ドメイン制限 $limits[] = $mail; } elseif (is_ktai_mail_address($mail)) { $ktais[] = $mail; } else { $pcs[] = $mail; } } if (isset($requests['complete'])) { // 送信者はとりあえず1番で固定 $c_member_id_invite = 1; // 送信完了メール数確認用 $send_complete = array(); //<PCKTAI if ((OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_KTAI) >> 1) { // 携帯へ招待メール foreach ($ktais as $mail) { $session = create_hash(); // c_member_ktai_pre に追加 if (db_member_c_member_ktai_pre4ktai_address($mail)) { db_member_update_c_member_ktai_pre($session, $mail, $c_member_id_invite, $is_disable_regist_easy_access_id); } else { db_member_insert_c_member_ktai_pre($session, $mail, $c_member_id_invite, $is_disable_regist_easy_access_id); } h_invite_insert_c_invite_mail_send($session, $c_member_id_invite, $mail, $requests['message']); $send_complete[] = $mail; } } //> //<PCKTAI if (OPENPNE_REGIST_FROM & OPENPNE_REGIST_FROM_PC) { // PCへ招待メール foreach ($pcs as $mail) { $session = create_hash(); // c_member_pre に追加 if (db_member_c_member_pre4pc_address($mail)) { db_member_update_c_invite($c_member_id_invite, $mail, $requests['message'], $session, $is_disable_regist_easy_access_id); } else { db_member_insert_c_invite($c_member_id_invite, $mail, $requests['message'], $session, $is_disable_regist_easy_access_id); } do_h_invite_insert_c_invite_mail_send($c_member_id_invite, $session, $requests['message'], $mail); $send_complete[] = $mail; } } //> // メール送信完了数が1件以上ある時は、完了画面へ if ($send_complete) { admin_client_redirect('top', '招待メールを送信しました'); } } $_REQUEST['error_mails'] = $errors; $_REQUEST['registered_mails'] = $registered; $_REQUEST['pc_mails'] = $pcs; $_REQUEST['ktai_mails'] = $ktais; $_REQUEST['limit_domain_mails'] = $limits; openpne_forward($module_name, 'page', 'send_invites_confirm'); exit; }
function db_member_is_limit_domain4mail_address($mail_address) { // メールアドレスとして正しくない if (!db_common_is_mailaddress($mail_address)) { return false; } // 携帯メールアドレスは制限しない if (is_ktai_mail_address($mail_address)) { return true; } //ドメイン未設定なら無条件でOK if (LIMIT_DOMAIN1 == '' && LIMIT_DOMAIN2 == '' && LIMIT_DOMAIN3 == '' && LIMIT_DOMAIN4 == '' && LIMIT_DOMAIN5 == '') { return true; } $arr = explode('@', $mail_address); $mail_domain = $arr[1]; $domains = array(LIMIT_DOMAIN1, LIMIT_DOMAIN2, LIMIT_DOMAIN3, LIMIT_DOMAIN4, LIMIT_DOMAIN5); foreach ($domains as $domain) { if ($domain) { $regexp = str_replace('\\*', '.*', preg_quote($domain, '/')); if (preg_match(sprintf('/%s/', $regexp), $mail_domain)) { return true; } } } return false; }