PHP 7.2警告: “Cannot change session name when session is active”[通俗易懂]

PHP 7.2警告: “Cannot change session name when session is active”

大家好,又见面了,我是全栈君。

项目在php7.1 版本正常,迁移服务器php 7.2 报错

Maybe it’s a warning but with Tracy I have an error.

To solve this I put session_write_close(); before session_set_cookie_params();. It’s not a good fix but it’s works

PHP 7.2警告: “Cannot change session name when session is active”[通俗易懂] 

session_name() as well as session_set_cookie_params() are always nonesense if the session is already running.

翻译: session_name()以及session_set_cookie_params()总是不存在意义的,如果会话已在运行。

 

I had a similar problem but finally found a way through. The code below was my first approach that gave me errors.

static function startmysession($lifetime, $path, $domain, $secure, $httponly){

    session_set_cookie_params($lifetime, $path, $domain, $secure, $httponly);
    session_regenerate_id(true);

    if(!isset($_SESSION)){
        session_start();
    }
}

Now Earlier versions of php overlooked our mistake(We were practically renaming and giving a session that already exists properties which is very wrong. So how did i solve this problem?(现在php的早期版本忽略了我们的错误(我们实际上是在重命名和提供一个已经存在的会话属性,这是非常错误的)。那么我是如何解决这个问题的呢?)

static function startmysession($lifetime, $path, $domain, $secure, $httponly){      
    if(!isset($_SESSION)){  
         session_set_cookie_params($lifetime, $path, $domain, $secure, $httponly);
         @session_regenerate_id(true);    
             session_start();
         }    
    }

I now bound the session_set_cookie_params() just before session start and I test if the session already exists before doing so.(现在,我在会话开始之前绑定了会话session_set_cookie_params(),并在此之前测试会话是否已经存在。)

My solution:

Originally:

        $cookieParams = session_get_cookie_params();

        session_set_cookie_params(
            $seconds,
            $cookieParams['path'],
            $cookieParams['domain'],
            $cookieParams['secure']
            );

Now:

        if(isset($_SESSION)) {
            if ($seconds != 0) {
                setcookie(session_name(), session_id(), time() + $seconds);
            } else {
                setcookie(session_name(), session_id(), $seconds);
            }
        } else {
            $cookieParams = session_get_cookie_params();

            session_set_cookie_params(
                $seconds,
                $cookieParams['path'],
                $cookieParams['domain'],
                $cookieParams['secure']
            );
        }

 

参考:https://stackoverflow.com/questions/47700336/php-7-2-warning-cannot-change-session-name-when-session-is-active

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111572.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VMware 虚拟机如何连接网络「建议收藏」

    VMware 虚拟机如何连接网络「建议收藏」ps:本教程是针对虚拟机NAT模式连接网络一、首先查看自己的虚拟机服务有没有开启,选择电脑里面的服务查看;1.计算机点击右键选择管理2.进入管理选择VM开头的服务如果没有开启的话就右键开启二、虚拟机服务开启后就查看本地网络虚拟机的网卡启动没有1.电脑右下角网络标志右键进入网络和共享中心2.点击更改适配器,查看虚拟机的虚拟网卡启动没有,没有启动的话右键点击启动3.网卡开启后设置ip地址

    2022年4月20日
    2.8K
  • 蓝桥杯单片机PCF8591数据读取——湿度检测

    蓝桥杯单片机PCF8591数据读取——湿度检测

    2021年11月12日
    41
  • 【超详细教程】Mac如何用QuickTime录屏soundflower录制屏内外声音(附视频演示教程)

    【超详细教程】Mac如何用QuickTime录屏soundflower录制屏内外声音(附视频演示教程)作者:齐木南子酱链接:http://www.i5seo.com/mac-own-software-recording-screen.html来源:长沙SEO霜天如何用mac自带软件录屏且录制屏内屏外声音?这个问题困扰了很多使用苹果mac笔记本的用户,本教程你能get到的3个技能点1.用macbook自带软件录屏(无屏内屏外声音)2.用macbook自带软件录屏+有屏内声音+…

    2022年6月8日
    47
  • C# SplitContainer 控件详细用法

    C# SplitContainer 控件详细用法1.可以将Windows窗体SplitContainer控件看作是一个复合体,它是由一个可移动的拆分条分隔的两个面板。当鼠标指针悬停在该拆分条上时,指针将相应地改变形状以显示该拆分条是可移动的。使用SplitContainer控件,可以创建复合的用户界面(通常,在一个面板中的选择决定了在另一个面板中显示哪些对象)。这种排列对于显示和浏览信息非常有用。拥有两个面板使您可以聚合不同区域中的信息,并且用户可以轻松地使用拆分条(也称为“拆分器”)调整面板的大小。另外,还可以嵌套多个SplitC…

    2022年7月18日
    72
  • 二进制减法运算法则图解_二进制减法等于加补码

    二进制减法运算法则图解_二进制减法等于加补码FPGA减法运算,商位宽设置比除数和被除数多一位,若商最高位为1,则为负数,如果结果为负数,取值为反码加1例:wire[2:0]A;wire[2:0]B;reg[3:0]C1;reg[2:0]C;assignA=010;assignB=101;always@(posedgeclk)beginC<=A-B;endassignC=C1?(~C1[2:0…

    2022年9月15日
    2
  • 软件概要设计与详细设计

    (一)概要设计的任务与步骤1、总体设计的必要性:可以站在全局角度上,花较少成本,从抽象的层次上分析对比多种可能性的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。2、总体设计的两个阶段:(1)系统设计阶段:确定系统的具体实现方案(2)结构设计阶段:确定软件结构。3、总体设计的9个步骤:(1)设想供选择的方案(2)选取…

    2022年4月6日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号