您可以使用 ZF2 重新生成会话 ID SessionManager
:
$manager = new Zend\Session\SessionManager;
$manager->regenerateId();
但是,您的错误可能不是由此功能引起的,而是由于其他原因引起的。会话管理(session_start()
或重新生成会话 id)只有在您没有使用echo
该代码之前或类似的东西时才有可能:
例如,这将失败:
<?php
echo 'Hello';
session_start();
另一方面,这将起作用:
<?php
session_start();
echo 'Hello';
您必须非常小心打开和关闭 php 标签。如果您的类中有任何关闭 php 标记,请将其删除。如果在此之后有空行,则将其解释为响应中返回的文本,这会导致会话出现问题。这也会失败:
<?php
// Do some work
?>
<!-- blank line -->
<?php
session_start();
?>
所以:检查你所有的代码echo
,print
等等。此外,检查源代码中的任何关闭 php 标记。如果以上所有内容都对您没有帮助,请在您正在重新生成会话 ID 的地方发布一段代码,这可能会提供更多见解。