- Timestamp:
- 2007/08/16 14:55:15 (17 years ago)
- 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 8 8 /* セッション管理クラス */ 9 9 class SC_Session { 10 11 12 13 14 10 var $login_id; // ログインユーザ名 11 var $authority; // ユーザ権限 12 var $cert; // 認証文字列(認証成功の判定に使用) 13 var $sid; // セッションID 14 var $member_id; // ログインユーザの主キー 15 15 var $uniqid; // ページ遷移の正当性チェックに使用 16 17 /* コンストラクタ */18 function SC_Session() {19 // セッション開始20 sfDomainSessionStart();21 16 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の取得 **/ 70 72 function getUniqId() { 71 73 // ユニークIDがセットされていない場合はセットする。 … … 75 77 return $this->GetSession('uniqid'); 76 78 } 77 78 /** ユニークIDのセット **/ 79 80 /** ユニークIDのセット **/ 79 81 function setUniqId() { 80 82 // 予測されないようにランダム文字列を付与する。 81 $this->SetSession('uniqid', sfGetUniqRandomId());83 $this->SetSession('uniqid', SC_Utils_Ex::sfGetUniqRandomId()); 82 84 } 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 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']); 107 109 unset($_SESSION['uniqid']); 108 109 110 110 // ログに記録する 111 gfPrintLog("logout : user=".$this->login_id." auth=".$this->authority." sid=".$this->sid); 112 } 111 113 } 112 114 ?> -
branches/feature-module-update/html/admin/home.php
r15080 r15287 5 5 * http://www.lockon.co.jp/ 6 6 */ 7 // {{{ requires 7 8 require_once("./require.php"); 9 require_once(CLASS_PATH . "page_extends/admin/LC_Page_Admin_Home_Ex.php"); 8 10 9 class LC_Page { 10 var $arrSession; 11 function LC_Page() { 12 $this->tpl_mainpage = 'home.tpl'; 13 } 14 } 11 // }}} 12 // {{{ generate page 15 13 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(); 17 register_shutdown_function(array($objPage, "destroy")); 220 18 221 19 ?>
Note: See TracChangeset
for help on using the changeset viewer.