其实此时此刻我并不知道造成这个错误的深层原因是什么,也不知道问题被解决的具体道理,只是先把这种异常情况记录一下,以防有人跟我一样被折磨过长时间。
这个问题是在我做一个腾讯微博授权绑定功能时出现的。
我希望在微博授权完成后使用session记录token信息,然后在创建关联账户时会用到这个session,期间不可避免的会页面跳转。然后问题出现了,页面在跳转后,session丢失了,而且也不是全部丢失,因为我在session中存的是一个数组,***发现数组的key都还在,只是value不见了,而且最诡异的就是,其他地方的session都是可以正常传递的,只是某一个方法不行。我查了一些资料,对比了php.ini的配置,也使用了session id,但是都没有解决问题,***决定从源头入手,回头看了一下设置session的地方....
- ....
- $key = get_qq_token($_GET["code"], $_GET["state"], $_SESSION["URI"]);
- if($key['access_token'] !== false){
- $_SESSION['qq_keys'] = $key;
- $me = get_qq_user_info($key['access_token'], $key['openid']);
- }
- ....
我发现了设置session后调用的那个取user信息的方法,这个方法使用的是php的curl函数类,向指定的url发请求。然后开始怀疑“是不是在这里session的值被处理掉了,不知道curl_close 这个方法会不会把当前的session值都会清空”,如前所述,原因我现在也不知道,但是这个怀疑确实帮我解决了问题,于是我把session设置延后到调用方法以后,即
- $me = get_qq_user_info($key['access_token'], $key['openid']);
- $_SESSION['qq_keys'] = $key;
结果问题真的解决了,session正常传递到跳转页面。虽然不知道原因,但是也许可以记住一个窍门儿:session要在curl请求之后设置,中间穿插curl请求会使session丢失。这个结论有待进一步考证。
通常在高防服务器机房中,不但需要硬件设备来进行DDoS的防御,而且也要设置好网...
php语言作为一门强健的服务器端语言,汇集多种语言优点于一身,为web落地页提供...
盘纤是一门技术,也是一门艺术。科学的盘纤方法,可使光纤布局合理、附加损耗...
NVMe是固态存储时代的下一个阶段,它提高了SSD和网络上其他存储设备的性能。如今...
当出现403跨域错误的时候 No 'Access-Control-Allow-Origin' header is present ...
日本vps国外服务器 好用吗?在众多国外服务器中,日本vps算是比较受欢迎的了,日...
一个厨师不研究菜谱改研究兵法了,这是因为上当受骗造成的,没有普遍意义。但是...
随着互联网的发展,现在的经济也慢慢的转向线上去了,也就是现在说的互联网经济...
作为一个内存数据库,redis在内存空间不足的时候,为了保证命中率,就会选择一定...
许多大型企业的互联网基础设施通常离不开网站服务器托管方案。他们拥有自己的web...