- 浏览: 3319748 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (567)
- Web前端-html/表单 (19)
- Web前端-CSS (24)
- Web前端-CSS框架 (4)
- Web前端-JS语言核心 (50)
- Web前端-JS客户端 (26)
- nodejs生态+grunt (10)
- seajs和requirejs (9)
- backbone等框架 (7)
- 模板基础 (7)
- Web前端-deps(不改动) (6)
- Web前端-component (10)
- Web前端-jquery-plugin (13)
- 浏览器兼容性 (6)
- Web前端-使用jQuery (25)
- Web前端-使用jqueryui (6)
- Web前端-性能优化 (3)
- Web协议-HTTP (6)
- ExtJS (13)
- PHP (22)
- PHP面向对象 (4)
- PHP扩展-SOAP (6)
- PHP扩展-curl (4)
- PHP与HTML(导出) (5)
- PHP扩展-综合 (7)
- mysql基础应用 (18)
- 技术心情 (18)
- 算法和面试题 (17)
- 工具(开发)使用 (36)
- memcached原理 (2)
- session和cookie (4)
- UML (2)
- Web前端_FusionCharts (5)
- Web前端_Flex (4)
- Web前端_JSP (3)
- JavaSE (10)
- JavaEE (4)
- tomcat (2)
- Servlet开发 (3)
- Spring开发 (1)
- REST相关 (2)
- 大访问量、高并发 (2)
- 网络编程 (1)
- YII (21)
- linux命令和内核 (12)
- yii与数据库 (10)
- yii与表单 (12)
- yii view层 (1)
- perl (7)
- yii扩展 (7)
- shell (4)
- photoshop (7)
- 视觉设计 (2)
- 我关注的名人在路上 (4)
- 1-自学能力 (1)
- 2-人际沟通能力 (3)
- 3-职业规划能力 (7)
- 4-项目管理能力 (2)
- python (3)
- django (4)
- Mysql高级应用 (6)
- prototype.js (4)
- Web系统安全 (1)
- Web前端-mobile (2)
- egret (6)
- jQuery源码分析 (5)
- fis (4)
最新评论
-
yzq21056563:
感谢作者分享~请教下,http://www.lisa33xia ...
CSS基础:text-overflow:ellipsis溢出文本 -
u012206458:
$.ajax的error,complete,success方法 -
DEMONU:
谢谢,虽然不能给你赞助,但是要给你顶
mysql中key 、primary key 、unique key 与index区别 -
njupt_tolmes:
阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿凡达阿滕庆亚 ...
CSS基础:text-overflow:ellipsis溢出文本 -
zenmshuo:
用过SpreadJS,也包含数据可视化的图表
推荐几个web中常用js图表插件
作者:zccst
2014-6-10
yii 操作session
http://blog.sina.com.cn/s/blog_664c9f650100yqkt.html
一,在Yii中使用session
1,CHttpSession
与原生态php5的session使用差别是,php5使用session_start();$_session['key'] = $value;
在yii中,session已经被封装。
To start the session, call open(); To complete and send out session data, call close(); To destroy the session, call destroy().
If autoStart is set true, the session will be started automatically when the application component is initialized by the application.
一个实例,
在index.php
在$app->run();前
2,CDbHttpSession
CDbHttpSession继承自 CHttpSession ,把session数据存储在数据库中(表名是YiiSession),
The table name can be changed by setting sessionTableName. If the table does not exist, it will be automatically created if autoCreateSessionTable is set true.
The following is the table structure:
CREATE TABLE YiiSession
(
id CHAR(32) PRIMARY KEY,
expire INTEGER,
data TEXT
)
CDbHttpSession relies on PDO to access database.
By default, it will use an SQLite3 database named 'session-YiiVersion.db' under the application runtime directory. You can also specify connectionID so that it makes use of a DB application component to access database.
When using CDbHttpSession in a production server, we recommend you pre-create the session DB table and set autoCreateSessionTable to be false. This will greatly improve the performance. You may also create a DB index for the 'expire' column in the session table to further improve the performance.
例,在../config/main.php中配置
二,在Yii中使用cookie
Yii实现了一个cookie验证机制,可以防止cookie被修改。启用之后可以对cookie的值进行HMAC检查。
Cookie验证在默认情况下是禁用的。如果你要启用它,可以编辑应用配置 中的组件中的CHttpRequest部分。
一定要使用经过Yii验证过的cookie数据。使用Yii内置的cookies组件来进行cookie操作,不要使用$_COOKIES。
实例:
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
2014-6-10
yii 操作session
http://blog.sina.com.cn/s/blog_664c9f650100yqkt.html
一,在Yii中使用session
1,CHttpSession
与原生态php5的session使用差别是,php5使用session_start();$_session['key'] = $value;
在yii中,session已经被封装。
To start the session, call open(); To complete and send out session data, call close(); To destroy the session, call destroy().
If autoStart is set true, the session will be started automatically when the application component is initialized by the application.
/***** 方式一、实例添加 *****/ $session=new CHttpSession; $session->open(); $value1=$session['name1']; /***** 方式二、直接调用应用添加 *****/ Yii::app()->session->add('name','foobar'); Yii::app()->session->add('name2','foobar'); Yii::app()->session->add('name3','foobar'); //或者 $session = Yii::app()->session; $session['key'] = 'value'; var_dump($session['key']); //遍历 foreach($session as $name=>$value)
一个实例,
$session = new CHttpSession; $session->open(); $user_id = $this->user->id; $sessionKey = $user_id.'_is_sending'; if(isset($session[$sessionKey])){ $first_submit_time = $session[$sessionKey]; $current_time = time(); if($current_time - $first_submit_time < 10){ $session[$sessionKey] = $current_time; $this->response(array('status'=>1, 'msg'=>'不能在10秒钟内连续发送两次。')); }else{ unset($session[$sessionKey]);//超过限制时间,释放session"; } } //第一次点击确认按钮时执行 if(!isset($session[$sessionKey])){ $session[$sessionKey] = time(); } var_dump($sessionKey);var_dump($session[$sessionKey]);exit();
在index.php
在$app->run();前
$session = Yii::app()->session; session_set_save_handler( array($session,'openSession'), array($session,'closeSession'), array($session,'readSession'), array($session,'writeSession'), array($session,'destroySession'), array($session,'gcSession') );
2,CDbHttpSession
CDbHttpSession继承自 CHttpSession ,把session数据存储在数据库中(表名是YiiSession),
The table name can be changed by setting sessionTableName. If the table does not exist, it will be automatically created if autoCreateSessionTable is set true.
The following is the table structure:
CREATE TABLE YiiSession
(
id CHAR(32) PRIMARY KEY,
expire INTEGER,
data TEXT
)
CDbHttpSession relies on PDO to access database.
By default, it will use an SQLite3 database named 'session-YiiVersion.db' under the application runtime directory. You can also specify connectionID so that it makes use of a DB application component to access database.
When using CDbHttpSession in a production server, we recommend you pre-create the session DB table and set autoCreateSessionTable to be false. This will greatly improve the performance. You may also create a DB index for the 'expire' column in the session table to further improve the performance.
CREATE TABLE `YiiSession` ( `id` char(32) NOT NULL, `expire` int(11) default NULL, `data` text, PRIMARY KEY (`id`), KEY `expire` (`expire`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
例,在../config/main.php中配置
'session'=>array( 'class' => 'CDbHttpSession', 'autoStart' => true, 'sessionTableName'=>'YiiSession', 'autoCreateSessionTable'=> false, 'connectionID'=>'db', ),
二,在Yii中使用cookie
Yii实现了一个cookie验证机制,可以防止cookie被修改。启用之后可以对cookie的值进行HMAC检查。
Cookie验证在默认情况下是禁用的。如果你要启用它,可以编辑应用配置 中的组件中的CHttpRequest部分。
一定要使用经过Yii验证过的cookie数据。使用Yii内置的cookies组件来进行cookie操作,不要使用$_COOKIES。
实例:
// 检索一个名为$name的cookie值 $cookie=Yii::app()->request->cookies[$name]; $value=$cookie->value; ...... // 设置一个cookie $cookie=new CHttpCookie($name,$value); Yii::app()->request->cookies[$name]=$cookie;
如果您觉得本文的内容对您的学习有所帮助,您可以微信:
发表评论
-
Yii隐藏index.php文件的步骤
2014-06-14 14:03 12035作者:zccst 1.修改Apache的配置httpd.co ... -
YII异常处理actionError
2014-06-14 08:47 1980zccst转 错误处理目录 1,引发异常 2,显示错误 3, ... -
YII之 redirect 与contoller之间的方法调用
2014-05-31 18:44 11306作者:zccst 一个contoller里怎么调用另一个co ... -
yii中设置默认时区和语言
2013-04-24 16:28 3527作者:zccst 把php从5.2升级到5.4后,发现5. ... -
Yii异常解决办法
2013-04-23 17:15 1189作者:zccst 在Yii的项目中有一个../protect ... -
Yii之HttpRequest相关
2012-08-16 18:35 5121作者:zccst yii中的HttpRequest很像Jav ... -
yii之Log(日志)使用
2012-06-07 19:17 24948作者:zccst Yii 提供了 ... -
Yii之urlManager相关
2012-03-31 13:04 7112作者:zccst 首先urlManager是CUrlMan ... -
yii框架的执行过程
2012-03-11 14:09 3777作者:zccst 二、controllers里的$this ... -
Yii中引入module
2012-03-11 14:06 4973作者:zccst 一、controller与layout/ ... -
Yii->user(当前用户)相关
2012-03-02 17:50 21708作者:zccst 常用的用法是 class Contro ... -
如何在纯js文件中设置yii方式的url地址
2012-02-20 20:56 3338作者:zccst 1,在siteController.ph ... -
Yii使用filter进行访问控制
2012-02-16 19:23 15015Yii使用filter进行访问控制 作者:zccst 在Co ... -
Yii控制层处理结果返回前端的三种方式(render)
2012-01-12 16:28 31331Yii控制层处理结果返回前端的三种方式 作者:zccst ... -
Yii之widget专题
2012-01-12 16:14 11552作者:zccst 关于widgets ... -
Yii中使用session防止重复提交
2012-01-09 12:13 3215表单提交时,由于网速等原因,会出现重复提交的现象。 一、从前 ... -
yii中引入js和css文件
2011-12-29 20:10 35674作者:zccst 四、在视图层(../views/..)添加 ... -
Yii设置分页
2011-12-11 16:41 46261,在../models/NewDemand.php中定义pa ... -
Yii中引入php文件及插件
2011-11-03 14:32 24576作者:zccst 一、设置环境变量(在PHP) echo g ... -
YII初步
2011-06-03 22:19 2407安装过程,文档里有。 一、搭建Yii环境可能遇到的问题 1, ...
相关推荐
在Yii2.0框架中,Cookie和Session是两种常见的用户数据存储机制,它们在Web应用程序中扮演着重要的角色。下面将详细介绍这两种机制的使用方法。 ### Cookie **1. 添加Cookie** Cookie在Yii2中主要通过`yii\web\...
在Yii框架中使用Session和Cookie,可以通过一些内置的方法和组件来实现。Session管理着用户在服务器端的会话状态,而Cookie则用于在客户端存储少量数据,常用于保存用户偏好或者跟踪用户信息等。 在标题中提到的...
在Yii2框架中,实现session跨域名共存的主要目的是确保用户在一个网站登录后,其他关联的网站也能识别其登录状态。这通常涉及到两个核心问题:一是确保客户端(浏览器)能够访问同一个sessionId,二是确保所有涉及的...
它提供了在Swoole环境下运行Yii2的基础设施,包括请求处理、事件监听、session和cookie管理等。 2. **性能提升**:"运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上"表明使用Swoole后,Yii2应用的处理速度和...
在Yii框架中操作Session和Cookie是实现Web应用交互和用户状态管理的重要方面。通过本篇笔记,我们可以了解到Yii框架中如何进行Session和Cookie的初始化、读写、删除等基础操作。掌握这些知识对于开发安全、高效的Web...
在实际开发中,了解Yii框架下cookie和session的操作对于数据持久化和用户状态管理是非常有帮助的。开发人员在使用Yii框架进行开发时,往往需要处理用户的登录状态、网站浏览偏好等信息。对于登录状态的管理,通常...
在一些情况下,例如网站的会员管理中心与普通用户的访问需要区分对待,就可能需要为前台会员提供一个独立的登录验证机制,并且要将相关信息存储在不同的session或cookie中。 Yii框架中的用户验证主要通过实现...
通常,服务器会在用户登录时创建一个唯一的Session ID,并通过cookie或其他方式发送给客户端浏览器。客户端在后续的每次请求中都会携带这个Session ID,服务器据此识别用户身份并从服务器端存储的Session数据中恢复...
在Yii框架中使用Session变量的方法与在全局数组$_SESSION中使用类似,但更为安全和规范。设置Session变量的代码如下: ```php Yii::app()->session['var']='value'; ``` 读取Session变量的代码如下: ```php echo ...
在登录时,用户的身份信息可以加密存储在cookie中,以便在随后的请求中自动恢复用户状态。 综上所述,Yii2框架为开发者提供了丰富的工具和选项来管理cookie,使得开发者可以在保证应用功能的同时,也能够确保数据的...
这意味着开发者可能需要了解两者的结合使用,如Yii的自动加载机制、SAE的API调用、如何处理session和cookie等特定于SAE的问题。 最后,压缩包中的“myapp-master”可能是项目的源代码仓库,包含Yii项目的主目录。在...
开发者检查了源码和Cookie设置,并确认Cookie内容没有问题,同时,Yii2的session ID在浏览器中也显示正常,说明问题可能出在数据传输过程中。 关键的发现是,在调用`$model->login()`方法后,程序直接返回了JSON...