Changeset 16156 for branches


Ignore:
Timestamp:
2007/09/28 15:47:05 (15 years ago)
Author:
nanasess
Message:

モバイル対応

Location:
branches/feature-module-update
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/pages/forgot/LC_Page_Forgot.php

    r16089 r16156  
    5050    function process() { 
    5151        $conn = new SC_DBConn(); 
    52         $objView = new SC_SiteView(); 
     52        $objView = null; 
     53 
     54        if (MOBILE_SITE) { 
     55            $objView = new SC_MobileView(); 
     56        } else { 
     57            $objView = new SC_SiteView(); 
     58        } 
     59 
    5360        $objSess = new SC_Session(); 
    5461 
     
    147154        } 
    148155 
     156        // モバイルサイトの場合はトークン生成 
     157        if (MOBILE_SITE) { 
     158            $this->createMobileToken(); 
     159        } 
     160 
    149161        //---- ページ表示 
    150162        $objView->assignobj($this); 
    151163        $objView->display($this->tpl_mainpage); 
     164    } 
     165 
     166    /** 
     167     * モバイルページを初期化する. 
     168     * 
     169     * @return void 
     170     */ 
     171    function mobileInit() { 
     172        $this->init(); 
     173    } 
     174 
     175    /** 
     176     * Page のプロセス(モバイル). 
     177     * 
     178     * @return void 
     179     */ 
     180    function mobileProcess() { 
     181        $this->process(); 
    152182    } 
    153183 
     
    194224        $objMail->sendMail(); 
    195225    } 
     226 
     227    /** 
     228     * モバイル空メール用のトークン作成 
     229     * 
     230     * @return void 
     231     */ 
     232    function createMobileToken() { 
     233        $objMobile = new SC_Helper_Mobile_Ex(); 
     234        // 空メール用のトークンを作成。 
     235        if (MOBILE_USE_KARA_MAIL) { 
     236            $token = $objMobile->gfPrepareKaraMail('forgot/index.php'); 
     237            if ($token !== false) { 
     238                $objPage->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'forgot_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN; 
     239    } 
     240} 
     241    } 
    196242} 
    197243?> 
  • branches/feature-module-update/html/mobile/forgot/index.php

    r15532 r16156  
    11<?php 
    22/** 
    3  *  
     3 * 
    44 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved. 
    55 * 
    66 * http://www.lockon.co.jp/ 
    7  *  
    8  *  
    9  * モバイルサイト/パスワードを忘れた方 
     7 * 
     8 * 
     9 * モバイルサイト/パスワード再発行 
    1010 */ 
    1111 
    12 require_once('../require.php'); 
     12// {{{ requires 
     13require_once("../require.php"); 
     14require_once(CLASS_PATH . "page_extends/forgot/LC_Page_Forgot_Ex.php"); 
    1315 
    14 class LC_Page { 
    15     var $errmsg; 
    16     var $arrReminder; 
    17     var $temp_password; 
     16// }}} 
     17// {{{ generate page 
    1818 
    19     function LC_Page() { 
    20         $this->tpl_mainpage = 'forgot/index.tpl'; 
    21         $this->tpl_title = 'パスワードを忘れた方'; 
    22         $this->tpl_mainno = ''; 
    23     } 
    24 } 
    25  
    26 $conn = new SC_DBConn(); 
    27 $objPage = new LC_Page(); 
    28 $objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT); 
    29 $objView = new SC_MobileView(); 
    30 $objSess = new SC_Session(); 
    31 $CONF = sf_getBasisData();                  // 店舗基本情報 
    32 // クッキー管理クラス 
    33 $objCookie = new SC_Cookie(COOKIE_EXPIRE); 
    34  
    35 if (isset($_SESSION['mobile']['kara_mail_from'])) { 
    36     if (!isset($_POST['mode'])) { 
    37         $_POST['mode'] = 'mail_check'; 
    38     } 
    39     $_POST['email'] = $_SESSION['mobile']['kara_mail_from']; 
    40 } 
    41  
    42 if ( $_POST['mode'] == 'mail_check' ){ 
    43     //メアド入力時 
    44     $_POST['email'] = strtolower($_POST['email']); 
    45     $sql = "SELECT * FROM dtb_customer WHERE (email ILIKE ? OR email_mobile ILIKE ?) AND status = 2 AND del_flg = 0"; 
    46     $result = $conn->getAll($sql, array($_POST['email'], $_POST['email']) ); 
    47      
    48     if ( $result[0]['reminder'] ){      // 本会員登録済みの場合 
    49         // 入力emailが存在する      
    50         $_SESSION['forgot']['email'] = $_POST['email']; 
    51         $_SESSION['forgot']['reminder'] = $result[0]['reminder']; 
    52         // ヒミツの答え入力画面 
    53         $objPage->Reminder = $arrReminder[$_SESSION['forgot']['reminder']]; 
    54         $objPage->tpl_mainpage = 'forgot/secret.tpl'; 
    55     } else { 
    56         $sql = "SELECT customer_id FROM dtb_customer WHERE email ILIKE ? AND status = 1 AND del_flg = 0";   //仮登録中の確認 
    57         $result = $conn->getAll($sql, array($_POST['email']) ); 
    58         if ($result) { 
    59             $objPage->errmsg = "ご入力のemailアドレスは現在仮登録中です。<br>登録の際にお送りしたメールのURLにアクセスし、<br>本会員登録をお願いします。"; 
    60         } else {        // 登録していない場合 
    61             $objPage->errmsg = "ご入力のemailアドレスは登録されていません"; 
    62         } 
    63     } 
    64      
    65 } elseif( $_POST['mode'] == 'secret_check' ){ 
    66     //ヒミツの答え入力時 
    67      
    68     if ( $_SESSION['forgot']['email'] ) { 
    69         // ヒミツの答えの回答が正しいかチェック 
    70          
    71         $sql = "SELECT * FROM dtb_customer WHERE (email ILIKE ? OR email_mobile ILIKE ?) AND del_flg = 0"; 
    72         $result = $conn->getAll($sql, array($_SESSION['forgot']['email'], $_SESSION['forgot']['email']) ); 
    73         $data = $result[0]; 
    74          
    75         if ( $data['reminder_answer'] === $_POST['input_reminder'] ){ 
    76             // ヒミツの答えが正しい 
    77                          
    78             // 新しいパスワードを設定する 
    79             $objPage->temp_password = gfMakePassword(8); 
    80                          
    81             if(FORGOT_MAIL == 1) { 
    82                 // メールで変更通知をする 
    83                 lfSendMail($CONF, $_SESSION['forgot']['email'], $data['name01'], $objPage->temp_password); 
    84             } 
    85              
    86             // DBを書き換える 
    87             $sql = "UPDATE dtb_customer SET password = ?, update_date = now() WHERE customer_id = ?"; 
    88             $conn->query( $sql, array( sha1($objPage->temp_password . ":" . AUTH_MAGIC) ,$data['customer_id']) ); 
    89              
    90             // 完了画面の表示 
    91             $objPage->tpl_mainpage = 'forgot/complete.tpl'; 
    92              
    93             // セッション変数の解放 
    94             $_SESSION['forgot'] = array(); 
    95             unset($_SESSION['forgot']); 
    96              
    97         } else { 
    98             // ヒミツの答えが正しくない 
    99              
    100             $objPage->Reminder = $arrReminder[$_SESSION['forgot']['reminder']]; 
    101             $objPage->errmsg = "パスワードを忘れたときの質問に対する回答が正しくありません"; 
    102             $objPage->tpl_mainpage = 'forgot/secret.tpl'; 
    103  
    104         } 
    105      
    106          
    107     } else { 
    108         // アクセス元が不正または、セッション保持期間が切れている 
    109         $objPage->errmsg = "emailアドレスを再度登録してください。<br />前回の入力から時間が経っていますと、本メッセージが表示される可能性があります。"; 
    110     } 
    111 } 
    112  
    113 // デフォルト入力 
    114 if($_POST['email'] != "") { 
    115     // POST値を入力 
    116     $objPage->tpl_login_email = $_POST['email']; 
    117 } else { 
    118     // クッキー値を入力 
    119     $objPage->tpl_login_email = $objCookie->getCookie('login_email'); 
    120 } 
    121  
    122 // 空メール用のトークンを作成。 
    123 if (MOBILE_USE_KARA_MAIL) { 
    124     $token = gfPrepareKaraMail('forgot/index.php'); 
    125     if ($token !== false) { 
    126         $objPage->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'forgot_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN; 
    127     } 
    128 } 
    129  
    130 //---- ページ表示 
    131 $objView->assignobj($objPage); 
    132 $objView->display(SITE_FRAME); 
    133  
    134 //----------------------------------------------------------------------------------------------------------------------------------- 
    135  
    136 function lfSendMail($CONF, $email, $customer_name, $temp_password){ 
    137     // パスワード変更お知らせメール送信 
    138      
    139     $objPage = new LC_Page(); 
    140     $objPage->customer_name = $customer_name; 
    141     $objPage->temp_password = $temp_password; 
    142     $objMailText = new SC_MobileView(); 
    143     $objMailText->assignobj($objPage); 
    144      
    145     $toCustomerMail = $objMailText->fetch("mail_templates/forgot_mail.tpl"); 
    146     $objMail = new GC_SendMail(); 
    147      
    148     $objMail->setItem( 
    149                           ''                                // 宛先 
    150                         , "パスワードが変更されました" ."【" .$CONF["shop_name"]. "】"     // サブジェクト 
    151                         , $toCustomerMail                   // 本文 
    152                         , $CONF["email03"]                  // 配送元アドレス 
    153                         , $CONF["shop_name"]                // 配送元 名前 
    154                         , $CONF["email03"]                  // reply_to 
    155                         , $CONF["email04"]                  // return_path 
    156                         , $CONF["email04"]                  //  Errors_to 
    157  
    158                                                         ); 
    159     $objMail->setTo($email, $customer_name ." 様"); 
    160     $objMail->sendMail();    
    161      
    162 } 
    163  
    164  
     19$objPage = new LC_Page_Forgot_Ex(); 
     20$objPage->mobileInit(); 
     21$objPage->mobileProcess(); 
     22register_shutdown_function(array($objPage, "destroy")); 
    16523?> 
    166  
Note: See TracChangeset for help on using the changeset viewer.