[英]CakePhp 3.x Continue session from out of the app
我正在cakephp 3.x中構建網站的新版本 。 由於我分階段進行重建,因此需要新站點和舊站點之間進行交互。 目前最好的方法是使用$ _SESSION 。 我的問題是,cakephp部分將進行一個新會話,而不是使用本機PHP部分中的活動會話。 它將它寫在同一文件夾中。
這是我在cakephp中的app.php設置
'Session' => [
'defaults' => 'php',
'timeout' => '2000',
'ini' => [
'session.cookie_domain' => '.domain.com',
'session.save_path' => '/var/www/clients/web/tmp',
'session.name' => 'PHPSESSID'
]
],
這些是我的php.ini設置
Session Support enabled
Registered save handlers files user memcache memcached
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file /dev/urandom /dev/urandom
session.entropy_length 32 32
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 0 0
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/www/clients/web/tmp /var/www/clients/web/tmp
session.serialize_handler php php
session.upload_progress.cleanup On On
session.upload_progress.enabled On On
session.upload_progress.freq 1% 1%
session.upload_progress.min_freq 1 1
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix upload_progress_ upload_progress_
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 0 0
如果設置了session.name
ini選項,則會被session configs cookie
選項覆蓋(如果設置了defaults
選項,默認情況下將被覆蓋)。
默認情況下,會話類實例是通過Session::create()
,使用會話配置,如果使用defaults
optin,則繼承相應的CakePHP會話默認defaults
。 所有可用的默認值都定義cookie
選項,其值為CAKEPHP
。 php
默認值目前看起來像
'cookie' => 'CAKEPHP',
'ini' => [
'session.use_trans_sid' => 0,
]
https://github.com/cakephp/cakephp/blob/3.1.5/src/Network/Session.php#L131-L136
cookie
選項(如果存在)將覆蓋會話類的構造函數中的session.name
ini選項,因此您的PHPSESSID
設置將丟失,因此現有會話將不被使用。
cookie
選項,或者不繼承默認值 因此,您可以使用cookie
選項代替session.name
'Session' => [
'defaults' => 'php',
'cookie' => 'PHPSESSID',
'timeout' => '2000',
'ini' => [
'session.cookie_domain' => '.domain.com',
'session.save_path' => '/var/www/clients/web/tmp'
]
],
或不繼承默認值,而是自行定義所有必要的內容
'Session' => [
'timeout' => '2000',
'ini' => [
'session.cookie_domain' => '.domain.com',
'session.save_path' => '/var/www/clients/web/tmp',
'session.name' => 'PHPSESSID',
'session.use_trans_sid' => 0
]
],
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.