`

YII中的session和cookie

    博客分类:
  • Yii
 
阅读更多

一,在Yii中使用session 
与原生态php5的session使用差别是,php5使用session_start();$_session['key'] = $value; 
在yii中,session已经被封装。不需要start,但需要new一个session对象。

Java代码  收藏代码
  1. /***** 方式一、实例添加 *****/  
  2. $session=new CHttpSession;  
  3. $session->open();  
  4. $value1=$session['name1'];  
  5.   
  6. /***** 方式二、直接调用应用添加 *****/  
  7. Yii::app()->session->add('name','foobar');  
  8. Yii::app()->session->add('name2','foobar');  
  9. Yii::app()->session->add('name3','foobar');  
  10. //或者  
  11. $session = Yii::app()->session;  
  12. $session['key'] = 'value';  
  13. var_dump($session['key']);  
  14.    
  15. //遍历  
  16. foreach($session as $name=>$value)  

一个实例

Java代码  收藏代码
  1. $session = new CHttpSession;  
  2. $session->open();  
  3.           
  4. $user_id = $this->user->id;  
  5. $sessionKey = $user_id.'_is_sending';  
  6.           
  7. if(isset($session[$sessionKey])){  
  8.     $first_submit_time = $session[$sessionKey];  
  9.     $current_time      = time();  
  10.     if($current_time - $first_submit_time < 10){  
  11.         $session[$sessionKey] = $current_time;  
  12.         $this->response(array('status'=>1'msg'=>'不能在10秒钟内连续发送两次。'));  
  13.     }else{  
  14.         unset($session[$sessionKey]);//超过限制时间,释放session";  
  15.     }  
  16. }  
  17.   
  18. //第一次点击确认按钮时执行  
  19. if(!isset($session[$sessionKey])){  
  20.     $session[$sessionKey] = time();  
  21. }  
  22.           
  23. var_dump($sessionKey);var_dump($session[$sessionKey]);exit();  

二,在Yii中使用cookie 
Yii实现了一个cookie验证机制,可以防止cookie被修改 。启用之后可以对cookie的值进行HMAC检查。 
Cookie验证在默认情况下是禁用的。如果你要启用它,可以编辑应用配置中的组件中的CHttpRequest部分。 

一定要使用经过Yii验证过的cookie数据。使用Yii内置的cookies组件来进行cookie操作,不要使用$_COOKIES。 
实例:

Java代码  收藏代码
  1. // 检索一个名为$name的cookie值   
  2. $cookie=Yii::app()->request->cookies[$name];   
  3. $value=$cookie->value;   
  4. ......   
  5. // 设置一个cookie   
  6. $cookie=new CHttpCookie($name,$value);   
  7. Yii::app()->request->cookies[$name]=$cookie;   

有多个分站时,同步登陆,
基于cookie

Java代码  收藏代码
  1. 'user'=>array(  
  2.     'identityCookie'=>array('domain'=>'.dayouhui.com'),  
  3.     'allowAutoLogin' => true,  
  4. )  

如果是基本于session

Java代码  收藏代码
  1. 'session' => array(  
  2.     'cookieParams' => array('domain' => '.dayouhui''lifetime' => 0),  
  3.     'timeout' => 3600,  
  4. ),  

 

分享到:
评论

相关推荐

    Yii2.0中的COOKIE和SESSION用法

    在Yii2.0框架中,Cookie和Session是两种常见的用户数据存储机制,它们在Web应用程序中扮演着重要的角色。下面将详细介绍这两种机制的使用方法。 ### Cookie **1. 添加Cookie** Cookie在Yii2中主要通过`yii\web\...

    Yii框架Session与Cookie使用方法示例

    Yii框架内置了对用户会话(Session)和Cookie的支持,使得在Web开发中处理用户状态和临时数据变得非常方便和安全。 在Yii框架中使用Session和Cookie,可以通过一些内置的方法和组件来实现。Session管理着用户在...

    Yii2下session跨域名共存的解决方案

    总的来说,Yii2框架提供了灵活的session管理机制,通过正确配置`user`和`session`组件,以及处理好cookie的domain和session数据的存储位置,可以实现session的跨域名共存。这种方法在多站点、多域名的复杂网络环境中...

    Yii框架学习笔记之session与cookie简单操作示例

    在Yii框架中操作Session和Cookie是实现Web应用交互和用户状态管理的重要方面。通过本篇笔记,我们可以了解到Yii框架中如何进行Session和Cookie的初始化、读写、删除等基础操作。掌握这些知识对于开发安全、高效的Web...

    yii操作session实例简介

    在Yii框架中,cookie的创建、读取和删除同样方便,原理与session类似。例如,创建一个cookie: ```php Yii::app()-&gt;request-&gt;cookies['cookieName'] = new CHttpCookie('cookieName', 'cookieValue'); ``` 总的来说...

    Yii框架操作cookie与session的方法实例详解

    本文实例讲述了Yii框架操作cookie与session的方法。分享给大家供大家参考,具体如下: cookie操作 设置cookie //获取response-&gt;cookies组件 $cookies = \Yii::$app-&gt;response-&gt;cookies; //设置cookie数组 $array_...

    Yii2中cookie用法示例分析

    在登录时,用户的身份信息可以加密存储在cookie中,以便在随后的请求中自动恢复用户状态。 综上所述,Yii2框架为开发者提供了丰富的工具和选项来管理cookie,使得开发者可以在保证应用功能的同时,也能够确保数据的...

    yii2swoole让yii2运行在swoole上

    它提供了在Swoole环境下运行Yii2的基础设施,包括请求处理、事件监听、session和cookie管理等。 2. **性能提升**:"运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上"表明使用Swoole后,Yii2应用的处理速度和...

    YII2自动登录Cookie总是失效的解决方法

    该方法会将用户的ID、认证密钥以及Cookie的有效期编码为JSON字符串并存储在Cookie中。当用户再次访问时,框架会检查这个Cookie,如果存在且未过期,就会自动登录用户。 在描述中提到的问题是,尽管启用了自动登录...

    session入redis

    总之,将Session存入Redis是处理大规模分布式Web应用中用户会话状态的一种有效手段,能够显著提升用户体验并增强系统的稳定性和可扩展性。需要注意的是,虽然利用Redis作为Session存储是一个非常有效的策略,但也...

    yii操作cookie实例简介

    本篇文章将详细解释如何在Yii框架中进行Cookie的设置、读取和销毁。 ### 1. 设置Cookie 在Yii中,设置Cookie主要通过`CHttpCookie`类来完成。首先,我们需要创建一个`CHttpCookie`对象,然后设置其属性,如名称、...

    yii-sae-app

    这意味着开发者可能需要了解两者的结合使用,如Yii的自动加载机制、SAE的API调用、如何处理session和cookie等特定于SAE的问题。 最后,压缩包中的“myapp-master”可能是项目的源代码仓库,包含Yii项目的主目录。在...

    Yii中的cookie的发送和读取

    在实际应用中,要注意保护用户隐私,不应在Cookie中存储敏感信息,如密码明文。对于认证信息,通常会使用Session或Token。同时,为了防止跨站脚本攻击(XSS),应启用`httpOnly`属性,禁止JavaScript访问Cookie,以...

    用Yii写的商城源代码

    8. **购物车功能**:实现购物车功能需要处理商品添加、删除、数量调整以及结算等逻辑,这涉及到session或者cookie的使用,以及数据库中的购物车表操作。 9. **支付集成**:商城系统通常需要集成第三方支付接口,如...

Global site tag (gtag.js) - Google Analytics