tpl_mainpage = TEMPLATE_DIR . '/campaign/application.tpl'; } } $objPage = new LC_Page(); $objView = new SC_SiteView(false); $objQuery = new SC_Query(); $objCampaignSess = new SC_CampaignSession(); // クッキー管理クラス $objCookie = new SC_Cookie(COOKIE_EXPIRE); $objLoginFormParam = new SC_FormParam(); // ログインフォーム用 lfInitLoginFormParam(); // 初期設定 $objLoginFormParam->setParam($_POST); // POST値の取得 // ディレクトリ名を取得 $dir_name = dirname($_SERVER['PHP_SELF']); $arrDir = split('/', $dir_name); $dir_name = $arrDir[count($arrDir) -1]; /* セッションにキャンペーンデータを書き込む */ // キャンペーンからの遷移という情報を保持 $objCampaignSess->setIsCampaign(); // キャンペーンIDを保持 $campaign_id = $objQuery->get("dtb_campaign", "campaign_id", "directory_name = ?", array($dir_name)); $objCampaignSess->setCampaignId($campaign_id); // キャンペーンディレクトリ名を保持 $objCampaignSess->setCampaignDir($dir_name); // キャンペーンが開催中かをチェック if(lfCheckActive($dir_name)) { $status = CAMPAIGN_TEMPLATE_ACTIVE; } else { $status = CAMPAIGN_TEMPLATE_END; } switch($_POST['mode']) { // ログインチェック case 'login': $objLoginFormParam->toLower('login_email'); $objPage->arrErr = $objLoginFormParam->checkError(); $arrForm = $objLoginFormParam->getHashArray(); // クッキー保存判定 if($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") { $objCookie->setCookie('login_email', $_POST['login_email']); } else { $objCookie->setCookie('login_email', ''); } if(count($objPage->arrErr) == 0) { // ログイン判定 if(!$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) { // 仮登録の判定 $objQuery = new SC_Query; $where = "email = ? AND status = 1 AND del_flg = 0"; $ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email'])); if($ret > 0) { sfDispSiteError(TEMP_LOGIN_ERROR); } else { sfDispSiteError(SITE_LOGIN_ERROR); } } } break; default : break; } // 入力情報を渡す $objPage->arrForm = $_POST; $objPage->tpl_dir_name = CAMPAIGN_TEMPLATE_PATH . $dir_name . "/" . $status; //---- ページ表示 $objView->assignobj($objPage); $objView->display($objPage->tpl_mainpage); //--------------------------------------------------------------------------------------------------------------------------------------------------------- /* * 関数名:lfInitLoginFormParam() * 説明 :ログインフォームを初期化 * 戻り値:無し */ function lfInitLoginFormParam() { global $objLoginFormParam; $objLoginFormParam->addParam("記憶する", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK")); $objLoginFormParam->addParam("メールアドレス", "login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); $objLoginFormParam->addParam("パスワード", "login_pass", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK")); } /* * 関数名:lfCheckActive() * 引数1 :ディレクトリ名 * 説明 :キャンペーン中かチェック * 戻り値:キャンペーン中なら true 終了なら false */ function lfCheckActive($directory_name) { global $objQuery; $is_active = false; $col = "limit_count, total_count, start_date, end_date"; $arrRet = $objQuery->select($col, "dtb_campaign", "directory_name = ? AND del_flg = 0", array($directory_name)); // 開始日時・停止日時を成型 $start_date = (date("YmdHis", strtotime($arrRet[0]['start_date']))); $end_date = (date("YmdHis", strtotime($arrRet[0]['end_date']))); $now_date = (date("YmdHis")); // キャンペーンが開催期間で、かつ申込制限内である if($now_date > $start_date && $now_date < $end_date && $arrRet[0]['limit_count'] > 0 && $arrRet[0]['limit_count'] > $arrRet[0]['total_count']) { $is_active = true; } return $is_active; } ?>