0

我有一个使用 Cakephp 开发的应用程序。该会话在本地主机上也可以正常工作。我看到可以设置会话,并在 localhost 中读取,我还可以看到会话文件创建为 php.ini 中定义的 sesssion_save_path。

首先,我写了一个小的会话检查 php 文件来测试共享主机,我 100% 确定共享主机在会话中没有问题。

但是,会话似乎无法在共享主机上运行。我可以设置一个会话,我也可以看到在主机上创建的会话文件,但是当我刷新它时,执行:$this->Session->read("User.id"); $this->Session->check("User.id");

空无一物。

我应该怎么办?它与 cakephp 缓存有关吗?

4

2 回答 2

3

首先我们要提一下,我们不是 CakePHP 专家,所以我们可能无法提供最佳答案。

我们使用以下示例脚本/控制器在共享主机环境中测试了 CakePHP 2.2 中的会话:

 public function index() {//The default action for a CakePHP controller
    CakeSession::start();

    echo 'Hello world.<hr/>';

    // test that the session actually works
    $counter = 0;
    if ( $this->Session->check('counter') ) {
      $counter = $this->Session->read('counter');
    } else {
      echo 'Creating session' . PHP_EOL;
    }

    ++$counter;

    $this->Session->write('counter', $counter);

    echo "You were here {$counter} time(s)\n\n";
    var_dump($this->Session->read('counter'));
  }

似乎会话数据已正确保存和读取。如果您在 ICDSoft 服务器上安装 CakePHP 时仍有问题,我们建议您联系我们的支持团队。我们可能并不总是能够提供适当的调试支持,但我们总是愿意尝试。

此致,

ICDSoft 团队

于 2012-10-15T10:01:42.063 回答
0

查看分配给浏览器的 CakePHP cookie 以查看会话 ID 是否不断变化。如果是这样,那么您的会话不会被持久化。

其次,可能值得检查$_SESSION超全局是否也可用。

于 2012-10-15T12:38:52.087 回答