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 变量的主要内容,如果未能解决你的问题,请参考以下文章

php send.php php邮件模板#php

IntelliJ IDEA 11编辑php是,支持php文件名为.php5和.php4,如何设置能让其也支持.php呢?

如何从php5升级到php7

请问php中如何调用php文件中的内容?

php [php:PHPMailer示例] php库“PHPMailer”示例。 #PHP

php基础