amu 发表于 2013-4-25 18:22:37

问楼主个问题呀。使用你这个类,怎么实现通过sessionid读取全部session数据?

因为用flash上传,始终会存在session丢失的问题。

我以前用原生的php sessiion的做法是:
一:在用flash传图片的时候,同时把sessionid传过去。
二:图片保存那边先用接收到的session_id(收到的sessionid值),然后再用session_start(),之后就可以正常使用session数据了。

我想问的是:使用你这个类或是原来ci的那个session类怎么实现上面那样的效果?

amu 发表于 2013-4-25 18:28:50

amu 发表于 2013-4-25 18:22 static/image/common/back.gif
问楼主个问题呀。使用你这个类,怎么实现通过sessionid读取全部session数据?

因为用flash上传,始终会存 ...
其实我在代码里面用php 原生的 session 写法是可以完成工作的。

先清除
session_unset();
session_destroy();

//手工指定并开启
session_id('qnb2u4hd9mespi3vg4jm06deh5');
session_start();

后面用$_SESSION['userid']就行。
但是这样就完全没有用到框架的session类了。

而且ci那个session类这样做是行不通的(前提是我没在有数据库中记录session)

Hex 发表于 2013-4-25 19:11:48

amu 发表于 2013-4-25 18:28 static/image/common/back.gif
其实我在代码里面用php 原生的 session 写法是可以完成工作的。

先清除


使用 CI Session 类就是封装的比较好,用起来方便,你如果喜欢用 $_SESSION 也是没问题的。

amu 发表于 2013-4-25 20:42:23

Hex 发表于 2013-4-25 19:11 static/image/common/back.gif
使用 CI Session 类就是封装的比较好,用起来方便,你如果喜欢用 $_SESSION 也是没问题的。 ...

我就是想知道这个session类有没有这方面的解决方案,因为即然全都用框架的东西了,突然又有的地方不用,看起来不太合众一样。

Hex 发表于 2013-4-26 09:50:21

amu 发表于 2013-4-25 20:42 static/image/common/back.gif
我就是想知道这个session类有没有这方面的解决方案,因为即然全都用框架的东西了,突然又有的地方不用, ...

你是想设置 sessin id ?你需要什么功能?

amu 发表于 2013-4-26 10:16:15

Hex 发表于 2013-4-26 09:50 static/image/common/back.gif
你是想设置 sessin id ?你需要什么功能?

嗯,就像我上面说到flash那个问题一样,因为原session都已经丢失了。

现在根据一个session id值(通过get或post什么的方法传过来的不管),然后重新让这个session类可以正常使用原session id那边的那些session数据。

我想大概应该会是在session类中加一个方法,这个方法需要一个参数sesssion id。这个方法的作用就是依据参数session id重新初始化整个session数据,以便像$this->session->userdata('session名')这样的方法可以接着正常使用。

Hex 发表于 2013-4-26 12:29:18

amu 发表于 2013-4-26 10:16 static/image/common/back.gif
嗯,就像我上面说到flash那个问题一样,因为原session都已经丢失了。

现在根据一个session id值(通过ge ...

你说的没错,我发布的这个类缺少你说的功能。
这是个问题,应该补上。

amu 发表于 2013-4-26 14:48:56

Hex 发表于 2013-4-26 12:29 static/image/common/back.gif
你说的没错,我发布的这个类缺少你说的功能。
这是个问题,应该补上。

好哟,好哟,楼主写好了新了,我就来下哈。主要是我写这个水平太差了。不然就自己动手了。现在只有依靠你们这些真正的高手了。

apibrain 发表于 2013-5-28 00:51:29

谢谢分享,非常棒

wlyx 发表于 2013-5-28 17:29:20

amu 发表于 2013-4-26 14:48 static/image/common/back.gif
好哟,好哟,楼主写好了新了,我就来下哈。主要是我写这个水平太差了。不然就自己动手了。现在只有依靠你 ...

        /**
       * Switch to the session which has the given ID
       *
       * @param        string                Session ID to switch to
       * @param        string                Session name
       * @param        string                Session save handler
       *
       * @return        Array                The retrieved session data
       *
       */
        function switchSession($session_id, $session_name = 'PHPSESSID', $session_save_handler = 'files')
        {
                # write and close current session
                session_write_close();
                       
                # grab old save handler, and switch to files
                $old_session_save_handler = ini_get('session.save_handler');
                ini_set('session.save_handler', $session_save_handler);
                       
                # now we can switch the session over, capturing the old session name
                $old_session_name = session_name($session_name);
                session_id($session_id);
                session_start();
                       
                # get the desired session data
                $session_data = $_SESSION;
                       
                # now return the data we just retrieved
                return $session_data;
        }       
页: 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17
查看完整版本: [2.0.x] PHP 原生 Session 类库,可完全替代 CI 自己的 Session 类库