ThinkPHP的session跨域問題很多開發者都遇到過!
其實不管是ThinkPHP還是php本身,在解決session跨域問題的時候都需要設置session.cookie_domain。
在ThinkPHP裡,需要修改配置文件conf/config.php
在第一行加上:
ini_set('session.cookie_domain', ".domain.com");//跨域訪問Session
經過總結,針對session跨域這一問題的解決方法主要有以下幾種:
第一種情況:如果你目錄下沒有.htaccess這個文件,也就是沒有采取url偽靜態的話,那麼,你在conf/config.php的第一行加上:
ini_set('session.cookie_domain',".domain.com");//跨域訪問Session
這種如果你開啟了調試,可能用!但關閉了調試,可能就不管用了!
第二種情況:如果你目錄下有.htaccess這個文件,那麼你在根目錄,index.php的第一行加入:
<?php ini_set('session.cookie_domain',".domain.com");//跨域訪問Session // 定義ThinkPHP框架路徑 define('THINK_PATH', '/ThinkPHP/'); //定義項目名稱和路徑 define('APP_NAME', 'Www'); define(‘APP_PATH', '.'); // 加載框架入口文件 require(THINK_PATH."/ThinkPHP.php"); //實例化一個網站應用實例 App::run(); ?>
這種方法不管開不開啟調試都管用!