cakephp学习之多页面传值
昨天遇到这样一个问题:网站会员中心存在几个导航页面,假设为:a_controllers下的1.ctp与2.ctp页面;b_controllers下的1.ctp;c_controllers下的1.ctp与2.ctp页面。设定会员进入后只能先访问a_controllers下的1.ctp页面。
这样的话就需要一个可以多页面传值来实现判断跳转问题,于是查找cake/libs/session.php文件中的方法函数,发现果然存在write()和read()方法,具体应用实例如下:
//将值写入session
$this->Session->write('school_id',$this->School->saveValues($this->data));
$school_id = $this->Session->read('school_id');
// 将值由session读出
$school_id = $this->Session->read('school_id');
if(empty($school_id)){
$this->redirect(array('controller' => 'schools','action' => 'school_error_center'));
}
有一点值得注意一下:cakephp框架默认将session有效时间设置为120s。如自己有特殊需要,可以在core.php文件中自行修改即可。
附:为了防止不同controllers跳转问题,在页面刷新跳转时特意指定'controller' => 'schools'控制条件。
php页面1s后自动跳转代码 :
<?php
echo "<META HTTP-EQUIV=\"Refresh\"CONTENT=\"1; URL=".DOMAIN."/schools/school_add_center\">";
?>
sessions参考访问:
http://book.cakephp.org/cn/view/399/write
http://book.cakephp.org/cn/view/401/read