PHP SESSION失效问题 !!!
用CI写的腾讯登陆,需要存贮openId以及accessToken,
用Ajax
JScript code
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
if(QC.Login.check())/*QQ 登录*/
{
QC.Login.getMe(function(openId, accessToken){
xmlhttp.open("GET","http://localhost/CI/index.php/SaveInfo/save_qq_openId?openId="+openId+"&accessToken="+accessToken,true);
xmlhttp.send();
});
}
在SaveInfo/save_qq_openId控制器下 $_SESSION['openId'] = $_GET['openId'];
然后页面跳转到另一个控制器 echo $_SESSION['openId'];
错误提示 :
A PHP Error was encountered
Severity: Notice
Message: Undefined index: openId
Filename: controllers/ShopOnSale.php
Line Number: 125
查看过 php.ini 文件 没有问题
在另个页面<html>标签前写了也没有用
PHP code
<?php
session_id('openId');
session_start();
?>
------解决方案--------------------if(isset($_GET['openId']))
$_SESSION['openId'] = $_GET['openId'];
------解决方案--------------------两个页面都需要开启session_start(); ,你做了吗?
------解决方案--------------------在SaveInfo/save_qq_openId控制器下 $_SESSION['openId'] = $_GET['openId'];
那么你在他之前 session_start() 了吗?
又,
session_id('openId');
session_start();
是错误的,请去掉
------解决方案--------------------注意COOKIE的domain,是否跨二级域名使用。