Nginx服务器,PHP程序,
1. 生成随机字符串$session_me;
2. 将openid等信息保存在session中,$_SESSION[$session_me] = $session_key + $openid
3. 将$session_me与session_id()返回小程序客户端,并保存;
4. 小程序向服务器端发起请求:
wx.request({
url: requestUrl + '/index.php',
data: { sid: wx.getStorageSync('session_me') },
header: {
'content-type': 'application/x-www-form-urlencoded',
'Cookie': 'PHPSESSID=' + wx.getStorageSync('session_id')
},
method: 'POST',
......
5. 服务器端的PHP程序中发现$_SESSION[$session_me]为空??
6. 之前跑了很久一直很稳定,怎么突然出现这样的问题?
小程序检查下是否保存成功?
从服务器端返回的打印信息来看,$_SESSION为空,这是sessionid失效了?通过Cookie上传PHPSESSID出了问题,还是上面打印信息的第6行Expires提示的session过期了?重启了nging和php-fpm,错误依旧。。。
另外,在服务器端的/tmp目录下,每隔一分钟会生成一个session文件:
-rw------- 1 root 0 1月 11 23:51 sess_b0j6rvrs7h1rgt5dmm9i095ig6
-rw------- 1 root 0 1月 11 23:52 sess_ob6j39bj8c51gaaltot4r533n2
-rw------- 1 root 0 1月 11 23:53 sess_47dg66gdk9lfgekh8j3pi69725
查看服务器端返回的sessionid,确实是没有对应的session文件。是nginx出了什么问题?