搜尋
首頁php教程PHP开发ThinkPHP中Session用法詳解

ThinkPHP中Session用法詳解

Dec 22, 2016 am 10:25 AM
session

本文實例講述了ThinkPHP中Session用法。分享給大家供大家參考。具體如下:

在ThinkPHP封裝了Session類別,使用者可以直接使用,常用的方法有:

Session::set(name, value):註冊 session 。

Session::is_set(name):檢查Session的值是否設定。

Session::get(name):讀取 session 。

Session::clear():清空Session。

Session::destroy():銷毀 session 。

ThinkPHP 預設開啟了session 會話,因此在使用Session 類別之前不需要使用session_start() 函數來開啟會話.

使用session 實例

下面以表單提交的方式註冊頁面分別以範本方式與操作中以Session::get 方式讀出session 值.

註冊session

User 模組sessionTest 操作註冊session 範例:

class UserAction extends Action{  
public function session(){  
if(!emptyempty($_POST['username'])){  
Session::set('username',$_POST['username']);  
}  
$this->display();  
}  
}

sessionTest.html 範本(片段):rrrereee

如testuser),點擊提交按鈕後,提交至sessionTest 方法(即當前頁面)處理並註冊session 值,以模板標籤present 來控制輸出邏輯,檢測到已經註冊$_SESSION['username'] 變數即輸出:


testuser 你好! 首頁 註銷

否則會輸出表單。

檢測session 是否註冊

模板裡檢測

在模板裡面,可以直接使用present 或notempty 甚至switch 等標籤判斷session 變數是否註冊,以決定輸出對應的session 值(直接以輸出數組單元的方式輸出session變數值)或顯示其他頁面元素,具體可參見本教程範本標籤部分內容以及上面的範例.

操作裡偵測

在操作裡,可以使用Session::is_set 方法檢查Session 的值是否設定,例如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/index)裡,判斷並讀取session 的程式碼片段:

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 無效(傳遞至其他頁面)的情況,可能的原因如下:

使用Session 類頭字母未大寫,如:session::set.

頁面有信息輸出,如入口文件有空行等.

伺服器上( Linux/Unix)的session 儲存路徑(session.save_path)權限不正確導致無法將session 資訊正確儲存.

作用域問題建議:

ThinkPHP 的Session 類別只是對session 做了簡單的包裝,實際可以在操作中直接使用PHP 原生的session 函數,官方亦是如此建議.

希望本文所述對大家的ThinkPHP框架程式設計有所幫助。

更多ThinkPHP中Session用法詳解相關文章請關注PHP中文網!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中