保持session_destroy()之后,会话变量
问题描述:
从我logout.php:保持session_destroy()之后,会话变量
<?php require_once("includes/session.php"); ?>
<?php require_once("includes/functions.php"); ?>
<?php
if (isset($_SESSION['colony_id']))
$cookie = $_SESSION['colony_id'] ;
$_SESSION = array();
if(isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();
//this fails- session_start() ;
if (!empty($cookie))
$_SESSION['colony_id'] = $cookie ;
// redirect_to("login.php?logout=1");
?>
我要结束当前会话,然后开始一个新的会话,从旧的会话,在新的变量之一会话。我尝试添加第二个session_start语句,但没有任何效果。我还可以做些什么 ?
感谢
编辑:我决定重定向到一个新的页面,其上一个新的session_start()语句创建一个新的会话
答
你可以把会话变量成为一个正常的变量,然后摧毁会话并在创建新会话后将其放回到会话中。
答
如果你想要保存一个变量,并且绝对想要销毁会话: 将该变量保存到本地变量,销毁会话,启动会话,然后重新加载会话变量...
$localvar = $_SESSION['variable'];
session_destroy();
session_start();
$_SESSOIN['variable'] = $localvar;
只能清除会话变量。 $ _SESSION = array() – dqhendricks 2011-01-08 06:58:36
以何种方式添加另一个`session_start`没有任何影响?你如何测试你的预期?你期望什么行为? – Gumbo 2011-01-08 07:19:47
我检查了是否创建了新的会话cookie。不是。 – 2011-01-08 07:22:17