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服务器并不能知道是哪一个用户正在访问,但一些网站,希望能够知道访问者的一些信息,例如是不是第一次访问,访问者上次访问时是否有未做完的工作,这次 ...
随机推荐
- bat命令运行java程序
注意空格 本文主要介绍在window下bat批处理文件调用java的方法. @echo off echo 正在加密,请稍后....echo path:%~dp0 set base=%~dp0 set ...
- CF519 ABCD D. A and B and Interesting Substrings(map,好题)
A:http://codeforces.com/problemset/problem/519/A 水题没什么好说的. #include <iostream> #include <st ...
- 我的第一次NGS分析操作
部分参考自:生物信息学100个基础问题 —— 番外2: 用Anaconda快速搭建生物信息学分析平台 - 孟浩巍的文章 - 知乎 https://zhuanlan.zhihu.com/p/357114 ...
- Flask之初体验
Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后 ...
- Extjs添加行双击事件
var grid = new Ext.grid.GridPanel({ store: store, trackMouseOver: false, disableSelection: true, aut ...
- Sqlserver生成带数据的脚本
右键数据库—>任务—>生成脚本 下一步 选择要导出数据库,下一步 编写数据脚本选择True,下一步 选择要导出的表,下一步 最后点击完成即可.
- sidekiq安装及使用
参考:https://github.com/mperham/sidekiq/wiki/Getting-Started https://wdxtub.com/2016/07/06/sidekiq-gui ...
- SPOJ - COT Count on a tree
地址:http://www.spoj.com/problems/COT/en/ 题目: COT - Count on a tree #tree You are given a tree with N ...
- javaee加密部署,tomcat使用自己的classloader解密
http://www.2cto.com/kf/201312/264455.html [起因] 公司需要对一个web项目进行加密之后出售, 大家都知道的,class很好反编译, 所以需要对class文件 ...
- 20145322《Java程序设计》第3次实验报告
实验内容,, 组队使用 git 上传代码并且互相下载对方代码修改之后再上传. 实现代码的重载 一. 使用git 上传代码 过程如图: 仨人成功上传后的代码图如下: 使用git 相互更改代码 执行git ...