Source for file SC_Helper_Session.php
Documentation is available at SC_Helper_Session.php
* Copyright(c) 2000-2011 LOCKON CO.,LTD. All Rights Reserved.
* http://www.lockon.co.jp/
* @author LOCKON CO.,LTD.
* @version $Id: SC_Helper_Session.php 21194 2011-08-17 01:39:55Z Seasoft $
$this->objDb = new SC_Helper_DB_Ex();
array(&$this, 'sfSessClose'),
array(&$this, 'sfSessRead'),
array(&$this, 'sfSessWrite'),
array(&$this, 'sfSessDestroy'),
array(&$this, 'sfSessGc'));
* @param string $save_path セッションを保存するパス(使用しない)
* @param string $session_name セッション名(使用しない)
* @return bool セッションが正常に開始された場合 true
* @return bool セッションが正常に終了した場合 true
* @param string $id セッションID
* @return string セッションデータの値
$objQuery = new SC_Query_Ex();
$arrRet = $objQuery->select("sess_data", "dtb_session", "sess_id = ?", array($id));
return $arrRet[0]['sess_data'];
* @param string $id セッションID
* @param string $sess_data セッションデータの値
* @return bool セッションの書き込みに成功した場合 true
$objQuery = new SC_Query_Ex();
$count = $objQuery->count("dtb_session", "sess_id = ?", array($id));
$sqlval['sess_data'] = $sess_data;
$sqlval['update_date'] = 'CURRENT_TIMESTAMP';
$objQuery->update("dtb_session", $sqlval, "sess_id = ?", array($id));
$sqlval['sess_id'] = $id;
$sqlval['sess_data'] = $sess_data;
$sqlval['update_date'] = 'CURRENT_TIMESTAMP';
$sqlval['create_date'] = 'CURRENT_TIMESTAMP';
$objQuery->insert("dtb_session", $sqlval);
* @param string $id セッションID
* @return bool セッションを正常に破棄した場合 true
$objQuery = new SC_Query_Ex();
$objQuery->delete("dtb_session", "sess_id = ?", array($id));
* 引数 $maxlifetime の代りに 定数 MAX_LIFETIME を使用する.
* @param integer $maxlifetime セッションの有効期限(使用しない)
// MAX_LIFETIME以上更新されていないセッションを削除する。
$objQuery = new SC_Query_Ex();
$where = "update_date < current_timestamp + '-". MAX_LIFETIME . " secs'";
$objQuery->delete("dtb_session", $where);
* トランザクショントークンを生成し, 取得する.
* 悪意のある不正な画面遷移を防止するため, 予測困難な文字列を生成して返す.
* この関数を使用するためには, 生成した文字列を次画面へ渡すパラメーターとして
* <input type="hidden" name="transactionid" value="この関数の返り値" />
* 遷移先のページで, LC_Page::isValidToken() の返り値をチェックすることにより,
* @return string トランザクショントークンの文字列
if (empty($_SESSION[TRANSACTION_ID_NAME])) {
$_SESSION[TRANSACTION_ID_NAME] = SC_Helper_Session_Ex::createToken();
return $_SESSION[TRANSACTION_ID_NAME];
* トランザクショントークン用の予測困難な文字列を生成して返す.
* @return string トランザクショントークン用の文字列
* トランザクショントークンの妥当性をチェックする.
* 生成されたトランザクショントークンの妥当性をチェックする.
* この関数を使用するためには, 前画面のページクラスで LC_Page::getToken()
* トランザクショントークンは, SC_Helper_Session::getToken() が呼ばれた際に
* 引数 $is_unset が false の場合は, トークンの妥当性検証が不正な場合か,
* セッションが破棄されるまで, トークンを保持する.
* 引数 $is_unset が true の場合は, 妥当性検証後に破棄される.
* @param boolean $is_unset 妥当性検証後, トークンを unset する場合 true;
* @return boolean トランザクショントークンが有効な場合 true
$ret = $_REQUEST[TRANSACTION_ID_NAME] === $_SESSION[TRANSACTION_ID_NAME];
if ($is_unset || $ret === false) {
SC_Helper_Session_Ex::destroyToken();
unset ($_SESSION[TRANSACTION_ID_NAME]);
* mtb_auth_excludes へ登録されたページは, 認証を除外する.
$masterData = new SC_DB_MasterData_Ex();
$arrExcludes = $masterData->getMasterData('mtb_auth_excludes');
if (preg_match('|^' . ROOT_URLPATH . ADMIN_DIR . '|',
foreach ($arrExcludes as $exclude) {
if (preg_match('|^' . ROOT_URLPATH . ADMIN_DIR . $exclude . '|',
SC_Utils_Ex::sfIsSuccess(new SC_Session_Ex());
Documentation generated on Fri, 24 Feb 2012 14:02:48 +0900 by Seasoft
|