Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 会话\u重新生成\u id与会话\u销毁不一起工作_Php_Session - Fatal编程技术网

Php 会话\u重新生成\u id与会话\u销毁不一起工作

Php 会话\u重新生成\u id与会话\u销毁不一起工作,php,session,Php,Session,我发现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号

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

谢谢大家,在测试之后,我发现必须在会话重新生成id之前调用会话重新生成id,否则会话重新生成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();   
?>

地点

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();
session_unset();
setcookie(session_name(), null, 0, "/");

第二个返回2个相同的会话idHello,选择一个答案就可以结束这个问题了:我的答案怎么了?如果你投了反对票,请解释为什么要帮助改进。
session_destroy();
session_unset();
setcookie(session_name(), null, 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();