Ignore:
Timestamp:
2007/07/20 15:58:59 (17 years ago)
Author:
nanasess
Message:

r15064 から svn cp
とりあえず暫定コミット.

  • UTF-8 に変更
  • slib.php, glib.php のクラス化
  • LC_Page の抽象化(一部)
Location:
branches/feature-module-update
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update

    • Property svn:ignore set to
      .cache

      .settings

      .projectOptions
  • branches/feature-module-update/data/class/SC_Customer.php

    r12157 r15078  
    66 */ 
    77 
    8 /*  [̾¾Î] SC_Customer 
    9  *  [³µÍ×] ²ñ°÷´ÉÍý¥¯¥é¥¹ 
     8/*  [名称] SC_Customer 
     9 *  [概要] 会員管理クラス 
    1010 */ 
    1111class SC_Customer { 
     
    1313    var $conn; 
    1414    var $email; 
    15     var $customer_data;     // ²ñ°÷¾ðÊó    
     15    var $customer_data;     // 会員情報    
    1616         
    1717    function SC_Customer( $conn = '', $email = '', $pass = '' ) { 
    18         // ¥»¥Ã¥·¥ç¥ó³«»Ï 
    19         /* startSession¤«¤é°ÜÆ° 2005/11/04 ÃæÀî */ 
     18        // セッション開始 
     19        /* startSessionから移動 2005/11/04 中川 */ 
    2020        sfDomainSessionStart(); 
    2121         
    22         // DBÀܳ¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À® 
     22        // DB接続オブジェクト生成 
    2323        $DB_class_name = "SC_DbConn"; 
    2424        if ( is_object($conn)){ 
    2525            if ( is_a($conn, $DB_class_name)){ 
    26                 // $conn¤¬$DB_class_name¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤Ç¤¢¤ë 
     26                // $connが$DB_class_nameのインスタンスである 
    2727                $this->conn = $conn; 
    2828            } 
    2929        } else { 
    3030            if (class_exists($DB_class_name)){ 
    31                 //$DB_class_name¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òºîÀ®¤¹¤ë 
     31                //$DB_class_nameのインスタンスを作成する 
    3232                $this->conn = new SC_DbConn();           
    3333            } 
     
    3535             
    3636        if ( is_object($this->conn) ) {  
    37             // Àµ¾ï¤ËDB¤ËÀܳ¤Ç¤­¤ë 
     37            // 正常にDBに接続できる 
    3838            if ( $email ){ 
    39                 // email¤«¤é¸ÜµÒ¾ðÊó¤ò¼èÆÀ¤¹¤ë 
     39                // emailから顧客情報を取得する 
    4040                // $this->setCustomerDataFromEmail( $email ); 
    4141            } 
    4242        } else { 
    43             echo "DBÀܳ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀ¸À®¤Ë¼ºÇÔ¤·¤Æ¤¤¤Þ¤¹"; 
     43            echo "DB接続オブジェクトの生成に失敗しています"; 
    4444            exit; 
    4545        } 
     
    5656            $arrValues[] = $email; 
    5757        } 
    58         // ËÜÅÐÏ¿¤µ¤ì¤¿²ñ°÷¤Î¤ß 
     58        // 本登録された会員のみ 
    5959        $sql = "SELECT * FROM dtb_customer WHERE (email ILIKE ?" . $sql_mobile . ") AND del_flg = 0 AND status = 2"; 
    6060        $result = $this->conn->getAll($sql, $arrValues); 
    6161        $data = $result[0]; 
    6262         
    63         // ¥Ñ¥¹¥ï¡¼¥É¤¬¹ç¤Ã¤Æ¤¤¤ì¤Ð¸ÜµÒ¾ðÊó¤òcustomer_data¤Ë¥»¥Ã¥È¤·¤Ætrue¤òÊÖ¤¹ 
     63        // パスワードが合っていれば顧客情報をcustomer_dataにセットしてtrueを返す 
    6464        if ( sha1($pass . ":" . AUTH_MAGIC) == $data['password'] ){ 
    6565            $this->customer_data = $data; 
     
    7171 
    7272    /** 
    73      * ·ÈÂÓüËöID¤¬°ìÃפ¹¤ë²ñ°÷¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£ 
    74      * 
    75      * @return boolean ³ºÅö¤¹¤ë²ñ°÷¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï true¡¢¤½¤ì°Ê³°¤Î¾ì¹ç 
    76      *                 ¤Ï false ¤òÊÖ¤¹¡£ 
     73     * 携帯端末IDが一致する会員が存在するかどうかをチェックする。 
     74     * 
     75     * @return boolean 該当する会員が存在する場合は true、それ以外の場合 
     76     *                 は false を返す。 
    7777     */ 
    7878    function checkMobilePhoneId() { 
     
    8181        } 
    8282 
    83         // ·ÈÂÓüËöID¤¬°ìÃפ·¡¢ËÜÅÐÏ¿¤µ¤ì¤¿²ñ°÷¤ò¸¡º÷¤¹¤ë¡£ 
     83        // 携帯端末IDが一致し、本登録された会員を検索する。 
    8484        $sql = 'SELECT count(*) FROM dtb_customer WHERE mobile_phone_id = ? AND del_flg = 0 AND status = 2'; 
    8585        $result = $this->conn->getOne($sql, array($_SESSION['mobile']['phone_id'])); 
     
    8888 
    8989    /** 
    90      * ·ÈÂÓüËöID¤ò»ÈÍѤ·¤Æ²ñ°÷¤ò¸¡º÷¤·¡¢¥Ñ¥¹¥ï¡¼¥É¤Î¾È¹ç¤ò¹Ô¤¦¡£ 
    91      * ¥Ñ¥¹¥ï¡¼¥É¤¬¹ç¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¸ÜµÒ¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£ 
    92      * 
    93      * @param string $pass ¥Ñ¥¹¥ï¡¼¥É 
    94      * @return boolean ³ºÅö¤¹¤ë²ñ°÷¤¬Â¸ºß¤·¡¢¥Ñ¥¹¥ï¡¼¥É¤¬¹ç¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï true¡¢ 
    95      *                 ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£ 
     90     * 携帯端末IDを使用して会員を検索し、パスワードの照合を行う。 
     91     * パスワードが合っている場合は顧客情報を取得する。 
     92     * 
     93     * @param string $pass パスワード 
     94     * @return boolean 該当する会員が存在し、パスワードが合っている場合は true、 
     95     *                 それ以外の場合は false を返す。 
    9696     */ 
    9797    function getCustomerDataFromMobilePhoneIdPass($pass) { 
     
    100100        } 
    101101 
    102         // ·ÈÂÓüËöID¤¬°ìÃפ·¡¢ËÜÅÐÏ¿¤µ¤ì¤¿²ñ°÷¤ò¸¡º÷¤¹¤ë¡£ 
     102        // 携帯端末IDが一致し、本登録された会員を検索する。 
    103103        $sql = 'SELECT * FROM dtb_customer WHERE mobile_phone_id = ? AND del_flg = 0 AND status = 2'; 
    104104        @list($data) = $this->conn->getAll($sql, array($_SESSION['mobile']['phone_id'])); 
    105105 
    106         // ¥Ñ¥¹¥ï¡¼¥É¤¬¹ç¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¸ÜµÒ¾ðÊó¤òcustomer_data¤Ë³ÊǼ¤·¤Ætrue¤òÊÖ¤¹¡£ 
     106        // パスワードが合っている場合は、顧客情報をcustomer_dataに格納してtrueを返す。 
    107107        if (sha1($pass . ':' . AUTH_MAGIC) == @$data['password']) { 
    108108            $this->customer_data = $data; 
     
    114114 
    115115    /** 
    116      * ·ÈÂÓüËöID¤òÅÐÏ¿¤¹¤ë¡£ 
     116     * 携帯端末IDを登録する。 
    117117     * 
    118118     * @return void 
     
    136136 
    137137    /** 
    138      * email ¤«¤é email_mobile ¤Ø·ÈÂӤΥ᡼¥ë¥¢¥É¥ì¥¹¤ò¥³¥Ô¡¼¤¹¤ë¡£ 
     138     * email から email_mobile へ携帯のメールアドレスをコピーする。 
    139139     * 
    140140     * @return void 
    141141     */ 
    142142    function updateEmailMobile() { 
    143         // ¤¹¤Ç¤Ë email_mobile ¤ËÃͤ¬Æþ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï²¿¤â¤·¤Ê¤¤¡£ 
     143        // すでに email_mobile に値が入っている場合は何もしない。 
    144144        if ($this->customer_data['email_mobile'] != '') { 
    145145            return; 
    146146        } 
    147147 
    148         // email ¤¬·ÈÂӤΥ᡼¥ë¥¢¥É¥ì¥¹¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï²¿¤â¤·¤Ê¤¤¡£ 
     148        // email が携帯のメールアドレスではない場合は何もしない。 
    149149        if (!gfIsMobileMailAddress($this->customer_data['email'])) { 
    150150            return; 
    151151        } 
    152152 
    153         // email ¤«¤é email_mobile ¤Ø¥³¥Ô¡¼¤¹¤ë¡£ 
     153        // email から email_mobile へコピーする。 
    154154        $objQuery = new SC_Query; 
    155155        $sqlval = array('email_mobile' => $this->customer_data['email']); 
     
    160160    } 
    161161     
    162     // ¥Ñ¥¹¥ï¡¼¥É¤ò³Îǧ¤»¤º¤Ë¥í¥°¥¤¥ó 
     162    // パスワードを確認せずにログイン 
    163163    function setLogin($email) { 
    164         // ËÜÅÐÏ¿¤µ¤ì¤¿²ñ°÷¤Î¤ß 
     164        // 本登録された会員のみ 
    165165        $sql = "SELECT * FROM dtb_customer WHERE email ILIKE ? AND del_flg = 0 AND status = 2"; 
    166166        $result = $this->conn->getAll($sql, array($email)); 
     
    170170    } 
    171171     
    172     // ¥»¥Ã¥·¥ç¥ó¾ðÊó¤òºÇ¿·¤Î¾ðÊó¤Ë¹¹¿·¤¹¤ë 
     172    // セッション情報を最新の情報に更新する 
    173173    function updateSession() { 
    174174        $sql = "SELECT * FROM dtb_customer WHERE customer_id = ? AND del_flg = 0"; 
     
    179179    } 
    180180         
    181     // ¥í¥°¥¤¥ó¾ðÊó¤ò¥»¥Ã¥·¥ç¥ó¤ËÅÐÏ¿¤·¡¢¥í¥°¤Ë½ñ¤­¹þ¤à 
     181    // ログイン情報をセッションに登録し、ログに書き込む 
    182182    function startSession() { 
    183183        sfDomainSessionStart(); 
    184184        $_SESSION['customer'] = $this->customer_data; 
    185         // ¥»¥Ã¥·¥ç¥ó¾ðÊó¤ÎÊݸ 
     185        // セッション情報の保存 
    186186        gfPrintLog("access : user=".$this->customer_data['customer_id'] ."\t"."ip=". $_SERVER['REMOTE_HOST'], CUSTOMER_LOG_PATH ); 
    187187    } 
    188188 
    189     // ¥í¥°¥¢¥¦¥È¡¡$_SESSION['customer']¤ò²òÊü¤·¡¢¥í¥°¤Ë½ñ¤­¹þ¤à 
     189    // ログアウト $_SESSION['customer']を解放し、ログに書き込む 
    190190    function EndSession() { 
    191         // $_SESSION['customer']¤Î²òÊü 
     191        // $_SESSION['customer']の解放 
    192192        unset($_SESSION['customer']); 
    193         // ¥í¥°¤Ëµ­Ï¿¤¹¤ë 
     193        // ログに記録する 
    194194        gfPrintLog("logout : user=".$this->customer_data['customer_id'] ."\t"."ip=". $_SERVER['REMOTE_HOST'], CUSTOMER_LOG_PATH ); 
    195195    } 
    196196     
    197     // ¥í¥°¥¤¥ó¤ËÀ®¸ù¤·¤Æ¤¤¤ë¤«È½Äꤹ¤ë¡£ 
     197    // ログインに成功しているか判定する。 
    198198    function isLoginSuccess($dont_check_email_mobile = false) { 
    199         // ¥í¥°¥¤¥ó»þ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ÈDB¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬°ìÃפ·¤Æ¤¤¤ë¾ì¹ç 
     199        // ログイン時のメールアドレスとDBのメールアドレスが一致している場合 
    200200        if(sfIsInt($_SESSION['customer']['customer_id'])) { 
    201201            $objQuery = new SC_Query(); 
    202202            $email = $objQuery->get("dtb_customer", "email", "customer_id = ?", array($_SESSION['customer']['customer_id'])); 
    203203            if($email == $_SESSION['customer']['email']) { 
    204                 // ¥â¥Ð¥¤¥ë¥µ¥¤¥È¤Î¾ì¹ç¤Ï·ÈÂӤΥ᡼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤³¤È¤â¥Á¥§¥Ã¥¯¤¹¤ë¡£ 
    205                 // ¤¿¤À¤· $dont_check_email_mobile ¤¬ true ¤Î¾ì¹ç¤Ï¥Á¥§¥Ã¥¯¤·¤Ê¤¤¡£ 
     204                // モバイルサイトの場合は携帯のメールアドレスが登録されていることもチェックする。 
     205                // ただし $dont_check_email_mobile が true の場合はチェックしない。 
    206206                if (defined('MOBILE_SITE') && !$dont_check_email_mobile) { 
    207207                    $email_mobile = $objQuery->get("dtb_customer", "email_mobile", "customer_id = ?", array($_SESSION['customer']['customer_id'])); 
     
    214214    } 
    215215         
    216     // ¥Ñ¥é¥á¡¼¥¿¤Î¼èÆÀ 
     216    // パラメータの取得 
    217217    function getValue($keyname) { 
    218218        return $_SESSION['customer'][$keyname]; 
    219219    } 
    220220     
    221     // ¥Ñ¥é¥á¡¼¥¿¤Î¥»¥Ã¥È 
     221    // パラメータのセット 
    222222    function setValue($keyname, $val) { 
    223223        $_SESSION['customer'][$keyname] = $val; 
    224224    } 
    225225 
    226     // ¥Ñ¥é¥á¡¼¥¿¤¬NULL¤«¤É¤¦¤«¤ÎȽÄê 
     226    // パラメータがNULLかどうかの判定 
    227227    function hasValue($keyname) { 
    228228        return isset($_SESSION['customer'][$keyname]); 
    229229    } 
    230230     
    231     // ÃÂÀ¸Æü·î¤Ç¤¢¤ë¤«¤É¤¦¤«¤ÎȽÄê 
     231    // 誕生日月であるかどうかの判定 
    232232    function isBirthMonth() { 
    233233        $arrRet = split("[- :/]", $_SESSION['customer']['birth']); 
Note: See TracChangeset for help on using the changeset viewer.