加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在PHP中重新打开一个会话

发布时间:2020-12-13 17:29:50 所属栏目:PHP教程 来源:网络整理
导读:如何在 PHP中重新打开会话,而不会收到头已发送警告? 在设置了我喜欢设置的所有会话变量后,我关闭与session_write_close()的会话.我这样做,因为只要会话打开,同一个客户端可能只有一个活动连接.但我喜欢有多个并行的. 但是,如果我稍后再设置一个会话变量,我
如何在 PHP中重新打开会话,而不会收到头已发送警告?

在设置了我喜欢设置的所有会话变量后,我关闭与session_write_close()的会话.我这样做,因为只要会话打开,同一个客户端可能只有一个活动连接.但我喜欢有多个并行的.

但是,如果我稍后再设置一个会话变量,我需要再次打开与会话session_start().这是有效的,但是由于我已经向客户端发送了代码,所以打印出“已发送的信头”警告.为什么要再次设置cookie? Cookie已经设置好了.只有我需要的是再次访问服务器上的会话文件.

嗯,我可以压制他们.但是是否有一种重新打开会话的方法,该会话已被session_write_close关闭,而不重新发送Cookie头? Cookie头已由第一个session_start()正确发送.所以第二个只需要让我回访到存储在Web服务器上的会话文件.

<?php
session_start();
// setting all the session vars I like to set
session_write_close(); // <-- // To allow parallel requests by the same user,while this script is still running

// Code that takes some time to execute
// It also prints output,so no more cookie headers after this point

@session_start(); // <-- works,but I like to use it without suppressing warnings
$_SESSION['key'] = 'new value I like to store';
session_write_close();
?>
session_start();
...
session_write_close();
...

ini_set('session.use_only_cookies',false);
ini_set('session.use_cookies',false);
ini_set('session.use_trans_sid',false);
ini_set('session.cache_limiter',null);
session_start(); // second session_start

这将阻止php第二次调用php_session_send_cookie().
See it working.

虽然重组脚本似乎仍然是更好的选择…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读