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

高洛峰
リリース: 2016-12-22 10:25:49
オリジナル
1475 人が閲覧しました

この記事の例では、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[&#39;username&#39;]">{$_SESSION[&#39;username&#39;]} 你好!  
<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(&#39;username&#39;)){  
echo Session::get(&#39;username&#39;).&#39; 你好&#39;;  
}else{  
echo &#39;session 未注册&#39;;  
}  
}
ログイン後にコピー
session が無効です (転送できません)

ThinkPHP で無効なセッション (渡せません) が発生する可能性があります (他のページに渡されます)。考えられる理由は次のとおりです:

最初の文字Session::set のように、Session クラスの部分は大文字で始まりません。

このページには、エントリ ファイルに空白行があるなどの情報が出力されます。

サーバー上 ( セッション ストレージ パス (session.save_path) Linux/Unix のパーミッションが正しくないため、セッション情報を正しく保存できません。

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

ThinkPHP の Session クラスは、操作中に実際に使用できる単純なラッパーです。 PHP のネイティブを直接使用します。公式推奨でもある session 関数

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

ThinkPHP でのセッションの使用方法の詳細については、PHP 中国語 Web サイトを参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート