首頁>新聞資訊>在ThinkPHP中session無法傳值的問題

在ThinkPHP中session無法傳值的問題

<?php

在ThinkPHP中session無法傳值的問題

這幾天用TP做項目,突然發現session無法使用了,在一個控制器里設置的session值,然后在另一個控制器里無法調用,糾結啊.

不知道哪里的問題,各種方法都試過了就是不行,最終在網上查了一下,也有人遇到過這樣的問題,最終想到了一個最古老的解決方法,那就是修改php.ini文件,沒辦法只能死馬當活馬醫了,結果還真行,雖然這個方法有些安全隱患但這也是沒有辦法的辦法了.

1,查找c:/windows目錄下php.ini文件

2,修改php.ini中的session.auto_start = 0 為 session.auto_start = 1 //設置自動開啟session

3,重啟apache服務器 //我只修改了上邊一處就可以用了如果不行的話,就執行下邊第4步

4,修改php.ini中的session.save_path = "C:/tmp",將前邊的;去掉 //修改session的保存路徑,自動建立tmp文件夾


session 跨域,困擾我好幾天,今天終于弄明白了,不管是thinkphp,還是本身的php,其實都要設置session.cookie_domain,設置好,就OK了,在thinkphp 里,在配置文件里:

conf/config.php

第一行:加ini_set('session.cookie_domain', ".domain.com");//跨域訪問Session

別的不用框架的一樣,以下又是我這幾天總結的,session 跨域解決辦法,本人已親自測試成功,并已運用到自己的網站!

第一種情況:如果你目錄下沒有.htaccess這個文件,也就是沒有采取url偽靜態2的話,那么,你在conf/config.php

第一行加上:ini_set('session.cookie_domain', ".domain.com");//跨域訪問Session

這種如果你開啟了調試,可能用,但關閉了調試,可能就不管用了!

第二種情況:如果你目錄下有.htaccess這個文件,那么你在根目錄,index.php的第一行加入:

       //定義ThinkPHP框架路徑 define('THINK_PATH','../ThinkPHP/');

       //定義項目名稱和路徑 define('APP_NAME','Www');

       define('APP_PATH','.'); //加載框架入口文件

       require(THINK_PATH."/ThinkPHP.php"); //實例化一個網站應用實例

       App::run(); ?>

這種開不開啟調試都管用!

久久免费小视频,久久久影院亚洲午夜,久久成了视频免费观看,久久久永久免费视频
一本一本大道香蕉久在线播放 | 色98视频都是亚洲国产精品 | 久久国产精品亭亭亚洲Av | 午夜亚洲在在线观看 | 亚洲第一在线精品 | 自拍亚洲日韩一区 |