在cakephp 2页控制器中读取用webroot编写的会话
我在app/webroot/myscript/antispam.php中有一个脚本 代码就像在cakephp 2页控制器中读取用webroot编写的会话,php,session,cakephp,cakephp-2.0,Php,Session,Cakephp,Cakephp 2.0,我在app/webroot/myscript/antispam.php中有一个脚本 代码就像 @session_start(); $_SESSION['my_anti_spam'] = 'myantispam'; 但是当我试着从pagescontroller读到它时 @session_start(); debug($_SESSION); 它没有任何会话 我该怎么办?如何从controller读取写入webroot文件夹的会话?您不需要在Cake中调用会话start,它会自动调用它 在反垃圾邮
@session_start();
$_SESSION['my_anti_spam'] = 'myantispam';
但是当我试着从pagescontroller读到它时
@session_start();
debug($_SESSION);
它没有任何会话
我该怎么办?如何从controller读取写入webroot文件夹的会话?您不需要在Cake中调用会话start,它会自动调用它 在反垃圾邮件脚本中,您将需要以下内容:
define('DS', DIRECTORY_SEPARATOR);
session_save_path(dirname(dirname(dirname(__FILE__))) . DS . 'tmp' . DS . 'sessions');
session_name('CAKEPHP');
session_start();
这假设您正在app/tmp/sessions目录中存储会话,即在app/Config/core.php文件中有类似的内容:
Configure::write('Session', array(
'defaults' => 'cake',
'timeout' => 6 * 60, // Timeout in minutes
'autoRegenerate' => false,
'ini' => array(
'session.cookie_secure' => false
)
));
为什么需要在webroot索引文件中设置会话?如果您想在整个项目中使用此会话,请在appController beforeFilter方法中添加会话。您可以将其放在控制器或视图上:
$this->Session->write('my_anti_spam', 'myantispam');
然后,您可以通过以下方式阅读会话:
<?php echo $this->Session->read("my_anti_spam");?>
$this->Session->delete('my_anti_spam');
检查是否在调用会话启动pagescontroller@JasonOOO是的,有。检查我的更新代码试试这个:如果SESSION_start{$_SESSION['my_anti_spam']='myantispam';}否则echo'SESSION notstart'@jasonoo我把它放在antispam.php上,仍然不起作用