在设置完所有会话variables之后,我使用session_write_close()closures会话。 我这样做,因为只要会话是打开的,可能只有一个来自同一客户端的活动连接。 但我喜欢有多个平行的。
但是,如果我想稍后设置另一个会话variables,则需要再次使用session_start()重新打开会话。 这工作,但因为我已经发送代码到客户端它打印“头已经发送” – 警告。 为什么要重新设置cookie? 该cookie已经设置。 唯一需要的是获得访问权限,再次在服务器上写会话文件。
那么,我可以压制他们。 但是有没有重新开放会话的方式,已经closuressession_write_close而不重新发送Cookie头? Cookie头已经被第一个session_start()正确发送了。 所以第二个只需要让我回到写入存储在Web服务器上的会话文件。
Symfony 3.1.5警告:SessionHandler :: read():会话数据文件不是由你的uid创build的
Django 1.2会话丢失
在设置Cake PHP后,会话权限被拒绝。
如何清除所有用户的会话?
<?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(); ?>
Nginx / PHP / PHP-fpm | 存储Cookie的问题
工作站被locking时如何注销用户?
检查会话的存在(Nginx)
关于audio会话的IAudioSessionControl信息
Windows Server AppFabriccaching会话存储
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() 。
看到它工作 。
虽然重组脚本似乎仍然是更好的选择 …
编辑见@ VolkerK的解决方案,它比这个更好。
在执行脚本时缓冲脚本的输出,以防止发送头文件,并在最后输出:
<?PHP session_start(); // setting all the session vars I like to set session_write_close(); // Start output buffer ob_start(); // Code that takes some time to execute // Do session stuff at the end of the script session_start(); $_SESSION['key'] = 'new value I like to store'; session_write_close(); // Send output to client ob_end_flush();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。