我发现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_regenerate_id()之前调用session_destroy,或者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();
&GT;
答案 0 :(得分:0)
放置
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,'/');
希望这有帮助
答案 1 :(得分:0)
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 :(得分:-1)
你应该先破坏会话。试试这个:
session_destroy();
session_unset();
setcookie(session_name(), null, 0, "/");