PHP の基礎を学ぶとき、私たちは必ず session コントロールに遭遇します。まだまだ理解が浅いので、今日はthinkPHPフレームワークでのセッションの使い方についてお話しましょう!
Session クラスは ThinkPHP でカプセル化されており、ユーザーはそれを直接使用できます。一般的に使用されるメソッドは次のとおりです:セッション インスタンスを使用します。
フォームを送信してセッションを登録します。以下の 2 つのメソッドを使用して、セッションを登録します。各ページは、テンプレート モードと Session::get モードの操作でセッション値を読み取ります。ユーザー モジュールの sessionTest 操作でセッションを登録します。 sessionTest.html テンプレート (フラグメント):
class UserAction extends Action{ public function session(){ if(!emptyempty($_POST['username'])){ Session::set('username',$_POST['username']); } $this->display(); } }
template タグ
$_SESSION['username has been registered '] 変数が出力されます:testuser こんにちは! ホームページ ログアウトセッションが登録されているかどうかを検出します
テンプレート内で検出します
テンプレートでは、present や notempty などのタグを直接使用することも、switch を使用してセッション変数が登録されているかどうかを判断して、対応するセッションを決定することもできます出力する値 (セッション変数値を出力する出力配列ユニットを直接使用する)、または他のページ要素を表示する方法については、このチュートリアルのテンプレート タグ部分と、動作中の検出例を参照してください。操作では、Session::is_set メソッドを使用して、セッションの値が設定されているかどうかを確認できます。たとえば、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::set のように、クラスは大文字で始まりません。
ページには、
エントリ ファイルに空白行があるなどの情報出力があります。サーバー上のセッション ストレージ パス (session.save_path) Linux/Unix) の権限が正しくないため、セッション情報が正しく保存されません。
スコープの問題に関する提案:ThinkPHP の Session クラスはセッションに対してのみこれを実行します。単純なパッケージ化なので、実際には PHP のネイティブ セッション関数を直接使用できます。操作に関しては、公式の推奨事項と同じです
こちらもご覧ください:PHPセッション制御セッション、Cookieの概要
Laravel Sessionid処理メカニズムの詳細な説明
以上がthinkphpでのセッションの使い方の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。