function execute($requests)
 {
     //外部認証の場合はリダイレクト
     check_action4pne_slave(false);
     // --- リクエスト変数
     $pc_address = $requests['pc_address'];
     $q_id = $requests['c_password_query_id'];
     $q_answer = $requests['c_password_query_answer'];
     // ----------
     if (OPENPNE_USE_CAPTCHA) {
         @session_start();
         if (empty($_SESSION['captcha_keystring']) || $_SESSION['captcha_keystring'] !== $requests['captcha']) {
             unset($_SESSION['captcha_keystring']);
             $p = array('msg' => "確認キーワードが誤っています");
             openpne_redirect('pc', 'page_o_password_query', $p);
         }
         unset($_SESSION['captcha_keystring']);
     }
     if (!$pc_address) {
         $p = array('msg' => 'メールアドレスを入力してください');
         openpne_redirect('pc', 'page_o_password_query', $p);
     }
     if (!db_common_is_mailaddress($pc_address)) {
         $p = array('msg' => 'メールアドレスの形式が正しくありません');
         openpne_redirect('pc', 'page_o_password_query', $p);
     }
     if (IS_PASSWORD_QUERY_ANSWER) {
         if (!$q_id) {
             $p = array('msg' => '秘密の質問を選択してください');
             openpne_redirect('pc', 'page_o_password_query', $p);
         }
         if (!$q_answer) {
             $p = array('msg' => '秘密の質問の答えを入力してください');
             openpne_redirect('pc', 'page_o_password_query', $p);
         }
     }
     //--- 権限チェック
     if (IS_PASSWORD_QUERY_ANSWER) {
         $c_member_id = db_member_is_password_query_complete($pc_address, $q_id, $q_answer);
         $msg = '正しい値を入力してください';
         if (!$c_member_id) {
             $p = array('msg' => $msg);
             openpne_redirect('pc', 'page_o_password_query', $p);
         }
     } else {
         $c_member_id = db_member_c_member_id4pc_address($pc_address);
         if (!$c_member_id) {
             openpne_redirect('pc', 'page_o_password_query_end');
         }
     }
     //---
     // パスワード再発行用のハッシュをDBに登録し再設定用のメールを送信
     $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());
     do_password_reset_query_mail_send($c_member_id, $pc_address, $session);
     openpne_redirect('pc', 'page_o_password_query_end');
 }
 function execute($requests)
 {
     $tail = $GLOBALS['KTAI_URL_TAIL'];
     $u = $GLOBALS['KTAI_C_MEMBER_ID'];
     // コメントメール通知
     db_member_update_c_member_config($u, 'SEND_DIARY_COMMENT_MAIL_KTAI', $requests['SEND_DIARY_COMMENT_MAIL_KTAI']);
     $p = array('msg' => 48);
     openpne_redirect('ktai', 'page_h_config', $p);
 }
 function execute($requests)
 {
     $tail = $GLOBALS['KTAI_URL_TAIL'];
     $u = $GLOBALS['KTAI_C_MEMBER_ID'];
     if (util_is_unused_mail('m_ktai_rank_up')) {
         handle_kengen_error();
     }
     db_member_update_c_member_config($u, 'SEND_RANK_UP_MAIL_KTAI', $requests['SEND_RANK_UP_MAIL_KTAI']);
     $p = array('msg' => 48);
     openpne_redirect('ktai', 'page_h_config', $p);
 }
 function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     $default_config = util_get_c_member_config_default();
     foreach ($requests as $key => $value) {
         if (!is_null($value) && array_key_exists($key, $default_config)) {
             db_member_update_c_member_config($u, $key, $value);
         }
     }
     openpne_redirect('pc', 'page_h_home');
 }
 function execute($requests)
 {
     if (!DISPLAY_NEWDIARYTOPIC_HOME) {
         handle_kengen_error();
     }
     $tail = $GLOBALS['KTAI_URL_TAIL'];
     $u = $GLOBALS['KTAI_C_MEMBER_ID'];
     db_member_update_c_member_config($u, 'IS_DISPLAY_NEWDIARY_HOME_KTAI', $requests['IS_DISPLAY_NEWDIARY_HOME_KTAI']);
     db_member_update_c_member_config($u, 'IS_DISPLAY_NEWTOPIC_HOME_KTAI', $requests['IS_DISPLAY_NEWTOPIC_HOME_KTAI']);
     $p = array('msg' => 48);
     openpne_redirect('ktai', 'page_h_config', $p);
 }
 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)
 {
     $tail = $GLOBALS['KTAI_URL_TAIL'];
     $u = $GLOBALS['KTAI_C_MEMBER_ID'];
     $errors = array();
     $validator = new OpenPNE_Validator();
     $validator->addRequests($_REQUEST);
     $validator->addRules($this->_getValidateRules());
     if (!$validator->validate()) {
         $errors = array_merge($errors, $validator->getErrors());
     }
     $prof = $validator->getParams();
     //--- c_profile の項目をチェック
     $validator = new OpenPNE_Validator();
     $validator->addRequests($_REQUEST['profile']);
     $validator->addRules(util_get_validate_rules_profile('config'));
     if (!$validator->validate()) {
         $errors = array_merge($errors, $validator->getErrors());
     }
     // 値の整合性をチェック(DB)
     $c_member_profile_list = db_member_check_profile($validator->getParams(), $_REQUEST['public_flag']);
     // 必須項目チェック
     $profile_list = db_member_c_profile_list4null();
     foreach ($profile_list as $profile) {
         $value = $c_member_profile_list[$profile['name']]['value'];
         if ($profile['disp_config'] && $profile['is_required']) {
             if (is_null($value) || $value === '' || $value === array()) {
                 $errors[$profile['name']] = $profile['caption'] . 'を入力してください';
             }
         }
     }
     // 生年月日のチェック
     if (!t_checkdate($prof['birth_month'], $prof['birth_day'], $prof['birth_year'])) {
         $errors[] = '生年月日を正しく入力してください';
     }
     if (t_isFutureDate($prof['birth_day'], $prof['birth_month'], $prof['birth_year'])) {
         $errors[] = '生年月日を未来に設定することはできません';
     }
     if ($errors) {
         ktai_display_error($errors);
     }
     db_member_config_prof_new($u, $prof);
     db_member_update_c_member_profile($u, $c_member_profile_list);
     db_member_update_c_member_config($u, 'IS_SEARCH_RESULT', $prof['is_search_result']);
     openpne_redirect('ktai', 'page_h_prof');
 }
 function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     $mode = $requests['mode'];
     $errors = array();
     $validator = new OpenPNE_Validator();
     $validator->addRequests($_REQUEST);
     $validator->addRules($this->_getValidateRules());
     if (!$validator->validate()) {
         $errors = array_merge($errors, $validator->getErrors());
     }
     $prof = $validator->getParams();
     //--- c_profile の項目をチェック
     $validator = new OpenPNE_Validator();
     $validator->addRequests($_REQUEST['profile']);
     $validator->addRules(util_get_validate_rules_profile('config'));
     if (!$validator->validate()) {
         $errors = array_merge($errors, $validator->getErrors());
     }
     // 値の整合性をチェック(DB)
     $c_member_profile_list = db_member_check_profile($validator->getParams(), $_REQUEST['public_flag']);
     // 必須項目チェック
     $profile_list = db_member_c_profile_list4null();
     foreach ($profile_list as $profile) {
         $value = $c_member_profile_list[$profile['name']]['value'];
         if ($profile['disp_config'] && $profile['is_required']) {
             if (is_null($value) || $value === '' || $value === array()) {
                 $errors[$profile['name']] = $profile['caption'] . 'を入力してください';
             }
         }
     }
     // 生年月日のチェック
     if (!t_checkdate($prof['birth_month'], $prof['birth_day'], $prof['birth_year'])) {
         $errors[] = '生年月日を正しく入力してください';
     }
     if (t_isFutureDate($prof['birth_day'], $prof['birth_month'], $prof['birth_year'])) {
         $errors[] = '生年月日を未来に設定することはできません';
     }
     if ($errors) {
         $_REQUEST['msg'] = array_shift($errors);
         $mode = "input";
     }
     switch ($mode) {
         case "input":
             $prof['profile'] = $c_member_profile_list;
             $_REQUEST['prof'] = $prof;
             openpne_forward('pc', 'page', "h_config_prof");
             exit;
             break;
         default:
         case "confirm":
             $prof['profile'] = $c_member_profile_list;
             $_REQUEST['prof'] = $prof;
             // page:h_config_prof_confirm への値の引渡し
             openpne_forward('pc', 'page', "h_config_prof_confirm");
             exit;
             break;
         case "register":
             db_member_config_prof_new($u, $prof);
             db_member_update_c_member_profile($u, $c_member_profile_list);
             db_member_update_c_member_config($u, 'IS_SEARCH_RESULT', $prof['is_search_result']);
             openpne_redirect('pc', 'page_h_prof');
             break;
     }
 }
Beispiel #9
0
/**
 * DBにPOST情報を設定する
 *
 * @param int $u
 * @param int $post_time
 * @param int $post_count
 *
 */
function db_etc_set_post_info($u, $post_time, $post_count)
{
    db_member_update_c_member_config($u, 'last_post_time', $post_time);
    db_member_update_c_member_config($u, 'last_post_count', $post_count);
}
Beispiel #10
0
 function execute($requests)
 {
     $u = $GLOBALS['AUTH']->uid();
     // --- リクエスト変数
     $rss = $requests['rss'];
     $is_receive_daily_news = $requests['is_receive_daily_news'];
     $is_receive_mail = $requests['is_receive_mail'];
     $ashiato_mail_num = $requests['ashiato_mail_num'];
     $c_member_id_block = $requests['c_member_id_block'];
     $public_flag_diary = util_cast_public_flag_diary($requests['public_flag_diary']);
     $is_shinobiashi = $requests['is_shinobiashi'];
     $schedule_start_day = $requests['schedule_start_day'];
     $c_password_query_id = $requests['c_password_query_id'];
     $c_password_query_answer = $requests['c_password_query_answer'];
     // ----------
     $c_member = db_member_c_member4c_member_id($u);
     $error_messages = array();
     if (OPENPNE_AUTH_MODE == 'slavepne') {
         $c_password_query_id = 0;
         $c_password_query_answer = '';
     } else {
         if (IS_PASSWORD_QUERY_ANSWER) {
             if (!strlen($requests['c_password_query_answer'])) {
                 if (!$c_member['c_password_query_id']) {
                     $c_password_query_id = 0;
                 } else {
                     if ($c_password_query_id != $c_member['c_password_query_id']) {
                         $error_messages[] = '秘密の質問の答えを入力してください。';
                     }
                 }
             }
         }
     }
     if ($rss) {
         if (!preg_match('|^https?://|', $rss)) {
             $error_messages[] = 'BlogのURLを正しく入力してください';
         } else {
             include_once 'OpenPNE/RSS.php';
             if (!($rss_url = OpenPNE_RSS::auto_discovery($rss))) {
                 $error_messages[] = 'BlogのURLが無効です';
             }
         }
     }
     $filtered_id = db_member_filter_c_access_block_id($u, $c_member_id_block);
     foreach ($c_member_id_block as $each_id) {
         if (!in_array($each_id, $filtered_id)) {
             $error_messages[] = 'アクセスブロックに無効なメンバーIDが含まれています';
             break;
         }
     }
     // error
     if ($error_messages) {
         $_REQUEST['msg'] = array_shift($error_messages);
         openpne_forward('pc', 'page', 'h_config');
         exit;
     }
     if ($rss_url) {
         if ($rss_url != $c_member['rss']) {
             //異なるBlogを登録すると過去のrssは全て削除する
             db_rss_delete_rss_cache($u);
         }
         //c_rss_cacheへ登録
         db_rss_insert_rss_cache($rss_url, $u);
     } else {
         $rss_url = '';
         db_rss_delete_rss_cache($u);
     }
     //秘密の質問使用モード = true
     //または、設定画面表示時はtrueだったけど、設定変更ボタンを押す時にはfalse
     //になっていた場合、
     //秘密の質問は登録する
     db_member_h_config_3($u, $is_receive_mail, $rss_url, $ashiato_mail_num, $is_receive_daily_news, $c_password_query_id, $c_password_query_answer, $public_flag_diary, $is_shinobiashi, $schedule_start_day);
     db_member_insert_c_access_block($u, $c_member_id_block);
     // ランクアップメール設定
     if (!util_is_unused_mail('m_pc_rank_up')) {
         db_member_update_c_member_config($u, 'SEND_RANK_UP_MAIL_PC', $requests['SEND_RANK_UP_MAIL_PC']);
     }
     openpne_redirect('pc', 'page_h_home');
 }
Beispiel #11
0
/**
 * 指定したメンバーのメール受信設定を無効にする
 *
 * 以下の設定項目を無効にする。
 *  + メール/携帯メール/デイリーニュース受信設定
 *  + コミュニティ管理者からのメッセージ/書き込みのメッセージ受信設定
 *  + スケジュール通知メール受信設定
 *  + 日記コメントメール受信設定
 *
 * @param int $c_member_id
 */
function db_admin_stop_receive_mail4c_member_id($c_member_id)
{
    $where = array('c_member_id' => intval($c_member_id));
    // プロフィールでのメール受信設定項目
    $data = array('is_receive_mail' => 0, 'is_receive_daily_news' => 0, 'is_receive_ktai_mail' => 0);
    db_update('c_member', $data, $where);
    // コミュニティでのメール受信設定項目
    $data = array('is_receive_mail' => 0, 'is_receive_mail_pc' => 0, 'is_receive_message' => 0);
    db_update('c_commu_member', $data, $where);
    // スケジュール通知メール受信設定
    $data = array('is_receive_mail' => 0);
    db_update('c_schedule', $data, $where);
    // 日記コメントメール受信設定
    db_member_update_c_member_config($c_member_id, 'SEND_DIARY_COMMENT_MAIL_KTAI', 0);
}