Пример #1
0
 /**
  * セッションに指定のキー名で指定のデータをしまう
  * セッションが初期化されていなければ初期化する
  * @param string キー名
  * @param mixed 変数全て(PHPオブジェクトは保存出来ない!)
  */
 public static function set($argKey, $argment)
 {
     static $replaced = FALSE;
     if (FALSE === self::$_initialized) {
         // 自動セッションスタート
         self::_init();
     }
     // トークンの初期化
     if (FALSE === self::$_tokenInitialized && FALSE === self::_initializeToken()) {
         // エラー
         throw new Exception(__CLASS__ . PATH_SEPARATOR . __METHOD__ . PATH_SEPARATOR . __LINE__ . PATH_SEPARATOR . Utilities::getBacktraceExceptionLine());
     }
     if (FALSE === $replaced) {
         // Cookieの書き換えがまだなら書き換える
         self::setTokenToCookie(self::$_tokenKeyName);
         // 2度はヘッダ出力しない為に処理終了を取っておく
         $replaced = TRUE;
     }
     // XXX 標準ではセッションデータのPKeyはセッションの固有識別子
     return parent::set(self::$_identifier, $argKey, $argment);
 }
Пример #2
0
 /**
  * セッションデータに指定のキー名の値を削除する
  * @param string セッションデータのプライマリーキー
  * @param string キー名
  * @param mixed 変数全て(PHPオブジェクトは保存出来ない!)
  * @param int 有効期限の直指定
  * @param mixed DBDSN情報の直指定
  */
 public static function remove($argPKey, $argKey, $argExpiredtime = NULL, $argDSN = NULL)
 {
     if (FALSE === self::$_initialized) {
         self::_init($argExpiredtime, $argDSN);
     }
     // データに実際にアクセスする時に、データの初期化は実行される
     if (NULL === self::$_sessionData) {
         self::_initializeData($argPKey);
     }
     // 配列にデータから抹消
     unset(self::$_sessionData[$argKey]);
     // セッションデータレコードの更新
     if (FALSE === self::_finalizeData($argPKey)) {
         // エラー
         throw new Exception(__CLASS__ . PATH_SEPARATOR . __METHOD__ . PATH_SEPARATOR . __LINE__ . PATH_SEPARATOR . Utilities::getBacktraceExceptionLine());
     }
     return TRUE;
 }