首頁  >  文章  >  後端開發  >  Tp框架取得不到session 求大牛解答

Tp框架取得不到session 求大牛解答

WBOY
WBOY原創
2016-08-04 09:20:422938瀏覽

我用的是Tp 3.2.3新版本。我在同一個控制器中有多個方法,我在方法1中寫了一個session,在方法2中為什麼不能讀呢?求解釋 .....

程式碼很簡單 就寫了一個控制器 繼承Controller 。然後裡面寫了2個 方法 ,第一個方法寫入一個session 。第二個方法讀取該 session。 語法就是 session("kkk",999); 另一個 就是 直接 echo session("kkk"); 結果 就是 讀取session那個 讀不出來。

回覆內容:

我用的是Tp 3.2.3新版。我在同一個控制器中有多個方法,我在方法1中寫了一個session,在方法2中為什麼不能讀呢?求解釋 .....

程式碼很簡單 就寫了一個控制器 繼承Controller 。然後裡面寫了2個 方法 ,第一個方法寫入一個session 。第二個方法讀取該 session。 語法就是 session("kkk",999); 另一個 就是 直接 echo session("kkk"); 結果 就是 讀取session那個 讀不出來。

ThinkPHP在應用初始化時, 在ThinkPHP\Library\Think\App.class.php類別中, 若目前運作環境不是cli, 是會自動從設定檔註冊session_startcli

, 是會自動從設定檔註冊

session_start 預設的設定檔ThinkPHP\Conf\convention.php中設定的SESSION_AUTO_STARTTRUE,即預設會自動開啟session,題主請檢查自己的設定檔是否覆寫了此設定檔,php 設定項設定檔的載入使用者自訂的會覆蓋預設的,

預設的使用者自訂設定檔Application\Common\Conf\config.php, 檢查是否將SESSION_AUTO_START設定為false或0 了

若不想修改配置文件, 只需要在方法開始前調用session_start即可

<code class="php">
<?php
namespace Home\Controller;
use Think\Controller;

class IndexController extends Controller {

    public function index(){
        $this->show('.........');
    }

    public function test()
    {
        //若配置文件SESSION_AUTO_START为false, 则调用session方法时都学要手动开启session
        session_start();

        session('xxxxx', 'wodelaojia');
    }


    public function test2()
    {
        session_start();
        
        echo session('xxxxx');
    }
}</code>

配置 SESSION_AUTO_START TRUE 或在使用 session 的時候 session_start

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