$ _SESSION变量设置不正确,如何解决?

时间:2019-06-18 11:42:38

标签: php session wamp

我正在运行WAMP服务器3.1.9(PHP 7.2.18,Apache 2.4.39),并且关于PHP会话存在以下问题。 考虑以下代码:

test1.php:

<?php 
session_start();
$_SESSION['test'] = 1;
echo $_SESSION['test']." set";
?>

test2.php:

<?php
session_start();
echo $_SESSION['test'];
$_SESSION['test'] = 2;
?>

当我使用浏览器并加载test1.php时,得到的输出“ 1 set”与预期的一样。但是,当我立即加载test2.php时,我得到的是“ 2”而不是“ 1”。就像test2.php已经执行了两次,第二次允许输出一样。我不确定是什么原因导致了这种现象。请帮忙。

1 个答案:

答案 0 :(得分:-3)

会话密钥$_SESSION['test']与之相同,因此在浏览器中不起作用。如果在不同的浏览器中打开这些文件,那么它将起作用,除了您需要同时使用不同的密钥,这意味着如果将会话设置为名为test,则不能在另一个会话中使用“测试”密钥。 使用会话就像在编码中看到的那样

test1.php:

    <?php 
     session_start();
     $_SESSION['test'] = 1;
     echo $_SESSION['test']." set";
    ?>

test2.php:

    <?php
     session_start();
     echo $_SESSION['another-test'];
     $_SESSION['another-test'] = 2;
    ?>

如果要使用相同的密钥,则需要销毁使用函数...存储的上一个会话。

session_destroy();

unset($_SESSION['test']);