我在第一个php文件中编写了一个简单的$ _SESSION变量代码:
<?php
session_start();
$_SESSION["name"] = "John";
?>
并在另一个php文件中呈现:
<?php
session_start();
echo $_SESSION["name"];
?>
但之后我使用session_unset()
;和session_destroy()
;之后,我无法呈现任何新的$_SESSION
变量,也无法呈现现有变量。我使用Microsoft WebMatrix程序和Chrome作为主浏览器。有什么建议?提前谢谢。
答案 0 :(得分:0)
那是因为session_destroy();销毁当前会话并向浏览器发送标头以删除会话变量。同时在服务器上删除会话(在PHP中),并且不再使用$ _SESSION变量。您始终可以尝试将$ _SESSION保存在另一个变量中;
session_start();
$_SESSION['test'] = 'foo';
下一页:
session_start();
$saveSession = $_SESSION;
session_destroy();
var_dump($_SESSION); //Gives an empty array
var_dump($saveSession); //Still has ['test' => 'foo']
更多信息:http://php.net/manual/en/function.session-destroy.php和http://php.net/manual/en/book.session.php
另外,旁注,如果合并PHP标签,则无需打开和关闭它们;
<?php
session_start();
echo $_SESSION["name"];
?>
与
一样有效 <?php
session_start();
?>
<?php
echo $_SESSION["name"];
?>