【问题标题】:Session Variables are not being set/destroyed会话变量没有被设置/销毁
【发布时间】:2016-08-01 07:52:56
【问题描述】:

在我的实时服务器上,我有一个像这样的文件夹结构

- 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 变量,会话变量仍然存在。

这个例子在我的本地主机上完美运行。我还包含了一个具有phpinfo() 函数的info.php 文件。

【问题讨论】:

    标签: php session


    【解决方案1】:

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

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

    您能否尝试以下操作以取消设置会话。

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

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

    【讨论】:

    • 你能看到会话集吗,回到/
    • 是的,我也可以看到这个会话。 test.haidrr.com我更新了代码,请立即查看
    • 我可以在两个屏幕上看到会话设置test.haidrr.com/deeptest.haidrr.com/index.php 并且会话也被 unset.php 取消设置。我认为您正在尝试从项目目录中访问会话。
    • 你是什么意思,“出项目目录”?我没有看到任何工作。好的,正在设置变量,但没有取消设置!
    • 如何访问“index.php”。我就去test.haidrr.com服务器不应该默认为我提供index.php吗?
    【解决方案2】:

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

    请检查服务器内存,如果不为空,请删除临时文件。

    【讨论】:

    • 我只用了 1000MB 中的 14MB,我不认为内存有问题
    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2016-08-09
    • 2012-04-15
    • 2018-01-21
    • 2019-01-26
    相关资源
    最近更新 更多