广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP yii学习3
  • 311
分享到

PHP yii学习3

PHPyii 2023-01-31 02:01:57 311人浏览 八月长安
摘要

yii一,在Yii中使用session1,Chttpsession 与原生态PHP5的session使用差别是,php5使用session_start();$_session['key'] = $value; 在yii中,session已经

yii

一,在Yii中使用session
1,Chttpsession
与原生态PHP5的session使用差别是,php5使用session_start();$_session['key'] = $value;
在yii中,session已经被封装。
To start the session, call open(); To complete and send out session data, call close(); To destroy the session, call destroy().

If autoStart is set true, the session will be started automatically when the application component is initialized by the application.

Java代码  收藏代码
  1. $session=new CHttpSession;  

  2. $session->open();  

  3. $value1=$session['name1'];  

  4. Yii::app()->session->add('name','foobar');  

  5. Yii::app()->session->add('name2','foobar');  

  6. Yii::app()->session->add('name3','foobar');  

  7. //或者

  8. $session = Yii::app()->session;  

  9. $session['key'] = 'value';  

  10. var_dump($session['key']);  

  11. //遍历

  12. foreach($session as $name=>$value)  

一个实例

Java代码  收藏代码
  1. $session = new CHttpSession;  

  2. $session->open();  

  3. $user_id = $this->user->id;  

  4. $sessionKey = $user_id.'_is_sending';  

  5. if(isset($session[$sessionKey])){  

  6.    $first_submit_time = $session[$sessionKey];  

  7.    $current_time      = time();  

  8. if($current_time - $first_submit_time < 10){  

  9.        $session[$sessionKey] = $current_time;  

  10.        $this->response(array('status'=>1, 'msg'=>'不能在10秒钟内连续发送两次。'));  

  11.    }else{  

  12.        unset($session[$sessionKey]);//超过限制时间,释放session";

  13.    }  

  14. }  

  15. //第一次点击确认按钮时执行

  16. if(!isset($session[$sessionKey])){  

  17.    $session[$sessionKey] = time();  

  18. }  

  19. var_dump($sessionKey);var_dump($session[$sessionKey]);exit();  

在index.php

在$app->run();前

Java代码  收藏代码
  1. $session = Yii::app()->session;  

  2. session_set_save_handler(  

  3.    array($session,'openSession'),  

  4.    array($session,'closeSession'),  

  5.    array($session,'readSession'),  

  6.    array($session,'writeSession'),  

  7.    array($session,'destroySession'),  

  8.    array($session,'GCSession')  

  9. );  

2,CDbHttpSession

CDbHttpSession继承自 CHttpSession ,把session数据存储在数据库中(表名是YiiSession),
The table name can be changed by setting sessionTableName. If the table does not exist, it will be automatically created if autoCreateSessionTable is set true.

The following is the table structure:
CREATE TABLE YiiSession
(
   id CHAR(32) PRIMARY KEY,
   expire INTEGER,
   data TEXT
)

CDbHttpSession relies on PDO to access database.

By default, it will use an sqlite3 database named 'session-YiiVersion.db' under the application runtime directory. You can also specify connectionID so that it makes use of a DB application component to access database.

When using CDbHttpSession in a production server, we recommend you pre-create the session DB table and set autoCreateSessionTable to be false. This will greatly improve the perfORMance. You may also create a DB index for the 'expire' column in the session table to further improve the performance.

Sql代码  收藏代码
  1. CREATETABLE `YiiSession` (  

  2.  `id` char(32) NOTNULL,  

  3.  `expire` int(11) defaultNULL,  

  4.  `data` text,  

  5. PRIMARYKEY  (`id`),  

  6. KEY `expire` (`expire`)  

  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  

例,在../config/main.php中配置

Php代码  收藏代码
  1. 'session'=>array(  

  2. 'class' => 'CDbHttpSession',  

  3. 'autoStart' => true,  

  4. 'sessionTableName'=>'YiiSession',  

  5. 'autoCreateSessionTable'=> false,  

  6. 'connectionID'=>'db',  

  7.        ),  

二,在Yii中使用cookie

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

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

实例:

Php代码  收藏代码
  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;  

--结束END--

本文标题: PHP yii学习3

本文链接: https://www.lsjlt.com/news/185840.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP yii学习3
    yii一,在Yii中使用session1,CHttpSession 与原生态php5的session使用差别是,php5使用session_start();$_session['key'] = $value; 在yii中,session已经...
    99+
    2023-01-31
    PHP yii
  • PHP 学习笔记 (3)
    昨天笔记2说道了PHP的标记以及短标记,今天记录下如何吧PHP从HTML分离手册参考:http://www.php.net/manual/zh/language.basic-syntax.phpmode.phpPHP手册告诉我们,PHP凡是...
    99+
    2023-01-31
    学习笔记 PHP
  • 3..Twisted学习
    写这个主要是为了自己理解Twisted的文档 建立一个finger服务 你不需要调用Twisted,Twisted会自己运行。reactor是Twisted的主循环,想python的其他主循环一样。每个Twisted只有一个reactor...
    99+
    2023-01-30
    Twisted
  • python3学习(3)
    练习题:1. 26个字母大小写成对打印,例如:Aa,Bb.... for i in range(65,91): print(chr(i)+chr(i+32)+",",end="") 2、一个list包含10个数字,然后生成新的lis...
    99+
    2023-01-31
  • iptables学习(3)
    Target/jump target/jump决定包的处理,语法是--jump target 或 -j target ,target分两类,一是具体的操作,如ACCEPT和DROP,另一个是发送到同一个表内的链 如: iptables -N...
    99+
    2023-01-31
    iptables
  • python学习整理--3/3
    今天又重新学起了python这门语言,带着新的目的和又涨一岁的自己,其实早在去年的暑期曾学过一段时间,但是最后无疾而终,这次我真心希望可以掌握一门实用的语言来充实自己,之前的学的不论是c还是java,自我感觉除了做题以外一点都用不上,但感觉...
    99+
    2023-01-31
    python
  • 学习笔记3
    一文件查找和压缩1文件查找locate 搜索依赖于数据库,非实时搜索,搜索新建文件需手动更新,适于搜索稳定不频繁修改文件 find 实时搜索,精确搜索,默认当前目录递归搜索 find用法 -maxdepth...
    99+
    2023-01-31
    学习笔记
  • Spring Security 3 学习
           学习SpringSecurity3之前,我在网上找了很多关于SpringSecurity3的相关博客,写得都很好,刚开始我都看不懂,后来在ITEYE里面看到有人把一本国外的书翻译过来了,很不错,免费下载的。所以学习Spring...
    99+
    2023-01-31
    Spring Security
  • C#类学习-3
    构造函数是在创建给定类型的对象时执行的类方法。 构造函数具有与类相同的名称,它通常初始化新对象的数据成员。 如下面示例: public class myclass {         //下面为myclass类的构造函数         ...
    99+
    2023-01-31
  • MSP430的学习(3)
    MSP430单片机具有基本定时器(Basic Timer1),经常用于低功耗当中,他工作的目的就是支持软件和各种外围模块工作于低频率 低功耗条件下。通过对SMCLK或者ACLK进行分频,向其他外围模块提供低频控制信号。     Bacis ...
    99+
    2023-01-31
  • 学习笔记(3)
    1.* 匹配零个或多个字符(通配符中)2.ls 的-d选项不仅仅可以显示指定目录的信息,还可以用来表示不递归子文件夹。  # ls -dl /etc 显示/etc目录的信息  # ls -d /etc 只显示/etc下面的文件夹3.显示/v...
    99+
    2023-01-31
    学习笔记
  • BGP学习 总结3
      BGP DECISION PROCESS 1 largest weight ( local orininated path :32768 other 0 ) 2 largest local-preefernce (BGP default...
    99+
    2023-01-31
    BGP
  • CCNA学习日记3
    下面把今天学到的重点总结一下,如果有什么错误,欢迎大家纠正!   1. 路由器密码配置 n控制台密码 Router(config)#line console 0 Router(config-...
    99+
    2023-01-31
    日记 CCNA
  • cisco学习笔记(3)
    1. 交换机支持的命令:交换机基本状态: switch: ;ROM状态, 路由器是rommon>hostname> ;用户模式hostname# ;特权模式...
    99+
    2023-01-31
    学习笔记 cisco
  • OSPF 学习笔记3
    ospf特殊区域 减少LSA洪泛,达到优化路由表的目的 sub区域特点 1、过滤了LSA4/5 2、通过ABR的LSA3学习到一条到达域外的缺省路由(O*IA) 3、区域内所有的路由器都得设置为stub路由器 ...
    99+
    2023-01-31
    学习笔记 OSPF
  • perl学习笔记(3)
    条件结构: if(...){       ...; }elsif(...){       ...; }else{       ...; } 数值关系运算符 ==,>...
    99+
    2023-01-31
    学习笔记 perl
  • Spring Boot学习记3
    点睛在我们实际开发的时候,经常会遇到在Bean在使用之前或者止呕做一些必要的操作,Spring对Bean的生命周期的操作提供了支持。在使用Java配置和注解配置下提供如下两种方式:Java配置方式:使用@Bean的initMethod和de...
    99+
    2023-01-31
    Spring Boot
  • linux学习第3天
    linux学习第3天 时间:20180718 目录 Linux用户和组管理 sudo 内核空间 用户空间 库调用 系统调用 如何安装虚拟机 计算机的基本知识 Linux用户和组管理 管理员 root ID 0 普通用户 1-65535 配置...
    99+
    2023-01-31
    linux
  • shell 学习笔记3
    ####shell结构 #!指定执行脚本的shell #注释行 命令和控制结构  第一步:创建一个包含命令和控制结构的文件  第二步:修改这个文件的权限使它可以执行,chmod u+x...
    99+
    2023-01-31
    学习笔记 shell
  • GEF学习笔记3
    八、创建嵌套的视图 前面的步骤,创建了公司视图,下面再创建一个国家视图用来容纳公司视图。这就需要按前面的方法把MVC都重新创建一遍。 Model View(Figure) Control(EditPart) 注意重写红框中标...
    99+
    2023-01-31
    学习笔记 GEF
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作