php - 无法重新生成 session ID zend 框架 2?

标签 php session zend-framework2 zfcuser

我在管理面板中使用了 ZFcuser 模块。当我登录到管理面板时,它会返回这样的错误:

警告:session_regenerate_id():无法重新生成 session ID - header 已在第 260 行的/home/public_html/dev/vendor/zendframework/zendframework/library/Zend/Session/SessionManager.php 中发送

这在我的本地 Windows 系统中运行良好,但在我的 Linux 托管服务器中运行时返回此类警告。

需要帮助来解决这个问题。提前致谢。

最佳答案

您可以使用 ZF2 SessionManager 重新生成您的 session ID:

$manager = new Zend\Session\SessionManager;
$manager->regenerateId();

但是,您的错误很可能不是由这个函数引起的,而是因为其他原因。 session 管理(session_start() 或重新生成 session ID)只有在您没有使用 echo 或在那段代码之前类似的东西时才有可能:

例如,这将失败:

<?php
echo 'Hello';
session_start();

另一方面,这会起作用:

<?php
session_start();
echo 'Hello';

打开和关闭 php 标签时必须非常小心。如果您的类中有任何结束 php 标记,请将其删除。如果此后有空行,它将被解释为响应中返回的文本,这会导致 session 出现问题。这也会失败:

<?php
// Do some work
?>
<!-- blank line -->
<?php
session_start();
?>

因此:检查所有代码是否有 echoprint 等等。此外,检查源代码中是否有任何结束 php 标记。如果以上所有内容对您没有帮助,请在您重新生成 session ID 的地方发布一段代码,这可能会提供更多见解。

关于php - 无法重新生成 session ID zend 框架 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21496966/

相关文章:

java - 增加 session 一些值(value)

c# - 将 MSSQL GetUTCDate() 转换为 PHP/Unix/MySQL Ticks

php - 如何使用插件、add_filter 删除或更改 wordpress 中的 &lt;title&gt; 标签?

mamp上的 session 问题

php - 如何包含zend框架?

php - Zend Framework 2 Db\Adapter\Adapter 查询结果集像 ZF1

php - 无法执行语句(42S22 - 1054 - '' 中的未知列 'field list')zf2

php - Laravel 5 Sql 异常,但 SQL 运行正常?

php - 数据表搜索框不起作用

php - 为什么 PHP Symfony sfSessionStorage::initialize 有时需要很长时间?