将php会话保存在不同目录中的问题

Posted

技术标签:

【中文标题】将php会话保存在不同目录中的问题【英文标题】:Problem with saving php sessions in different directory 【发布时间】:2019-10-16 02:23:31 【问题描述】:

我正在努力将我的会话保存在不同的目录中。 我在 OVH 中有一个共享服务器。默认会话保存路径为/tmp,我想更改它。

在我的根目录中,我有 www 文件夹,这是我的主要网站文件夹。我在它旁边创建了“会话”文件夹,chmoded 777。 当我在做print_r(scandir('/home/expressptp/sessions/')); 时,我得到的文件很好,但是当我尝试session_save_path('/home/expressptp/sessions'); 时,那里什么也没有出现。

完整代码如下所示:

    session_save_path('/home/expressptp/sessions');
    session_start();

    echo session_id();
    $_SESSION["test"] = "test";

    echo session_save_path(); //that prints good path

但问题是文件夹sessions 中没有会话:(

我什么都试过了。我把'sessions'文件夹放在'www',chmod 777,用realpath(dirname($_SERVER['DOCUMENT_ROOT'])设置路径等等。

如果您有任何想法,我将不胜感激。

【问题讨论】:

【参考方案1】:

在您尝试此代码之前,您确定您的代码中没有任何内容开始输出(“echo”或 html 标记或文本)到浏览器吗?

很多时候 session/header/cookie 函数不能像预期的那样工作...

此外,许多主机提供商确实限制了此类配置,您是否检查过 session_save_path() 功能是否被禁用,或者 OVH 是否明确禁止这种配置更改?

【讨论】:

以上是关于将php会话保存在不同目录中的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 PHP 中的会话数据将用户重定向到不同的页面?

PHP 会话数据未保存

IPython Notebook 会话中的多个目录和/或子目录?

PHP 会话,为啥 session_start() 需要多次?

PHP 会话管理

PHP:在标头重定向之前会话未保存