tpl_mainpage = 'entry/email_mobile.tpl';
$this->tpl_title = '携帯メール登録';
/*
session_start時のno-cacheヘッダーを抑制することで
「戻る」ボタン使用時の有効期限切れ表示を抑制する。
private-no-expire:クライアントのキャッシュを許可する。
*/
session_cache_limiter('private-no-expire');
}
}
$objPage = new LC_Page;
$objView = new SC_MobileView;
$objCustomer = new SC_Customer;
$objFormParam = new SC_FormParam;
if (isset($_SESSION['mobile']['kara_mail_from'])) {
$_SERVER['REQUEST_METHOD'] = 'POST';
$_POST['email_mobile'] = $_SESSION['mobile']['kara_mail_from'];
}
lfInitParam($objFormParam);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$objFormParam->setParam($_POST);
$objFormParam->convParam();
$objPage->arrErr = lfCheckError($objFormParam, $objCustomer);
if (empty($objPage->arrErr)) {
lfRegister($objFormParam, $objCustomer);
$objPage->tpl_mainpage = 'entry/email_mobile_complete.tpl';
$objPage->tpl_title = '携帯メール登録完了';
}
}
// 空メール用のトークンを作成する。
if (MOBILE_USE_KARA_MAIL) {
$token = gfPrepareKaraMail('entry/email_mobile.php');
if ($token !== false) {
$objPage->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'entry_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN;
}
}
$objPage->tpl_name = $objCustomer->getValue('name01');
$objPage->arrForm = $objFormParam->getFormParamList();
$objView->assignobj($objPage);
$objView->display(SITE_FRAME);
//-----------------------------------------------------------------------------------------------------------------------------------
function lfInitParam(&$objFormParam) {
$objFormParam->addParam('メールアドレス', 'email_mobile', MTEXT_LEN, 'a',
array('NO_SPTAB', 'EXIST_CHECK', 'MAX_LENGTH_CHECK', 'CHANGE_LOWER', 'EMAIL_CHAR_CHECK', 'MOBILE_EMAIL_CHECK'));
}
function lfCheckError(&$objFormParam, &$objCustomer) {
$arrRet = $objFormParam->getHashArray();
$objErr = new SC_CheckError($arrRet);
$objErr->arrErr = $objFormParam->checkError();
if (count($objErr->arrErr) > 0) {
return $objErr->arrErr;
}
$email_mobile = $objFormParam->getValue('email_mobile');
$customer_id = $objCustomer->getValue('customer_id');
$objQuery = new SC_Query();
$arrRet = $objQuery->select('email, email_mobile, update_date, del_flg', 'dtb_customer', '(email ILIKE ? OR email_mobile ILIKE ?) AND customer_id <> ? ORDER BY del_flg', array($email_mobile, $email_mobile, $customer_id));
if (count($arrRet) > 0) {
if ($arrRet[0]['del_flg'] != '1') {
// 会員である場合
$objErr->arrErr['email_mobile'] .= '※ すでに登録されているメールアドレスです。
';
} else {
// 退会した会員である場合
$leave_time = sfDBDatetoTime($arrRet[0]['update_date']);
$now_time = time();
$pass_time = $now_time - $leave_time;
// 退会から何時間-経過しているか判定する。
$limit_time = ENTRY_LIMIT_HOUR * 3600;
if ($pass_time < $limit_time) {
$objErr->arrErr['email_mobile'] .= '※ 退会から一定期間の間は、同じメールアドレスを使用することはできません。
';
}
}
}
return $objErr->arrErr;
}
function lfRegister(&$objFormParam, &$objCustomer)
{
$customer_id = $objCustomer->getValue('customer_id');
$email_mobile = $objFormParam->getValue('email_mobile');
$objQuery = new SC_Query();
$objQuery->update('dtb_customer', array('email_mobile' => $email_mobile), 'customer_id = ?', array($customer_id));
$objCustomer->setValue('email_mobile', $email_mobile);
}
?>