我正在尝试通过创建start_secure_session()
函数来创建安全会话:
function start_secure_session() {
$session_name = 'secure_session';
$secure = true;
$httponly = true;
if (ini_set('session.use_only_cookies', 1) === false) {
die('error');
}
$cookie_params = session_get_cookie_params();
session_set_cookie_params($cookie_params["lifetime"],
$cookie_params["path"],
$cookie_params["domain"],
$secure,
$httponly);
session_name($session_name);
session_start();
session_regenerate_id(true);
}
问题是,start_secure_session()
没有保存$_SESSION
超级全局变量。当页面刷新时,它立即被取消。它只有在我发表评论时才有效:
//$cookie_params = session_get_cookie_params();
//session_set_cookie_params($cookie_params["lifetime"],
// $cookie_params["path"],
// $cookie_params["domain"],
// $secure,
// $httponly);
或换句话说,没有设置自定义Cookie参数。
我该怎么做才能让它有效?那么,session_start()
可以正常工作,$_SESSION
变量可以记住它的价值吗?
答案 0 :(得分:0)
我认为是因为secure = TRUE并且您没有使用HTTPS? 它不会在安全设置为TRUE的非安全连接上创建会话。