ホームページ >php教程 >PHP开发 >ThinkPHPのセッション操作方法のまとめ

ThinkPHPのセッション操作方法のまとめ

高洛峰
高洛峰オリジナル
2016-12-22 10:38:381226ブラウズ

この記事では、セッション上での ThinkPHP のさまざまな操作方法について詳しく説明します。詳細は次のとおりです。

セッションを操作する ThinkPHP の公式ドキュメントは次のとおりです:

start セッションを開始する
pause セッションを一時停止する
clear クリアセッション
destroy セッションを破棄
get セッション値を取得
getLocal プライベート セッション値を取得
set セッション値を設定
setLocal プライベート セッション値を設定
name session_name を取得または設定
is_set セッション値を設定するかどうか
is_setLocalプライベートセッション値を設定するかどうか
id session_idを取得または設定します
path session_save_pathを取得または設定します
setExpi re セッションの有効期限を設定します
setCookieDomain 有効なドメイン名を設定します
setCallback Sessionオブジェクトがデシリアライズされるときのコールバック関数を設定します

最も一般的に使用される操作メソッドのコード例は次のとおりです。

// 检测Session变量是否存在
Session::is_set('name');
// 给Session变 量赋值
Session::set('name','value');
// 获取Session变量
Session::get('name');

Session に関連する構成パラメータのコードは次のとおりです。

'SESSION_NAME'=>'ThinkID',        // 默认Session_name
'SESSION_PATH'=>'',            // 采用默认的Session save path
'SESSION_TYPE'=>'File',            // 默认Session类型 支持 DB 和 File
'SESSION_EXPIRE'=>'300000',        // 默认Session有效期
'SESSION_TABLE'=>'think_session',    // 数据库Session方式表名
'SESSION_CALLBACK'=>'',            // 反序列化对象的回调方法

必要がない場合は、SESSION_NAME パラメータに注意する必要があります。異なるプロジェクト間でセッションの値を共有する場合は、別の値を設定してください。それ以外の場合は、同じデフォルト値を維持してください。
同じ SESSION_NAME 値が設定されているが、プロジェクトに基づいてプライベート セッション スペースを作成したい場合は、どうすればよいですか? ThinkPHP は、プロジェクトをセッション空間として使用するプライベート セッション操作もサポートしています。例として、これを次のように変更します。いくつかの特別な状況のニーズで使用できます。

ThinkPHP はデータベース モードでのセッション操作をサポートします。データベース モードを使用する場合は、必ず SESSION_TABLE の値を設定し、次の DDL をデータベースにインポートしてください (MySQL を例にします)。

DB セッション モードでのデータベース接続では、プロジェクトのデータベース構成情報を使用して接続することに注意してください。データベース メソッドに加えて、メモリ メソッド、Memcache メソッドなど、他のセッション保存メカニズムのメソッドを追加することもできます。必要なのは、session_set_save_handler メソッドを使用して、対応するフィルタを追加することだけです。具体的なメソッドの定義については、を参照してください。 .class.php ファイルの実装を Think.Util.Filter の下の FilterSessionDb に追加します。

簡易ログイン判定を作成しました

ログイン検出後、Session値が空かfalseになるように割り当てます

// 检测Session变量是否存在(当前项目有效)
Session::is_setLocal('name');
// 给Session变 量赋值(当前项目有效)
Session::setLocal('name','value');
// 获取Session变量(当前 项目有效)
Session::getLocal('name');



[C('USER_AUTH_KEY')]はThinkPHPの組み込みメソッドですそして関数クラス。 config.php ファイルが設定されていない場合、デフォルトでは、$logInFind['id'] から抽出されたアカウント値を指定します。デフォルトでは、ページのセッションが閉じられると自動的に削除され、消えます。
他のページを判断するには次の形式を使用してください

CREATE TABLE `think_session` (
`id` int(11) unsigned NOT NULL auto_increment,
`session_id` varchar(255) NOT NULL,
`session_expires` int(11) NOT NULL,
`session_data` blob,
PRIMARY KEY(`id`)
)

セッションの操作方法に関するその他の ThinkPHP 関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。