CI中 使用PHP原生SESSION 失效
本帖最后由 HelpMe 于 2012-7-19 18:04 编辑利用ajax传递数据到 CI控制器 SaveInfo/save_qq_openId 下
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;
}
}
/*QQ 登录*/
if(QC.Login.check())
{
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
function save_qq_openId()
{
$openId = $this->input->get('openId');
$accessToken = $this->input->get('accessToken');
//echo $openId;
//echo $accessToken;
$_SESSION['openId'] = $openId;
已经在首页<html>标签前,加了<?php session_start()?>,在另个控制器获取SESSION变量失败,
A PHP Error was encounteredSeverity: NoticeMessage: Undefined index: openIdFilename: controllers/ShopOnSale.phpLine Number: 125
万分疑惑 !!
Line 125 $openId = $_SESSION['openId']; Line 126 echo "OpenId= ".$openId;
没有在吗? 这个可能是你的session是存在你的被请求的page中了,但是你当前的页面没有共享使用那个session。或许你使用IE8试试应该可以,这只是我的猜测,我没有验证。。 http://codeigniter.org.cn/forums/thread-4007-1-1.html 我的也是这样的问题,顶 要在控制器里做 session_start()
不能在视图里做,因为先执行控制器,后执行视图。
页:
[1]