本文实例讲述了CakePHP框架Session设置方法。分享给大家供大家参考,具体如下:
CakePHP Session 存储选项
CakePHP提供给用户了3种Session数据保存方式:
1. CakePHP安装目下的临时文件;
2. 采用PHP的默认机制;
3. 或者序列化到数据库中.
对应的设置在core.php中分别为:
define('CAKE_SESSION_SAVE','php'); # 设置为'cake',保存session到 /cakedistro/tmp目录 # 设置为'php',采用PHP的缺省路径 # 设置为'database', |
默认采用PHP的机制.
如果选择在数据库中存储,需要在数据库中建立一张表,在/app/config/sql/sessions.sql有创建数据库的sql脚本.
无论选择哪种Session存储方式,CakePHP的组件方法操作基本一致:
CakePHP Session Component用来与Session进行交互:包括基本的Session读写,通过Session来提示错误、发出提示消息等等.
Session Component在所有 Cake controller 中默认可用.
check(string $name);
检查Session中是否已有$name为键值的数据项.
del(string $name);
delete(string $name);
删除$name 指定的 Session 变量。
error
返回最近由 Cake Session Component 产生的错误,常用于调试。
flash(string $key='flash');
返回最后一条Session中用 setFlash() 设置的消息。如果 $key 已设置,将返回最近存储于其中的消息.
read(string $name);
返回 $name 变量值。
renew
通过创建新的seesion ID,删除原有的ID,将原有Session中信息更新到新的Session中。
setFlash(string $flashMessage, string $layout='default', array $params, string $key='flash');
将$flashMessage 中的信息写入Session(供之后的flash()方法来获取)。
如果 $leyout 设置为 “default”,该消息被存储为 '
'.$flashMessage.'
'。如果$layout 设置为 '',该消息将按原样保存。如果 $layout 为其他值,该消息以 $layout 所指定的格式保存在 Cake view里。
$params 参数会在未来版本中赋予功能。
$key 允许在键下存储提示消息,flash() 是基于键来读取消息的。
valid当Session有效时返回true,最好在read()操作前用它来确定你要访问的会话是否确实有效.
write(string $name, mixed $value);
将变量 $name,$value写入会话.