ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP でのセッションの使用方法の詳細な説明、thinkphpsession_PHP チュートリアル

ThinkPHP でのセッションの使用方法の詳細な説明、thinkphpsession_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:12:42911ブラウズ

ThinkPHPでのセッションの使用法、thinkphpsessionの詳細な説明

この記事の例では、ThinkPHP でのセッションの使用法について説明します。参考のためにみんなで共有してください。詳細は以下の通りです

Session クラスは ThinkPHP でカプセル化されており、ユーザーはそれを直接使用できます。一般的に使用されるメソッドは次のとおりです。

Session::set(name, value): セッションを登録します。

Session::is_set(name): Session の値が設定されているかどうかを確認します。

Session::get(name): セッションを読み取ります。

Session::clear(): セッションをクリアします。

Session::destroy(): セッションを破棄します。

ThinkPHP はデフォルトでセッションを開くため、Session クラスを使用する前に session_start() 関数を使用してセッションを開く必要はありません。

セッションインスタンスを使用する

次に、フォーム送信を通じてセッションを登録し、他の 2 つのページでそれぞれテンプレート モードと Session::get モードでセッション値を読み出します。

セッションを登録する

ユーザーモジュールセッションテスト操作登録セッションの例:


コードをコピーします コードは次のとおりです:class UserAction extends Action{
パブリック関数 session(){
if(!emptyempty($_POST['ユーザー名'])){
セッション::set('ユーザー名',$_POST['ユーザー名']); }
$this->display(); }
}

sessionTest.html テンプレート (フラグメント):


コードをコピーします
コードは次のとおりです:

{$_SESSION['username']} こんにちは! ホームページ このモジュールの他のページ ログアウトユーザー名を入力してください:

<フォームアクション="__SELF__" メソッド="投稿">


ユーザー名 (testuser など) を入力して送信ボタンをクリックすると、sessionTest メソッド (つまり、現在のページ) に送信され、セッション値が処理および登録されます。存在するテンプレート タグは、出力ロジックと制御を制御するために使用されます。 $_SESSION['username'] 変数が登録されていることが検出されます:

testuser こんにちは! ホームログアウト

それ以外の場合はフォームが出力されます。


セッションが登録されているか確認してください


テンプレートでの検出

テンプレートでは、present や notempty などのタグを直接使用するか、switch を使用してセッション変数が登録されているかどうかを判断して、対応するセッション値を出力するかどうかを決定できます (セッション変数値を配列単位の形式で直接出力します)。他のページ要素を表示します。詳細については、このチュートリアルのテンプレート タグの一部と上記の例を参照してください。

動作中に検出されました

動作中、Session::is_set メソッドを使用して、Session の値が設定されているかどうかを確認できます。たとえば、User モジュール user の動作は次のとおりです。

コードをコピーします

コードは次のとおりです:

public function user(){

// 操作中に直接出力するため、文字化けを避けるため header("Content-Type:text/html; charset=utf-8"); if(セッション::is_set('ユーザー名')){ echo セッション::get('ユーザー名')。'; }その他{

エコー「セッションが登録されていません」

; }

その他のモジュールページ
他のページ (インデックス/インデックスなど) では、セッション コード スニペットを判断して読んでください:



コードをコピーします

コードは次のとおりです:

{$_SESSION['username']} こんにちは! ログインしていません

セッションが無効です(配信できません)

ThinkPHP でセッションが無効である (他のページに渡せない) 可能性がある理由は次のとおりです。

session::set のように、大文字を使用せずに Session クラスの最初の文字を使用します。

ページにはエントリーファイルの空行などの情報が出力されています

サーバー (Linux/Unix) 上のセッション ストレージ パス (session.save_path) の権限が正しくないと、セッション情報が正しく保存されません。

スコープの問題に関する提案:

ThinkPHP の Session クラスは、セッションの単純なラッパーです。実際、これは公式の推奨事項でもあります。

この記事で説明した内容が、皆様の ThinkPHP フレームワーク プログラミングに役立つことを願っています。

http://www.bkjia.com/PHPjc/919623.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/919623.html技術記事 ThinkPHP でのセッションの使用方法の詳細な説明、thinkphpsession この記事では、ThinkPHP でのセッションの使用方法を例を示して説明します。参考のためにみんなで共有してください。詳細は次のとおりです: Session クラスは ThinkPHP でカプセル化されており、ユーザー...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。