PHP session_set_cookie_params 中断 php session_start() 函数和 $_SESSION 变量
Posted
技术标签:
【中文标题】PHP session_set_cookie_params 中断 php session_start() 函数和 $_SESSION 变量【英文标题】:PHP session_set_cookie_params break php session_start() function and $_SESSION variable 【发布时间】:2015-05-09 17:50:42 【问题描述】:我正在尝试通过创建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
变量可以记住它的值吗?
【问题讨论】:
【参考方案1】:我认为是因为 secure=TRUE 而您没有使用 HTTPS? 它不会在安全设置为 TRUE 的非安全连接上创建会话。
【讨论】:
以上是关于PHP session_set_cookie_params 中断 php session_start() 函数和 $_SESSION 变量的主要内容,如果未能解决你的问题,请参考以下文章
IntelliJ IDEA 11编辑php是,支持php文件名为.php5和.php4,如何设置能让其也支持.php呢?