无法使用php访问会话数组

时间:2011-09-17 12:13:18

标签: php session

我正在我的网站上的子文件夹中工作:www.example.com/subfolder

现在,我想设置一个只能在www.example.com/subfolder

中访问的会话

为实现这一目标,我做了以下事情:

private $sessiontimeout= 10800;
        private $subdomain = '/subfolder/';
        private $website = 'example.com';    

function __construct ($table)
            {print_r( $_SESSION );
                $this->table=$table;
                $this->savedusername= $this->getsession('logbook');
                session_set_cookie_params ( $this->sessiontimeout, $this->subdomain, $this->website, 0, 1 );
                ini_set('session.use_only_cookies', 1);
                if (!is_null ($this->savedusername))
                {
                    $resultobj=selectquery ("select last_login_one from $this->table where username=?", "s", (array) $this->savedusername);
                    if ($resultobj['obj']->num_rows() > 0)
                    {
                        $this->last_login=$resultobj['data'][0]['last_login_one'];
                    }
                }
            }

现在当我打印$ _SESSION数组时,它不显示任何内容,甚至不是'Array()'。

请问我做得对不对?

由于

3 个答案:

答案 0 :(得分:4)

您是否在该代码之前的任何位置使用了session_start()?

我还建议使用var_dump()而不是print_r()来调试值,因为print_r不会输出空值,因此有时会产生一些混淆。

答案 1 :(得分:1)

您需要先调用session_start(除非您将session.auto_start设置为1)。

答案 2 :(得分:1)

_SESSION是超全球化的。它在全球范围内。

所以,你可能已经忘了session_start();