您是否知道,如果您在同一域的Cakephp中运行同一应用程序的多个实例,它们将共享同一会话?例如,假设您有在以下位置运行的实例:
www.example.com/instance1和www.example.com/instance2
如果您登录第一个实例并访问instance2,将会看到已经登录。这是因为Cakephp默认情况下使用PHP Session存储机制。
如果这不是您期望的行为,则Cakephp允许您从三个选项中选择会话处理方法:php(默认),cake和数据库。当前方法存储在app / config / core.php中的Session.save变量中。
将方法从php更改为cake将使Cakephp将Session变量存储在app / tmp / sessions目录中。如果这样做,请记住创建该目录并为其赋予适当的权限。
贴吧,您要做的就是为每个Cakephp实例拥有单独的会话。
小智 5
请打开core.php并更改应用程序Cookie路径,然后将根据应用程序Cookie路径存储会话。对于www.example.com/instance1
Configure::write('Session', array(
'defaults' => 'database',
'ini' => array(
'session.cookie_path' => '/instance1',
),
'cookie' => 'instance1',
'cookieTimeout' => 0,
'checkAgent' => false
));
Run Code Online (Sandbox Code Playgroud)
对于www.example.com/instance2
Configure::write('Session', array(
'defaults' => 'database',
'ini' => array(
'session.cookie_path' => '/instance2',
),
'cookie' => 'instance2',
'cookieTimeout' => 0,
'checkAgent' => false
));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1214 次 |
最近记录: |