亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

在getWxAccessToken函數中,我的$_SESSION['access_token'],為何保存不下來,每次刷新的時候獲取到的都是新的access_token,開啟了session_start();了

? ? ? ? ? ? public function getWxAccessToken()

239 ? ? {

240 ? ? ? ? //將access_token存在session、cookie中

241 ? ? ? ? if ( $_SESSION['access_token'] && $_SESSION['expire_time'] > time()) ? ? ? ? ? ?{

242 ? ? ? ? ? ? ? ? //仍然可以使用access_token;

244 ? ? ? ? ? ? ? ? return $_SESSION['access_token'];

245?

246 ? ? ? ? } else {

247 ? ? ? ? ? ? ? ? //重新獲取,access_token不存在或者已經過期。

2

249 ? ? ? ? ? ? ? ? $appid ? ? ? ?= 'wsxxp3x10cbg12dehjhuaddjd7df89c9';

250 ? ? ? ? ? ? ? ? $appsecret ? ?= '8afxx7b0e02237c7hhh55l4ggb5sgssss44ss71ffc646bf98e5';

251 ? ? ? ? ? ? ? ? //1.請求地址

252 ? ? ? ? ? ? ? ? $url ? ? ? ? ?= "https://api.weixin.qq.com/cgi-bin/token?gra ? ?nt_type=client_credential&appid=".$appid."&secret=".$appsecret."";

253 ? ? ? ? ? ? ? ? $res ? ? ?= $this->http_curl($url,'get','json');

$access_token = $res['access_token'];

255 ? ? ? ? ? ? ? ? //將重新獲取到的access_token存到session中

256 ? ? ? ? ? ? ? ? session_start();

257 ? ? ? ? ? ? ? ? $_SESSION['access_token'] = $access_token;

258 ? ? ? ? ? ? ? ? $_SESSION['expire_time'] = time() + 7000000;

259 ? ? ? ? ? ? ? ? return $access_token;

260 ? ? ? ? }

261 ? ? }

如過運行提示$_SESSION未定義,加上isset()后可以運行,但是每次獲取到的都是新的access_token

正在回答

1 回答

session_start();不能放到條件分支里面,放在函數里面開頭即可,深層次的原因可能來自于,條件語句和函數的運行方式不同,比如條件是執行時才會分配內存,而函數被調用時會首先為變量創建內存,等函數結束調用銷毀,這個先后順序可能導致全局$_SESSION['access_token'],不會被當作會話變量(也就是說不能被會話管理所管理)。

?是否為 未定義 ?: ?isset($_SESSION['access_token'])

1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

在getWxAccessToken函數中,我的$_SESSION['access_token'],為何保存不下來,每次刷新的時候獲取到的都是新的access_token,開啟了session_start();了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號