Yii框架中用response保存cookie,用request读取cookie的原理解析

本文实例讲述了Yii框架中用response保存cookie,用request读取cookie的原理。分享给大家供大家参考,具体如下:

在学习cookie的时候,相信很多人和我有一样的疑惑?为什么保存cookie要用response,读取cookie却用request呢?

参考https://www.imooc.com/qadetail/188079

cookie是web服务器为了保存一些用户数据而创建保存在本地的一个加密文件,这些过程是由服务器操作,所以使用response。读取cookie数据是客户端行为,所以用request。这样理解可能好一点。

再者

Request.Cookies创建的Cookie只能用于后台不能用于HTML的前台
Response.Cookies操作过的Cookie,所有方法获取到的都是被更新过的值,也就是说Response.Cookies是修改所有容器中的Cookie的值;

如果还是不太明白,我们可以通过实践,使用request->cookies删除一个cookie数据。

$cookies = \Yii::$app->response->cookies;
$array_cookies=array('name'=>'user','value'=>'doubly');
$cookies->add(new Cookie($array_cookies));
$cookies = \Yii::$app->request->cookies;
$cookies->remove('user');
echo $cookies->getValue("user");

访问网页可以发现Yii框架报错

简单的说,request->cookies不能对cookie数据进行修改等操作。

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

(0)

相关推荐

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

    前面谈过session相关配置,在开发的时候,常需要跨域共用session的是登录模块,我相信很多开发的朋友的都遇到过,只需要一个地方登录,相关联的网站也是处于登录状态.两种情况:一种9streets.cn和a.9streets.cn之间,另一种是a.com b.com之间,这几天总结了一下处理方法. 无论是一二级域名,和不同域名下的跨域,无非要达到两点: 客户端访问同一个sessionId, 所有域名对应的服务器访问的session的数据的位置必须一致. 1.访问共同的sessionId主要是

  • 解析PHP的Yii框架中cookie和session功能的相关操作

    Sessions 和 请求 和 响应类似, 默认可通过为yii\web\Session 实例的session 应用组件 来访问sessions. 开启和关闭 Sessions 可使用以下代码来开启和关闭session. $session = Yii::$app->session; // 检查session是否开启 if ($session->isActive) ... // 开启session $session->open(); // 关闭session $session->clo

  • yii操作cookie实例简介

    yii对cookie的操作常见的主要有以下几种: 1.设置cookie: $cookie = new CHttpCookie('mycookie','this is my cookie'); $cookie->expire = time()+60*60*24*30; //有限期30天 Yii::app()->request->cookies['mycookie']=$cookie; 2.读取cookie: $cookie = Yii::app()->request->getC

  • yii操作session实例简介

    本文简述了Yii框架中使用session的方法,具体步骤如下: 一.与标准php代码的区别: 在Yii框架中,你不需要像标准PHP代码那样使用session_start(), 在Yii框架中,autoStart 属性缺省被设置为true,所以, 虽然没有使用session_start(),你仍然可以使用$_SESSION全局变量,但最好使用Yii框架封装的Yii::app->session 二.session变量的使用: 设置session: Yii::app()->session['var'

  • Yii2中cookie用法示例分析

    本文实例讲述了Yii2中cookie用法.分享给大家供大家参考,具体如下: <?php //设置方法 $cookie = new Cookie([ 'name' => 'cookie_monster', 'value' => 'Me want cookie!', 'expire' => time() + 86400 * 365, ]); \Yii::$app->getResponse()->getCookies()->add($cookie); //读取方法 $v

  • Yii中的cookie的发送和读取

    cookies: //新创建的cookie会从本地传到服务器上,然后从服务器获取. (1) cookie的发送 $cookies = Yii::$app->response->cookies; // 在要发送的响应中添加一个新的cookie eg:往cookies中添加用户名和密码 $cookies->add(new Cookie(['name'=>'username', 'value'=>$username,])); $cookies->add(new Cookie(

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

    前言 最近做Yii2自动登录功能,发现即使开启了Yii2的自动登录配置功能,浏览器关闭后,再次打开浏览器还是处于非登录状态. 网上查询资料基本没有相同情况. 查询登录源码: protected function sendIdentityCookie($identity, $duration) { $cookie = new Cookie($this->identityCookie); $cookie->value = json_encode([ $identity->getId(), $

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

    本文实例讲述了Yii框架学习笔记之session与cookie操作.分享给大家供大家参考,具体如下: session操作 <?php namespace app\controllers; use yii\web\Controller; class HelloController extends Controller{ public function actionIndex(){ //把session当做对象 $session = \yii:$app->session; if($session-

  • Yii2.0中的COOKIE和SESSION用法

    1.Cookie Yii2的Cookie主要是通过yii/web/Request和yii/web/Response进行操作的 ,通过/Yii::$app->response->getCookies()->add()添加Cookie,通过/Yii::$app->request->cookies读取Cookie. 1)添加一个Cookie <?php //第一种方法 $cookie = new /yii/web/Cookie(); $cookie -> name =

  • Yii框架中用response保存cookie,用request读取cookie的原理解析

    本文实例讲述了Yii框架中用response保存cookie,用request读取cookie的原理.分享给大家供大家参考,具体如下: 在学习cookie的时候,相信很多人和我有一样的疑惑?为什么保存cookie要用response,读取cookie却用request呢? 参考https://www.imooc.com/qadetail/188079 cookie是web服务器为了保存一些用户数据而创建保存在本地的一个加密文件,这些过程是由服务器操作,所以使用response.读取cookie数

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

    本文实例讲述了Yii框架操作cookie与session的方法.分享给大家供大家参考,具体如下: cookie操作 设置cookie //获取response->cookies组件 $cookies = \Yii::$app->response->cookies; //设置cookie数组 $array_cookies=array('name'=>'user','value'=>'doubly'); //添加cookie数据 $cookies->add(new Cook

  • javascript创建cookie、读取cookie

    本文内容分为两个部分进行学习,分别介绍了javascript创建cookie.javascript读取cookie的具体实现方法,供大家学习,具体内容如下 一.创建Cookie document.cookie = 'key=value';  有特殊字符 使用encodeURIComponent() 进行编码 document.cookie = 'user='+encodeURIComponent('郭钱;');  读取时 使用decodeURIComponent() 例如: document.c

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

    本文实例讲述了Yii框架Session与Cookie使用方法.分享给大家供大家参考,具体如下: Yii Session使用 public function actionIndex(){ $session = \YII::$app->session; //判断session是否开启 if(!$session->isActive) { //未开启,需要开启 $session->open(); } //设置session $session->set('user_name','zhangs

  • Yii框架组件和事件行为管理详解

    本文实例讲述了Yii框架组件和事件行为管理.分享给大家供大家参考,具体如下: Yii是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.CComponent几乎是所有类的基类,它控制着组件与事件的管理,其方法与属性如下,私有变量$_e数据存放事件(evnet,有些地方叫hook),$_m数组存放行为(behavior). 组件管理 YII是一个纯oop框架,很多类中的成员变量的受保护或者私有的,CComponent中利用php中的魔术方法__get(),__set()来访问和设置属

  • 详细解读PHP的Yii框架中登陆功能的实现

    Yii的登陆机制 Yii 生成应用时已经提供了最基础的用户登陆机制.我们用 Yii 生成一个新的应用,进入 protected/components 目录,我们可以看到 UserIdentity.php 文件,里面的 UserIdentity 类里面只有一个 public 函数如下: public function authenticate() { $users=array( // username => password 'demo'=>'demo', 'admin'=>'admin'

  • Yii框架分页实现方法详解

    本文实例讲述了Yii框架分页实现方法.分享给大家供大家参考,具体如下: 下家公司用的框架是yii,这几天看了下相关教程,今儿把分页教程写下,最后把tp的分页也给整合进了yii,因为个人觉得yii分页没有tp用的顺手. 首页,在models目录里创建个Auth.php的模型文件,里面写入 class Auth extends CActiveRecord { public static function model($className = __CLASS__) { return parent::m

  • Yii框架登录流程分析

    本文详细分析了Yii框架的登录流程.分享给大家供大家参考.具体分析如下: Yii对于新手来说上手有点难度,特别是关于session,cookie和用户验证.现在我们就Yii中登录流程,来讲讲Yii开发中如何设置session,cookie和用户验证方面的一些通用知识 1. 概述 Yii是一个全栈式的MVC框架,所谓全栈式指的是Yii框架本身实现了web开发中所要用到的所有功能,比如MVC,ORM(DAO/ActiveRecord), 全球化(I18N/L10N), 缓存(caching), 基于

随机推荐