我有一个脚本位于app / webroot / myscript / antispam.php
代码就像
@session_start();
$_SESSION['my_anti_spam'] = 'myantispam';
但是当我尝试从pagescontroller中读取它时,
@session_start();
debug($_SESSION);
它没有任何会话。
我该怎么办?如何从控制器中读取写在webroot文件夹上的会话?
答案 0 :(得分:0)
您不需要在Cake中调用会话启动,它会自动调用它。
在您的反垃圾邮件脚本中,您将需要以下内容:
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
)
));
答案 1 :(得分:0)
为什么需要在webroot索引文件中设置会话?如果你想在整个项目中使用这个会话,请在appController beforeFilter方法中添加会话。
答案 2 :(得分:0)
您可以将其放在控制器上或查看:
$this->Session->write('my_anti_spam', 'myantispam');
然后您可以通过以下方式阅读会话:
<?php echo $this->Session->read("my_anti_spam");?>
您可以通过以下方式销毁会话:
$this->Session->delete('my_anti_spam');