用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4717|回复: 5
收起左侧

[已解决] CI中 使用PHP原生SESSION 失效

[复制链接]
发表于 2012-7-19 17:59:37 | 显示全部楼层 |阅读模式
本帖最后由 HelpMe 于 2012-7-19 18:04 编辑

利用ajax传递数据到 CI控制器 SaveInfo/save_qq_openId 下
JS复制代码
                   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
PHP复制代码
 
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 encountered

Severity: Notice

Message: Undefined index: openId

Filename: controllers/ShopOnSale.php

Line Number: 125


万分疑惑 !!


                                        Line        125                                $openId = $_SESSION['openId'];                                        Line        126                                echo "OpenId  = ".$openId;


 楼主| 发表于 2012-7-20 09:10:30 | 显示全部楼层
没有在吗?
发表于 2012-7-28 22:34:38 | 显示全部楼层
这个可能是你的session是存在你的被请求的page中了,但是你当前的页面没有共享使用那个session。或许你使用IE8试试应该可以,这只是我的猜测,我没有验证。。
发表于 2012-8-16 09:22:39 | 显示全部楼层
发表于 2012-11-15 11:53:15 | 显示全部楼层
我的也是这样的问题,顶
发表于 2012-11-16 12:46:54 | 显示全部楼层
要在控制器里做 session_start()
不能在视图里做,因为先执行控制器,后执行视图。

本版积分规则