這一段在用thinkPHP5開發微信小程序接口的時候,在同一個控制器一個方法中存入session,在另一個方法中取出session,一直都是無法取出。
查閱各種資料得到原因:thinkPHP5里面的session是給瀏覽器用的,非瀏覽器的方式是沒有辦法訪問到那個session的,只能用其他方式來代替session。
對策:
1.(推薦)使用TP5自帶的緩存方法
可以完美代替session,甚至可以每條手動設置時間,比session更方便,
(用過tp5自帶session的肯定知道,session時間一般是固定的,用起來很僵硬)。
//設置緩存(有效期3600秒)
Cache::set('name',$value,3600); //獲取緩存數據可以使用:
Cache::get('name');
提醒一下,如果$value是數組的話要先json_encode()編碼成字符串再用
2.Redis方法(此方法稍微麻煩一些)
按照教程在服務器上配置好redis數據庫
使用方法直接上代碼:
//存入redis //開啟redis數據庫服務
$redis = new Redis(); //連接ridis數據庫
$redis->connect('127.0.0.1', 6379); //存入數據(有效期3600秒)
$redis->set($sessioncode,$value, 3600); //取出redis //開啟redis數據庫服務
$redis = new Redis(); //連接ridis數據庫
$redis->connect('127.0.0.1', 6379); //取出數據
$data = $redis->get($session);
同樣,提醒一下,如果$value是數組的話要先json_encode()編碼成字符串再用
3.使用memcache
上述三種方法均可,建議使用第一種。
(本文為原創文章,轉載請注明來自:http://www.cnblogs.com/piaobodewu/)