一,在Yii中使用session
与原生态php5的session使用差别是,php5使用session_start();$_session['key'] = $value;
在yii中,session已经被封装。不需要start,但需要new一个session对象。
-
- $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]);
- }
- }
-
-
- if(!isset($session[$sessionKey])){
- $session[$sessionKey] = time();
- }
-
- var_dump($sessionKey);var_dump($session[$sessionKey]);exit();
二,在Yii中使用cookie
Yii实现了一个cookie验证机制,可以防止cookie被修改 。启用之后可以对cookie的值进行HMAC检查。
Cookie验证在默认情况下是禁用的。如果你要启用它,可以编辑应用配置中的组件中的CHttpRequest部分。
一定要使用经过Yii验证过的cookie数据。使用Yii内置的cookies组件来进行cookie操作,不要使用$_COOKIES。
实例:
-
- $cookie=Yii::app()->request->cookies[$name];
- $value=$cookie->value;
- ......
-
- $cookie=new CHttpCookie($name,$value);
- Yii::app()->request->cookies[$name]=$cookie;
有多个分站时,同步登陆,
基于cookie
- 'user'=>array(
- 'identityCookie'=>array('domain'=>'.dayouhui.com'),
- 'allowAutoLogin' => true,
- )
如果是基本于session
- 'session' => array(
- 'cookieParams' => array('domain' => '.dayouhui', 'lifetime' => 0),
- 'timeout' => 3600,
- ),
分享到:
相关推荐
在Yii2.0框架中,Cookie和Session是两种常见的用户数据存储机制,它们在Web应用程序中扮演着重要的角色。下面将详细介绍这两种机制的使用方法。 ### Cookie **1. 添加Cookie** Cookie在Yii2中主要通过`yii\web\...
Yii框架内置了对用户会话(Session)和Cookie的支持,使得在Web开发中处理用户状态和临时数据变得非常方便和安全。 在Yii框架中使用Session和Cookie,可以通过一些内置的方法和组件来实现。Session管理着用户在...
总的来说,Yii2框架提供了灵活的session管理机制,通过正确配置`user`和`session`组件,以及处理好cookie的domain和session数据的存储位置,可以实现session的跨域名共存。这种方法在多站点、多域名的复杂网络环境中...
在Yii框架中操作Session和Cookie是实现Web应用交互和用户状态管理的重要方面。通过本篇笔记,我们可以了解到Yii框架中如何进行Session和Cookie的初始化、读写、删除等基础操作。掌握这些知识对于开发安全、高效的Web...
在Yii框架中,cookie的创建、读取和删除同样方便,原理与session类似。例如,创建一个cookie: ```php Yii::app()->request->cookies['cookieName'] = new CHttpCookie('cookieName', 'cookieValue'); ``` 总的来说...
本文实例讲述了Yii框架操作cookie与session的方法。分享给大家供大家参考,具体如下: cookie操作 设置cookie //获取response->cookies组件 $cookies = \Yii::$app->response->cookies; //设置cookie数组 $array_...
在登录时,用户的身份信息可以加密存储在cookie中,以便在随后的请求中自动恢复用户状态。 综上所述,Yii2框架为开发者提供了丰富的工具和选项来管理cookie,使得开发者可以在保证应用功能的同时,也能够确保数据的...
该方法会将用户的ID、认证密钥以及Cookie的有效期编码为JSON字符串并存储在Cookie中。当用户再次访问时,框架会检查这个Cookie,如果存在且未过期,就会自动登录用户。 在描述中提到的问题是,尽管启用了自动登录...
它提供了在Swoole环境下运行Yii2的基础设施,包括请求处理、事件监听、session和cookie管理等。 2. **性能提升**:"运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上"表明使用Swoole后,Yii2应用的处理速度和...
总之,将Session存入Redis是处理大规模分布式Web应用中用户会话状态的一种有效手段,能够显著提升用户体验并增强系统的稳定性和可扩展性。需要注意的是,虽然利用Redis作为Session存储是一个非常有效的策略,但也...
本篇文章将详细解释如何在Yii框架中进行Cookie的设置、读取和销毁。 ### 1. 设置Cookie 在Yii中,设置Cookie主要通过`CHttpCookie`类来完成。首先,我们需要创建一个`CHttpCookie`对象,然后设置其属性,如名称、...
这意味着开发者可能需要了解两者的结合使用,如Yii的自动加载机制、SAE的API调用、如何处理session和cookie等特定于SAE的问题。 最后,压缩包中的“myapp-master”可能是项目的源代码仓库,包含Yii项目的主目录。在...
在实际应用中,要注意保护用户隐私,不应在Cookie中存储敏感信息,如密码明文。对于认证信息,通常会使用Session或Token。同时,为了防止跨站脚本攻击(XSS),应启用`httpOnly`属性,禁止JavaScript访问Cookie,以...
8. **购物车功能**:实现购物车功能需要处理商品添加、删除、数量调整以及结算等逻辑,这涉及到session或者cookie的使用,以及数据库中的购物车表操作。 9. **支付集成**:商城系统通常需要集成第三方支付接口,如...