【发布时间】: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
-
你好,最好选择一个答案,这样这个问题就可以结束了:)