【问题标题】:session_regenerate_id doesnt work together with sesion_destroysession_regenerate_id 不能与 session_destroy 一起使用
【发布时间】:2012-10-09 11:19:19
【问题描述】:

我发现 session_regenerate_id 不能和 session_destroy() 一起工作,请看 这个有效

<?php
   session_start();
   $old='old is: '.session_id();
   session_regenerate_id(true);
   echo $old;
   echo '<br>';
   echo 'new is: '.session_id();     
?>

这个失败,返回2个相同的会话ID号

<?php
   session_start();
   $old='old is: '.session_id();
   session_regenerate_id(true);
   session_destroy();
   session_unset();
   session_start();
   echo $old;
   echo '<br>';
   echo 'new is: '.session_id();     
?>

我使用php 5.3.3,第二种是推荐的方法来产生一个新的会话,但为什么它在我这边不起作用。

谢谢大家,经过测试,发现session_destroy必须在session_regenerate_id()之前调用,否则session_regenerate_id永远不起作用。

<?php
session_start();
$_SESSION['abc']=12323;
$old='old is: '.session_id();
session_unset();
session_destroy();
session_start();
session_regenerate_id(true);
echo $old;
echo '<br>';
echo 'new is: '.session_id();   

?>

【问题讨论】:

  • 第二个返回2个相同的会话ID
  • 你好,最好选择一个答案,这样这个问题就可以结束了:)

标签: php session


【解决方案1】:
session_start();
$old='old is: '.session_id();
session_destroy();
session_start();
session_regenerate_id(true);
echo $old;
echo '<br>';
echo 'new is: '.session_id();    

【讨论】:

    【解决方案2】:

    地点

    session_unset();
    

    以上 session_destroy();或删除 session_unset();完全地。当您破坏会话时。

    试试这个代码:

    <?php
       session_start();
       $oldSessionId ='Old session ID is: ' . session_id() . '<br />';
       echo $oldSessionId;
       session_destroy();
       session_start();
       session_regenerate_id(true);
       echo 'New session ID is: ' . session_id();     
    ?>
    

    如果您愿意,也可以在 session_destroy() 之后添加以下代码

    setcookie(session_name(),'',0,'/');
    

    希望对你有帮助

    【讨论】:

    • 我的回答有什么问题?如果您投了反对票,请解释为什么要帮助改进。
    【解决方案3】:

    你应该先销毁会话。试试这个:

    session_destroy();
    session_unset();
    setcookie(session_name(), null, 0, "/");
    

    【讨论】:

      猜你喜欢
      • 2013-04-29
      • 2018-08-19
      • 1970-01-01
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-09
      • 2017-04-14
      相关资源
      最近更新 更多