在写新浪微博应用的时候碰到了一个郁闷的问题,IE之外的浏览器均正常,但是IE浏览器一切换页面SESSION就没了,查了一会,发现是IE浏览器默认阻止了微博读取应用实际URL的session,因为这是两个不同的网址
解决方法1 使用header头
header("Set-Cookie: test=axis; domain=.a.com; path=/");
这样就能够读取到其他站点的cookie了
但是我的服务器是运行在SAE上面的,SAE不给我这个权限,于是采取了这个很原始但是很有效的方法
解决方法2 使用memcache
memcache能够跨域,任何东西都阻止不了他,但是问题来了,我怎么识别不同的用户呢?所以,这招也不行
解决方法3 get
那就是将用户的信息写入数据库,然后通过GET传递一个唯一标示,然后通过这个唯一标示去找到用户的登陆信息
所以mioPHP的 微博init函数出来了 - - 很原始但是很有效!
//通过token重新建立session
function initWeibo(){
if(empty($_GET['token']))
return false;
$db = new PdoModel('draweruser');
$r = $db->SS(array('token' => $_GET['token']));
if($r){
$_SESSION['drawerUid'] = $r['0']['weibo_id'];
$_SESSION['drawerName'] = $r['0']['name'];
$_SESSION['icon'] = $r['0']['icon'];
$_SESSION['token'] = $_GET['token'];
$_SESSION['root'] = $r['0']['root'];
return true;
}else{
return false;
}
}
上一篇:使用SquirrelMQ解决数据库大并发 下一篇:快递查询API