この記事の例では、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{ public function session(){ if(!emptyempty($_POST['username'])){ Session::set('username',$_POST['username']); } $this->display(); } }
ユーザー名 (testuser など) を入力する場合、送信ボタンをクリックした後、セッション値を処理および登録するために sessionTest メソッドに送信します。出力ロジックは、$_SESSION['username'] 変数が登録されたことを検出し、次のように出力します:
testuser こんにちは! ホームページ ログアウト それ以外の場合はフォームが出力されます。
セッションが登録されているかどうかを検出する
テンプレート内で検出する
テンプレートでは、present や notempty などのタグを直接使用することも、switch を使用してセッション変数が登録されているかどうかを判断し、出力される対応するセッション値を決定することもできます(セッションを出力配列単位として直接出力する) または他のページ要素を表示する 詳細については、このチュートリアルのテンプレート タグ部分と、
動作中の検出
を参照してください。 Session::is_set メソッドを使用して、User などのセッションの値が設定されているかどうかを確認できます。モジュール user の操作は次のとおりです:
<p> <present name="_SESSION['username']">{$_SESSION['username']} 你好! <a href="__APP__/">首页</a> <a href="__URL__/user">本模块其他页面</a> <a href="__URL__/logout">注销</a><else />请输入您的用户名: </p> <form action="__SELF__" method="post"> <p><input type="text" name="username" /></p> <p><input type="submit" value=" 提交 " /></p> </form> </present>
他のモジュールページ
他のページ(Index/インデックスなど)では、セッションのコード スニペットを判断して読みます:
public function user(){ // 由于直接在操作里输出,为避免乱码 header("Content-Type:text/html; charset=utf-8"); if(Session::is_set('username')){ echo Session::get('username').' 你好'; }else{ echo 'session 未注册'; } }
サーバー上 ( セッション ストレージ パス (session.save_path) Linux/Unix のパーミッションが正しくないため、セッション情報を正しく保存できません。
スコープの問題に関する提案:
ThinkPHP の Session クラスは、操作中に実際に使用できる単純なラッパーです。 PHP のネイティブを直接使用します。公式推奨でもある session 関数
この記事が皆様の ThinkPHP フレームワークプログラミングに役立つことを願っています。
ThinkPHP でのセッションの使用方法の詳細については、PHP 中国語 Web サイトを参照してください。