会话变量未被设置/销毁

时间:2016-08-01 07:52:56

标签: php session

在我的实时服务器上,我有一个文件夹结构,如下所示:

- index.php
- unset.php
- info.php
- deep/
-- index.php

我用来查看会话变量是否设置的index.php中的代码如下:

<?php
    session_start();
    print session_id();
    print "dev <br>";
    echo '<pre>';
    print_r($_SESSION);
    echo '</pre>';
?>

我用来设置会话变量的deep/index.php中的代码如下:

<?php
    session_start();
    print session_id();
    $_SESSION['usr'] = "bro";
    echo '<pre>';
    print_r($_SESSION);
    echo '</pre>';
?>

最后是取消会话的unset.php文件。文件中的代码是:

<?php
    session_start();
    echo "<br>";
    echo session_id();
    echo "<br>";
    session_unset();
    session_destroy();
    header("Location:/");
?>

问题

如果你去http://test.haidrr.com 您将看到显示空数组的/index.php文件,因为尚未设置会话变量。请注意顶部的session_id()。现在,如果您转到/deepindex.php文件将设置会话变量,该变量将显示在数组中。 好了,现在回到/,如果你很幸运,你会看到数组中的会话变化。 (有时我没有看到,有时它有效,有时却没有)。尝试/unset.php变量,会话变量仍然存在。

此示例在我的localhost上完美运行。我还添加了info.php文件,该文件具有phpinfo()功能。

2 个答案:

答案 0 :(得分:1)

我想我可以看到会话设置在以下链接上。

http://test.haidrr.com/deep/

请您尝试使用以下内容取消会话。

unset($_SESSION['usr']);
session_destroy();

如果您仍然发现问题,请告诉我

答案 1 :(得分:0)

我在服务器上遇到了同样的问题,但在看到cpanel内存已经满了之后..我删除了一些日志文件和临时文件。会话将正常工作..

请检查服务器的内存,如果没有空,请删除临时文件。