CakePHP 在蛋糕外继续会话
CakePHP continue session outside cake
我正在尝试在应用程序外部继续 CakePHP 会话。
CakePHP 会话配置:
Configure::write('Session', array(
'checkAgent' => false,
'defaults' => 'cake',
'timeout' => 10080, // 1 week,
'ini' => array(
'session.cookie_httponly' => 1,
)
));
cakephp_webroot/test_session.php:
<?php
session_name("CAKEPHP");
session_start();
var_dump($_SESSION);
?>
test session.php 应该输出蛋糕会话,但它不起作用。我已经验证了 cookie CAKEPHP 存在。
您正在使用 cake
默认值进行会话处理,它们与 PHP 默认值不兼容(可作为 php
用于 defaults
选项)。
cake
配置使用自定义保存路径并强制使用 cookie。
https://github.com/cakephp/.../Datasource/CakeSession.php#L600-L612
// ...
'cake' => array(
'cookie' => 'CAKEPHP',
'timeout' => 240,
'ini' => array(
'session.use_trans_sid' => 0,
'url_rewriter.tags' => '',
'session.serialize_handler' => 'php',
'session.use_cookies' => 1,
'session.cookie_path' => self::$path,
'session.save_path' => TMP . 'sessions',
'session.save_handler' => 'files'
)
),
// ...
因此,要么将您的外部脚本会话使用配置为与 cake
默认值相同,要么使用 php
默认值,并通过您的 PHP ini 配置进行控制。
另见
我正在尝试在应用程序外部继续 CakePHP 会话。
CakePHP 会话配置:
Configure::write('Session', array(
'checkAgent' => false,
'defaults' => 'cake',
'timeout' => 10080, // 1 week,
'ini' => array(
'session.cookie_httponly' => 1,
)
));
cakephp_webroot/test_session.php:
<?php
session_name("CAKEPHP");
session_start();
var_dump($_SESSION);
?>
test session.php 应该输出蛋糕会话,但它不起作用。我已经验证了 cookie CAKEPHP 存在。
您正在使用 cake
默认值进行会话处理,它们与 PHP 默认值不兼容(可作为 php
用于 defaults
选项)。
cake
配置使用自定义保存路径并强制使用 cookie。
https://github.com/cakephp/.../Datasource/CakeSession.php#L600-L612
// ...
'cake' => array(
'cookie' => 'CAKEPHP',
'timeout' => 240,
'ini' => array(
'session.use_trans_sid' => 0,
'url_rewriter.tags' => '',
'session.serialize_handler' => 'php',
'session.use_cookies' => 1,
'session.cookie_path' => self::$path,
'session.save_path' => TMP . 'sessions',
'session.save_handler' => 'files'
)
),
// ...
因此,要么将您的外部脚本会话使用配置为与 cake
默认值相同,要么使用 php
默认值,并通过您的 PHP ini 配置进行控制。
另见