Changeset 15287


Ignore:
Timestamp:
2007/08/16 14:55:15 (13 years ago)
Author:
nanasess
Message:

クラス化対応
お知らせを CHAR_SET に応じてエンコーディング変換するように修正

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

Legend:

Unmodified
Added
Removed
  • branches/feature-module-update/data/class/SC_Session.php

    r15080 r15287  
    88/* セッション管理クラス */ 
    99class SC_Session { 
    10     var $login_id;      // ログインユーザ名 
    11     var $authority;     // ユーザ権限 
    12     var $cert;          // 認証文字列(認証成功の判定に使用) 
    13     var $sid;           // セッションID 
    14     var $member_id;     // ログインユーザの主キー 
     10    var $login_id;      // ログインユーザ名 
     11    var $authority;     // ユーザ権限 
     12    var $cert;          // 認証文字列(認証成功の判定に使用) 
     13    var $sid;           // セッションID 
     14    var $member_id;     // ログインユーザの主キー 
    1515    var $uniqid;         // ページ遷移の正当性チェックに使用 
    16      
    17     /* コンストラクタ */ 
    18     function SC_Session() { 
    19         // セッション開始 
    20         sfDomainSessionStart(); 
    2116 
    22         // セッション情報の保存 
    23         if(isset($_SESSION['cert'])) { 
    24             $this->sid = session_id(); 
    25             $this->cert = $_SESSION['cert']; 
    26             $this->login_id  = $_SESSION['login_id']; 
    27             $this->authority = $_SESSION['authority'];  // 管理者:0, 一般:1, 閲覧:2 
    28             $this->member_id = $_SESSION['member_id']; 
    29             $this->uniqid    = $_SESSION['uniq_id']; 
    30              
    31             // ログに記録する 
    32             gfPrintLog("access : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 
    33         } else { 
    34             // ログに記録する 
    35             gfPrintLog("access error."); 
    36         } 
    37     } 
    38     /* 認証成功の判定 */ 
    39     function IsSuccess() { 
    40         global $arrPERMISSION; 
    41         if($this->cert == CERT_STRING) { 
    42             if(isset($arrPERMISSION[$_SERVER['PHP_SELF']])) { 
    43                 // 数値が自分の権限以上のものでないとアクセスできない。 
    44                 if($arrPERMISSION[$_SERVER['PHP_SELF']] < $this->authority) {            
    45                     return AUTH_ERROR; 
    46                 }  
    47             } 
    48             return SUCCESS; 
    49         } 
    50          
    51         return ACCESS_ERROR; 
    52     } 
    53      
    54     /* セッションの書き込み */ 
    55     function SetSession($key, $val) { 
    56         $_SESSION[$key] = $val; 
    57     } 
    58      
    59     /* セッションの読み込み */ 
    60     function GetSession($key) { 
    61         return $_SESSION[$key]; 
    62     } 
    63      
    64     /* セッションIDの取得 */ 
    65     function GetSID() { 
    66         return $this->sid; 
    67     } 
    68      
    69     /** ユニークIDの取得 **/  
     17    /* コンストラクタ */ 
     18    function SC_Session() { 
     19        // セッション開始 
     20        SC_Utils_Ex::sfDomainSessionStart(); 
     21 
     22        // セッション情報の保存 
     23        if(isset($_SESSION['cert'])) { 
     24            $this->sid = session_id(); 
     25            $this->cert = $_SESSION['cert']; 
     26            $this->login_id  = $_SESSION['login_id']; 
     27            $this->authority = $_SESSION['authority'];  // 管理者:0, 一般:1, 閲覧:2 
     28            $this->member_id = $_SESSION['member_id']; 
     29            if (isset($_SESSION['uniq_id'])) { 
     30                $this->uniqid    = $_SESSION['uniq_id']; 
     31            } 
     32 
     33            // ログに記録する 
     34            GC_Utils_Ex::gfPrintLog("access : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 
     35        } else { 
     36            // ログに記録する 
     37            GC_Utils_Ex::gfPrintLog("access error."); 
     38        } 
     39    } 
     40    /* 認証成功の判定 */ 
     41    function IsSuccess() { 
     42        global $arrPERMISSION; 
     43        if($this->cert == CERT_STRING) { 
     44            if(isset($arrPERMISSION[$_SERVER['PHP_SELF']])) { 
     45                // 数値が自分の権限以上のものでないとアクセスできない。 
     46                if($arrPERMISSION[$_SERVER['PHP_SELF']] < $this->authority) { 
     47                    return AUTH_ERROR; 
     48                } 
     49            } 
     50            return SUCCESS; 
     51        } 
     52 
     53        return ACCESS_ERROR; 
     54    } 
     55 
     56    /* セッションの書き込み */ 
     57    function SetSession($key, $val) { 
     58        $_SESSION[$key] = $val; 
     59    } 
     60 
     61    /* セッションの読み込み */ 
     62    function GetSession($key) { 
     63        return $_SESSION[$key]; 
     64    } 
     65 
     66    /* セッションIDの取得 */ 
     67    function GetSID() { 
     68        return $this->sid; 
     69    } 
     70 
     71    /** ユニークIDの取得 **/ 
    7072    function getUniqId() { 
    7173        // ユニークIDがセットされていない場合はセットする。 
     
    7577        return $this->GetSession('uniqid'); 
    7678    } 
    77      
    78     /** ユニークIDのセット **/  
     79 
     80    /** ユニークIDのセット **/ 
    7981    function setUniqId() { 
    8082        // 予測されないようにランダム文字列を付与する。 
    81         $this->SetSession('uniqid', sfGetUniqRandomId()); 
     83        $this->SetSession('uniqid', SC_Utils_Ex::sfGetUniqRandomId()); 
    8284    } 
    83      
    84     /* セッションの破棄 */ 
    85     function EndSession() { 
    86         // デフォルトは、「PHPSESSID」 
    87         $sname = session_name(); 
    88         // セッション変数を全て解除する 
    89         $_SESSION = array(); 
    90         // セッションを切断するにはセッションクッキーも削除する。 
    91         // Note: セッション情報だけでなくセッションを破壊する。 
    92         if (isset($_COOKIE[$sname])) { 
    93             setcookie($sname, '', time()-42000, '/'); 
    94         } 
    95         // 最終的に、セッションを破壊する 
    96         session_destroy(); 
    97         // ログに記録する 
    98         gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 
    99     } 
    100      
    101     // 関連セッションのみ破棄する。 
    102     function logout() { 
    103         unset($_SESSION['cert']); 
    104         unset($_SESSION['login_id']); 
    105         unset($_SESSION['authority']); 
    106         unset($_SESSION['member_id']); 
     85 
     86    /* セッションの破棄 */ 
     87    function EndSession() { 
     88        // デフォルトは、「PHPSESSID」 
     89        $sname = session_name(); 
     90        // セッション変数を全て解除する 
     91        $_SESSION = array(); 
     92        // セッションを切断するにはセッションクッキーも削除する。 
     93        // Note: セッション情報だけでなくセッションを破壊する。 
     94        if (isset($_COOKIE[$sname])) { 
     95            setcookie($sname, '', time()-42000, '/'); 
     96        } 
     97        // 最終的に、セッションを破壊する 
     98        session_destroy(); 
     99        // ログに記録する 
     100        gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 
     101    } 
     102 
     103    // 関連セッションのみ破棄する。 
     104    function logout() { 
     105        unset($_SESSION['cert']); 
     106        unset($_SESSION['login_id']); 
     107        unset($_SESSION['authority']); 
     108        unset($_SESSION['member_id']); 
    107109        unset($_SESSION['uniqid']); 
    108         // ログに記録する 
    109         gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 
    110     } 
     110        // ログに記録する 
     111        gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 
     112    } 
    111113} 
    112114?> 
  • branches/feature-module-update/html/admin/home.php

    r15080 r15287  
    55 * http://www.lockon.co.jp/ 
    66 */ 
     7// {{{ requires 
    78require_once("./require.php"); 
     9require_once(CLASS_PATH . "page_extends/admin/LC_Page_Admin_Home_Ex.php"); 
    810 
    9 class LC_Page { 
    10     var $arrSession; 
    11     function LC_Page() { 
    12         $this->tpl_mainpage = 'home.tpl'; 
    13     } 
    14 } 
     11// }}} 
     12// {{{ generate page 
    1513 
    16 $conn = new SC_DBConn(); 
    17 $objPage = new LC_Page(); 
    18 $objView = new SC_AdminView(); 
    19 $objSess = new SC_Session(); 
    20  
    21 // 認証可否の判定 
    22 sfIsSuccess($objSess); 
    23  
    24 // DBバージョンの取得 
    25 $objPage->db_version = sfGetDBVersion(); 
    26  
    27 // PHPバージョンの取得 
    28 $objPage->php_version = "PHP " . phpversion(); 
    29  
    30 // 現在の会員数 
    31 $objPage->customer_cnt = lfGetCustomerCnt($conn); 
    32  
    33 // 昨日の売上高 
    34 $objPage->order_yesterday_amount = lfGetOrderYesterday($conn, "SUM"); 
    35  
    36 // 昨日の売上件数 
    37 $objPage->order_yesterday_cnt = lfGetOrderYesterday($conn, "COUNT"); 
    38  
    39 // 今月の売上高 
    40 $objPage->order_month_amount = lfGetOrderMonth($conn, "SUM"); 
    41  
    42 // 今月の売上件数 
    43 $objPage->order_month_cnt = lfGetOrderMonth($conn, "COUNT"); 
    44  
    45 // 顧客の累計ポイント 
    46 $objPage->customer_point = lfGetTotalCustomerPoint(); 
    47  
    48 //昨日のレビュー書き込み数 
    49 $objPage->review_yesterday_cnt = lfGetReviewYesterday($conn); 
    50  
    51 //レビュー書き込み非表示数 
    52 $objPage->review_nondisp_cnt = lfGetReviewNonDisp($conn); 
    53  
    54 // 品切れ商品 
    55 $objPage->arrSoldout = lfGetSoldOut(); 
    56  
    57 // 新規受付一覧 
    58 $arrNewOrder = lfGetNewOrder(); 
    59  
    60 foreach ($arrNewOrder as $key => $val){ 
    61     $arrNewOrder[$key]['create_date'] = str_replace("-", "/", substr($val['create_date'], 0,19)); 
    62      
    63 } 
    64 $objPage->arrNewOrder = $arrNewOrder; 
    65  
    66 // お知らせ一覧の取得 
    67 $objPage->arrInfo = lfGetInfo(); 
    68  
    69 $objView->assignobj($objPage); 
    70 $objView->display(MAIN_FRAME); 
    71 //--------------------------------------------------------- 
    72  
    73 // 会員数 
    74 function lfGetCustomerCnt($conn){ 
    75      
    76     $sql = "SELECT COUNT(customer_id) FROM dtb_customer WHERE del_flg = 0 AND status = 2"; 
    77     $return = $conn->getOne($sql); 
    78     return $return; 
    79 } 
    80  
    81 // 昨日の売上高・売上件数 
    82 function lfGetOrderYesterday($conn, $method){ 
    83     if ( $method == 'SUM' or $method == 'COUNT'){ 
    84         // postgresql と mysql とでSQLをわける 
    85         if (DB_TYPE == "pgsql") { 
    86             $sql = "SELECT ".$method."(total) FROM dtb_order 
    87                      WHERE del_flg = 0 AND to_char(create_date,'YYYY/MM/DD') = to_char(now() - interval '1 days','YYYY/MM/DD') AND status <> " . ORDER_CANCEL; 
    88         }else if (DB_TYPE == "mysql") { 
    89             $sql = "SELECT ".$method."(total) FROM dtb_order 
    90                      WHERE del_flg = 0 AND cast(substring(create_date,1, 10) as date) = DATE_ADD(current_date, interval -1 day) AND status <> " . ORDER_CANCEL; 
    91         } 
    92         $return = $conn->getOne($sql); 
    93     } 
    94     return $return; 
    95 } 
    96  
    97 function lfGetOrderMonth($conn, $method){ 
    98  
    99     $month = date("Y/m", mktime()); 
    100      
    101     if ( $method == 'SUM' or $method == 'COUNT'){ 
    102     // postgresql と mysql とでSQLをわける 
    103     if (DB_TYPE == "pgsql") { 
    104         $sql = "SELECT ".$method."(total) FROM dtb_order 
    105                  WHERE del_flg = 0 AND to_char(create_date,'YYYY/MM') = ?  
    106                  AND to_char(create_date,'YYYY/MM/DD') <> to_char(now(),'YYYY/MM/DD') AND status <> " . ORDER_CANCEL; 
    107     }else if (DB_TYPE == "mysql") { 
    108         $sql = "SELECT ".$method."(total) FROM dtb_order 
    109                  WHERE del_flg = 0 AND date_format(create_date, '%Y/%m') = ?  
    110                  AND date_format(create_date, '%Y/%m/%d') <> date_format(now(), '%Y/%m/%d') AND status <> " . ORDER_CANCEL; 
    111     } 
    112         $return = $conn->getOne($sql, array($month)); 
    113     } 
    114     return $return; 
    115 } 
    116  
    117 function lfGetTotalCustomerPoint() { 
    118     $objQuery = new SC_Query(); 
    119     $col = "SUM(point)"; 
    120     $where = "del_flg = 0"; 
    121     $from = "dtb_customer"; 
    122     $ret = $objQuery->get($from, $col, $where); 
    123     return $ret;     
    124 } 
    125  
    126 function lfGetReviewYesterday($conn){ 
    127     // postgresql と mysql とでSQLをわける 
    128     if (DB_TYPE == "pgsql") { 
    129         $sql = "SELECT COUNT(*) FROM dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id   
    130                  WHERE A.del_flg=0 AND B.del_flg = 0 AND to_char(A.create_date, 'YYYY/MM/DD') = to_char(now() - interval '1 days','YYYY/MM/DD') 
    131                  AND to_char(A.create_date,'YYYY/MM/DD') != to_char(now(),'YYYY/MM/DD')"; 
    132     }else if (DB_TYPE == "mysql") { 
    133         $sql = "SELECT COUNT(*) FROM dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id  
    134                  WHERE A.del_flg = 0 AND B.del_flg = 0 AND cast(substring(A.create_date,1, 10) as date) = DATE_ADD(current_date, interval -1 day) 
    135                  AND cast(substring(A.create_date,1, 10) as date) != cast(substring(now(),1, 10) as date)"; 
    136     } 
    137     $return = $conn->getOne($sql); 
    138     return $return; 
    139 } 
    140  
    141 function lfGetReviewNonDisp($conn){ 
    142     $sql = "SELECT COUNT(*) FROM dtb_review AS A LEFT JOIN dtb_products AS B ON A.product_id = B.product_id WHERE A.del_flg=0 AND A.status=2 AND B.del_flg=0"; 
    143     $return = $conn->getOne($sql); 
    144     return $return; 
    145 } 
    146  
    147 // 品切れ商品番号の取得 
    148 function lfGetSoldOut() { 
    149     $objQuery = new SC_Query(); 
    150     $where = "product_id IN (SELECT product_id FROM dtb_products_class WHERE stock_unlimited IS NULL AND stock <= 0)"; 
    151     $arrRet = $objQuery->select("product_id, name", "dtb_products", $where); 
    152     return $arrRet; 
    153 } 
    154  
    155 // 新規受付一覧 
    156 function lfGetNewOrder() { 
    157     $objQuery = new SC_Query(); 
    158     $sql = "SELECT  
    159                 ord.order_id, 
    160                 ord.customer_id, 
    161                 ord.order_name01 AS name01, 
    162                 ord.order_name02 AS name02, 
    163                 ord.total, 
    164                 ord.create_date, 
    165                 (SELECT 
    166                     det.product_name 
    167                 FROM 
    168                     dtb_order_detail AS det 
    169                 WHERE 
    170                     ord.order_id = det.order_id LIMIT 1 
    171                 ) AS product_name, 
    172                 (SELECT 
    173                     pay.payment_method 
    174                 FROM 
    175                     dtb_payment AS pay 
    176                 WHERE 
    177                     ord.payment_id = pay.payment_id 
    178                 ) AS payment_method  
    179             FROM ( 
    180                 SELECT 
    181                     order_id, 
    182                     customer_id, 
    183                     order_name01, 
    184                     order_name02, 
    185                     total, 
    186                     create_date, 
    187                     payment_id 
    188                 FROM 
    189                     dtb_order AS ord 
    190                 WHERE 
    191                     del_flg = 0 AND status <> " . ORDER_CANCEL . "  
    192                 ORDER BY 
    193                     create_date DESC LIMIT 10 OFFSET 0 
    194             ) AS ord"; 
    195     $arrRet = $objQuery->getAll($sql); 
    196     return $arrRet; 
    197 } 
    198  
    199 // お知らせ取得 
    200 function lfGetInfo() { 
    201     // 更新情報を最新にする 
    202     $objQuery = new SC_Query(); 
    203     $path = UPDATE_HTTP . "info.txt"; 
    204     $fp = @fopen($path, "rb"); 
    205      
    206     $arrRet = array(); 
    207     if(!$fp) { 
    208         sfErrorHeader(">> " . $path . "の取得に失敗しました。"); 
    209     } else { 
    210         while (!feof($fp)) { 
    211             $arrRet[] = $arrCSV = fgetcsv($fp, UPDATE_CSV_LINE_MAX); 
    212         } 
    213         fclose($fp); 
    214     } 
    215      
    216     return $arrRet; 
    217 } 
    218  
    219  
     14$objPage = new LC_Page_Admin_Home_Ex(); 
     15$objPage->init(); 
     16$objPage->process(); 
     17register_shutdown_function(array($objPage, "destroy")); 
    22018 
    22119?> 
Note: See TracChangeset for help on using the changeset viewer.