pahlcon:cookies设置
非加密方式(简单,但不推荐)
步骤 1
在全局容器中加入Cookie:
$di->set('cookies', function () {
$cookies = new \Phalcon\Http\Response\Cookies();
$cookies->useEncryption(false); //默认使用加密方式,但这里我们刚开始使用非加密方式
return $cookies;
});
步骤 2
首先,需要在用户登陆时根据用户的输入信息生成cookies,然后存储在cookies中,并设置好失效的时间。
如下所示:
//设备变量name=xxx,有效时间为未来一周
$this->cookies->set('name', 'xxx', time() + 7 * 86400);
$this->cookies->set('passwd', 'xxx', time() + 7 * 86400);
步骤 3
通常Phalcon的项目中会使用ACL进行用户的访问控制,而要实现用户在任何时间打开浏览器直接访问,就需要在ACL控制逻辑中获取Cookie中的值进行判断。
//获得name
$this->cookies->get('name')->getValue();
$this->cookies->get('passwd')->getValue();
加密方式(推荐)
加密方式是默认的Cookie方式,但在使用前必须满足以下条件:
1. 在全局容器中加入crypt并定义key,即:
$di->set('cookies', function () {
$cookies = new \Phalcon\Http\Response\Cookies();
// $cookies->useEncryption(false);
return $cookies;
});
$di->set('crypt', function (){
$crypt = new Phalcon\Crypt();
$crypt->setKey('xxxxxx'); //salt
return $crypt;
});
2. 由于crypt依赖于php中的mcrypt扩展,所以必须安装
3. 使用加密方式后,Phalcon中有一个bug存在,即在以下代码中获取数据时会有空白字符:
//获得name
$this->cookies->get('name')->getValue();
$this->cookies->get('passwd')->getValue();
必须改成:
trim($this->cookies->get('name')->getValue());
trim($this->cookies->get('passwd')->getValue());
pahlcon:cookies设置的更多相关文章
- scrapy的User-Agent中间件、代理IP中间件、cookies设置、多个爬虫自定义settings设置
在scrapy的反爬中,常用的几个配置,简单总结了下: User-Agent中间件: from fake_useragent import UserAgent class RandomUserAgen ...
- requests 进阶用法学习(文件上传、cookies设置、代理设置)
一.文件上传 1.模拟网站提交文件 提交此图片,图片名称:timg.jpg import requests files={ 'file':open('timg.jpg','rb') } respons ...
- cookies设置时间
默认cookies失效时间是直到关闭浏览器,cookies失效,也可以指定cookies时间. Response.Cookies("user_name").Expires=Date ...
- Cookies设置,获取,删除
之前的博客,整理了下Session的存储方式和原理http://www.cnblogs.com/chinaagan/p/3200456.html. 本篇再次整理下Cookies的使用和原理. 参考博客 ...
- C# Cookies设置和读取
public ActionResult Index() { #region 写入Cookies HttpCookie cookie = new HttpCookie("CookieName& ...
- phpcms免登录cookies设置方案
PHPCMS的SESSION时间长一些的解决办法修改两个文件: phpsso_server/caches/configs/system.php里的 'session_ttl' => 999999 ...
- cookies的获取,删除,设置
cookies,sessionStorage 和 localStorage 的区别? 1.cookie在浏览器和服务器间来回传递. sessionStorage和localStorage不会: 2.s ...
- 【Django】关于设置和获取cookies
def TestCookies(request): response=HttpResponse() # cookie=request.COOKIES#下面两句等cookies设置以后,才使用 # if ...
- Webform(六)——登录状态保持(Cookies内置对象)
用户用浏览器访问一个网站,由于采用的http的特性,Web服务器并不能知道是哪一个用户正在访问,但一些网站,希望能够知道访问者的一些信息,例如是不是第一次访问,访问者上次访问时是否有未做完的工作,这次 ...
随机推荐
- 登录plsql 报错 the account is locked --用户被锁
登录数据库服务器,进入oracle用户下: [root@uumsnormal-oracle admin]# su - oracle [oracle@uumsnormal-oracle ~]$ sqlp ...
- python学习笔记(二十三)私有方法和私有属性
在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑. 但是,从前面Person类的定义来看,外部代码还是可以自由地修改一个实例的nam ...
- JVM之参数分配详解
开篇之前,推荐一个关于JVM很不错的博客:http://www.cnblogs.com/redcreen/archive/2011/05/04/2036387.html 一.堆参数设置 -XX:+Pr ...
- vim文本编辑操作
文本选择操作 为了方便地选取文本块,Vim编辑器引入了可视模式(Visual Mode).要选取一段文本块,操作步骤如下: ▶ 将光标移动到要复制文本块的开始处.要注意的是 ...
- MFC中对基于ODBC对数据ACCESS数据库的增删改查。
在MFC中可以使用很多方法对数据库进行操作. 什么ODBC 什么ADO之类的,这里要介绍使用的ODBC这种方法,通过本文的阅读可以达初步掌握在MFC里面通过ODBC访问ACCESS数据库. 涉及到的 ...
- XDU 1037 倍流畅序列(字符串匹配+贪心)
题目描述 对于一个0,1串s, 从左端开始读取它的0获得序列s0,从右端开始读取它的1获得s1,如果s0与s1同构,则称s为倍流畅序列.例如:011001是一个倍流畅序列, 因为:s0 = 0__00 ...
- webpack.dev.conf.js详解
转载自:https://www.cnblogs.com/ye-hcj/p/7087205.html webpack.dev.conf.js详解 //引入当前目录下的utils.js文件模块var ut ...
- 『NiFi 节点本地流与集群流不一致导致集群加入失败』问题解决
一.概述 在某些极端情况下,某些 NiFi 节点信息会由于用户强行 disconnect from cluster ,而出现 local flow 与 cluster 的 flow 不同步的问题. 此 ...
- [HZNUOJ] 博
Description 定义一个数字序列为“非下降序列”: 此处我们约定用$n\;表示数字序列的长度,下面定义在n \in [1, \infty]时有效$ $if \;\; n = 1:$ $\;\; ...
- CCProgressTimer Loading条
CCProgressTimer *p_SpTime = CCProgressTimer::create(CCSprite::createWithSpriteFrameName("IM_Pro ...