この記事の例では、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 モードでセッション値を読み出します。 セッションを登録するユーザーモジュールセッションテスト操作登録セッションの例:
テンプレートでは、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('ユーザー名')。'; }その他{
エコー「セッションが登録されていません」;
}
ThinkPHP でセッションが無効である (他のページに渡せない) 可能性がある理由は次のとおりです。
session::set のように、大文字を使用せずに Session クラスの最初の文字を使用します。
ページにはエントリーファイルの空行などの情報が出力されています
サーバー (Linux/Unix) 上のセッション ストレージ パス (session.save_path) の権限が正しくないと、セッション情報が正しく保存されません。
スコープの問題に関する提案:
ThinkPHP の Session クラスは、セッションの単純なラッパーです。実際、これは公式の推奨事項でもあります。
この記事で説明した内容が、皆様の ThinkPHP フレームワーク プログラミングに役立つことを願っています。