session_regenerate_id 不能与 sesion_destroy 一起使用 [英] session_regenerate_id doesnt work together with sesion_destroy

查看:43
本文介绍了session_regenerate_id 不能与 sesion_destroy 一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I found session_regenerate_id will not work it together with session_destroy(), please see this one works

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

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

this one failed, return 2 same session id numbers

<?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,第二个是推荐的生成新会话的方法,但为什么它在我这边不起作用.

I use php 5.3.3, the second one is a recommended method to produce a new session, but why it does not work on my side.

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

thanks everyone,after tests, I found session_destroy must be invoked before session_regenerate_id(), or session_regenerate_id never works.

<?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();   

?>

推荐答案

地方

session_unset();

上面的 session_destroy();或删除 session_unset();完全地.当您正在销毁会话时.

above session_destroy(); or remove session_unset(); completely. As you are destroying the session.

试试这个代码:

<?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() 之后添加以下代码

You can also add in the following code after session_destroy() if you wish

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

希望能帮到你

这篇关于session_regenerate_id 不能与 sesion_destroy 一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆