【问题标题】:PHP _Session variable no longer persistatePHP _Session 变量不再持续存在
【发布时间】:2017-10-16 06:58:28
【问题描述】:

我编写了一个过去 3 个月一直在工作的代码。现在突然间,我注意到我的 PHP _Session 变量不再存在于我登录的不同页面之间。请注意,代码实际上适用于本地,但不适用于我的服务器(papahost)。

这是我正在尝试做的一个非常简单的版本(会话从 A 类持续到 B):

类函数.php

<?php 
function sec_session_start()
{
        //other code goes here 
        session_name('sec_session_id');
        $secure = SECURE;

        // This stops JavaScript being able to access the session id.
        $httponly = true;

        if (ini_set('session.use_only_cookies', 1) === FALSE) 
        {
           header("Location: ../error.php?err=8");
           session (ini_set)
           exit();
        }
       $cookieParams = session_get_cookie_params();
       session_set_cookie_params($cookieParams["lifetime"], 
       $cookieParams["path"], 
       $cookieParams["domain"], $secure, $httponly);
       //end of other code
    session_start();
}
?>



a.php 类

<?php 
include_once 'function.php';
sec_session_start();
$_SESSION["test"] = "this is a test";
$url = "b.php";
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
echo '</noscript>'; 
exit;
?>



类 b.php

<?php 
include_once 'includes/functions.php';
sec_session_start();
echo($_SESSION["test"]); 
?>

class b.php 的预期输出是“这是一个测试”,但在我的服务器上实际输出是“”,因为由于未知原因,会话数据不是持久的。正如我所说,它在本地完美运行。任何人都知道可能是什么问题?可能是 php.it 的问题还是我错过的 CPanel 属性?

我注意到 PHPSESSID 在 function.php 中执行 session_start() 行后没有创建。

感谢您的帮助!

【问题讨论】:

    标签: php session server


    【解决方案1】:

    session_start() 带到$secure = SECURE;sec_session_start()。您不应该在session_start() 之前定义和分配任何变量。

    编辑:实际上尝试将其逐步提升到更高级别,并以某种方式与其他会话功能结合使用。在它之前不要使用任何标题。

    编辑:见here(第1点)第二行session_start()引起的大问题,解决起来很简单。

    【讨论】:

    • 感谢您的帮助!我终于发现我的代码中有一个隐藏字符完全禁用了我的应用程序!此外,我用你的提议更新了我的代码,现在它可以完美运行了!!
    • @PhilippeSéguin-Boies 我很好奇您将session_start() 与其他会话函数和变量相关联的位置。您能否以某种方式向我展示您的相关工作代码?谢谢。
    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多