gpt4 book ai didi

session - CakePHP:单个域上的多个安装;登录 session 共享问题

转载 作者:行者123 更新时间:2023-12-04 03:01:49 25 4
gpt4 key购买 nike

我已将 CakePHP 安装到子目录中,它们似乎运行良好!它们都有不同的 database.php 配置文件并访问不同的数据库。

示例:

  1. public_html/cakephp1/
  2. public_html/cakephp2/

我使用 http://www.example.com/cakephp1/ 单独访问它们和 http://www.example.com/cakephp2/一切看起来都很好。

当我登录其中一个(使用 CakePHP 标准 Auth/Session 组件)时出现问题,当我切换到另一个安装时,它也认为我是我已经登录了!

如何防止这种情况发生?推荐的解决方案是什么?如果我在每次安装中更改 salt 值会有帮助吗?

编辑:

嗨,马丁,我刚刚尝试了更改 core.php 以使用“蛋糕” session 处理并指定 cookie 路径的方法。所以现在在每个应用程序中我都有不同的 core.php 文件,如下所示:

cakephp1的core.php

Configure::write('Session', array(
'defaults' => 'cake',
'ini' => array(
'session.cookie_path' => '/cakephp1'
)
));

cakephp2的core.php

Configure::write('Session', array(
'defaults' => 'cake',
'ini' => array(
'session.cookie_path' => '/cakephp2'
)
));

但仍然不起作用,并且两个安装似乎仍然共享同一个 session 。我应该在哪里查看 cookie 是否真的被创建了?我检查了每个/cakephp1 和/cakephp2 下的文件夹 tmp/sessions,但该文件夹始终为空。

编辑:修改AppController:

马丁,请帮我建议还可以去哪里寻找。我按照您的代码进行操作,如下所示:

下面是我的/demo/安装中的代码(位于 public_html/demo/)你能告诉我在哪里可以找到应该用你的代码创建的cookie吗?

如果它应该位于 public_html/demo/app/tmp/sessions,那么即使在登录后我也看不到任何东西。除了标准 CakePHP 文件夹之外,public_html/demo/下也没有任何东西。

这是来 self 的/demo/安装的 AppController,可通过 http://www.example.com/demo/ 访问与 http://www.example.com/tst/ 处的其他安装相反

public $components = array(
//'DebugKit.Toolbar',
'Cookie',
'Session',
'Auth'=>array(
//Stuff
)
}

public function beforeFilter() {
//Logic placed here will run before the action is run
parent::beforeFilter();
$this->Cookie->path = '/demo/';

}

core.php 设置为默认值:

Configure::write('Session', array(
'defaults' => 'php'
));

最佳答案

您需要将每个应用程序中的 cookie 限制在其各自的子目录中。例如,在您的 AppController.php 中,您可以在 beforeFilter() 操作中执行此操作:

<?php

class AppController extends Controller {

public $components = array(
'Cookie',
);

public function beforeFilter() {
parent::beforeFilter();
$this->Cookie->path = '/cakephp1/';
}

}

参见http://book.cakephp.org/2.0/en/core-libraries/components/cookie.html#controller-setup了解更多详情。

关于session - CakePHP:单个域上的多个安装;登录 session 共享问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25380357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com