lihao812 发表于 2009-10-23 15:47:47

CI session中的userdata删除Array[session]变量的 BUG.

本帖最后由 lihao812 于 2009-10-23 15:50 编辑

文件名:Session.php

* Delete a session variable from the "userdata" array
*
* @access array
* @return void
*/
function unset_userdata($newdata = array())
{
if (is_string($newdata))
{
   $newdata = array($newdata => '');
}
if (count($newdata) > 0)
{
   foreach ($newdata as $key => $val)
   {
    unset($this->userdata[$val]);
    //unset($this->userdata[$key]);原版,删除不了值,改成$val ,解决.
   }
}
$this->sess_write();
}

Hex 发表于 2009-10-23 17:28:11

-_- userdata 里就是按 key 存的吧?

visvoy 发表于 2009-10-23 18:59:36

= . = LZ你把key和val弄反了,原版是对的

lihao812 发表于 2009-10-26 11:39:19

本帖最后由 lihao812 于 2009-10-26 11:44 编辑

$this->session->set_userdata(array('WorkNum'=>$this->input->post('WorkNum'),'password'=>@md5($this->input->post('password')));

//这样不对? 先变量名字,再值.

$sessionArr = array('WorkNum','password');
$this->session->unset_userdata($sessionArr);

//这样子删的,有什么问题?????
//因为之前用手册上的例子,删不了..
//手册上是这么讲的:
$sessionArr = array('WorkNum'=>'','password'=>'');
$this->session->unset_userdata($sessionArr);

//结果就是删不掉 ...

Hex 发表于 2009-10-26 12:34:47

注意一下 CI 版本,还有这个是 cookie 实现的,要下一次请求才有效果,不是立即生效的。

。笨才~ 发表于 2012-8-16 14:08:58

怎么获取最新的session因为我要做这个欢迎您 admin但是每次都是admin我已经换名字了
页: [1]
查看完整版本: CI session中的userdata删除Array[session]变量的 BUG.