PHP会话变量未保留在工作应用程序的开发副本上


PHP Session variables not preserved on a dev copy of a working app

你好,亲爱的stackoverflowians,

我必须说,这是一个奇怪的问题。这里有一个关于什么有效,什么无效的小介绍。

我需要修改现有的网络应用程序,所以为了不把事情搞砸,我正在制作一个副本。副本的Web根目录与原始Web根目录位于同一目录中。原创作品还不错。会话没有问题,但是对于副本,存在一个巨大的问题。会话根本不起作用。我检查了许多以前提出的与相关主题有关的问题,但其中大多数都很容易解决(在脚本开头放session_start(((。

我编辑了index.php文件,并将此代码放在的开头

<?php 
  session_start();
  var_dump($_SESSION);
  $_SESSION["test"]=1;
  die();

这是一个测试代码,用于查看是否要保存一个简单会话。刷新后,"测试"应该在会话var_dump((输出中,但它不是。

你能告诉我从哪里开始吗

is_writable(session_save_path()) //returns TRUE

我尝试更改session_save_path(directory_with_777_privileges(。正在创建会话文件。有些是空的,有些不是。100%正确的是,php在使用原始web应用程序(甚至是index.php脚本(的副本时无法访问创建的会话。

这就成功了:

session_set_cookie_params(0, '/', 'example.com', false, false);
session_set_cookie_params(0, '/', 'example.com', false, false);

所以,问题是php.ini文件强制php只使用安全cookie。上面的一行覆盖了它。