我正在我的网站上的子文件夹中工作: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()'。
请问我做得对不对?
由于
答案 0 :(得分:4)
您是否在该代码之前的任何位置使用了session_start()?
我还建议使用var_dump()
而不是print_r()
来调试值,因为print_r不会输出空值,因此有时会产生一些混淆。
答案 1 :(得分:1)
您需要先调用session_start
(除非您将session.auto_start
设置为1)。
答案 2 :(得分:1)
_SESSION是超全球化的。它在全球范围内。
所以,你可能已经忘了session_start();