thinkphp

Thinkphp如何有效的设置session过期时间

thinkphp提供了一个参数让我们配置session过期时间。 'SESSION_OPTIONS' = array( expire => 3600 ); 然而这一配置是否真的有效?在多次测试之后,不遂人意。 why?那我们试着从源码上分析这个配置参数的,它是怎么让尝试着然我们的session过期的。 上图在中展现了框架对session有效期的操作,它设置了php.ini中的两个变量“session.gc_maxlifetime”和“session.cookie_lifetime”的值。 那么我们继续追问?这个两个参数就能让session按照自己设置的时间过期? 我们看看这两个参数代表着什么? session.gc_maxlifetime:session的有效生存时间,过了这个时间session将进入销毁队列。 session.cookie_lifetime:值为0代表关闭浏览器,保存在客户端的sessionid将立即失效。 session.gc_maxlifetime这个是关键,但过了这个时间并不能马上销毁,这又...

thinkphp计划任务使用cronRun

1、先不管是是否是独立分组,必须在你项目名下的Conf文件夹内创建2个文件一个是tages.php 一个是 crons.php。 注意这两个文件名为thinkphp标准文件名,不可以改变 tages.php内容是: crons.php内容是 2、在项目命的Lib文件夹内,新建一个文件夹Cron,然后再在Cron里面创建recommend.php文件,我们在recommend.php文件里面写需要执行的内容。直接写PHP代码就可以 recommend内容是 3、结果: 您好,欢迎光临本站,现在时间是:2014-05-16 10:33:49 该文字显示在网站的所有页面,但是不能刷新浏览器页面 实际开发中,可以再任务脚本中调用远程数据,执行PHP支持的功能操作等。 ** 如果此篇文章有帮助到你,欢迎点击下方/页面上任意广告,支持我们,谢谢!

ThinkPHP中实现gzip压缩

ThinkPHP中似乎没有对gzip的配置选项。不过实现起来还是挺简单的。以下是对 ThinkPHP 2.1 的修改方法。 首先要确定空间是否支持Zlib, 然后找ThinkPHP的控制输出函数output()。 控制输出的文件在 ThinkPHP/Lib/Think/Core 文件夹下,文件名 View.class.php。

ThinkPHP示例之 字段映射

要使用模型的自动创建create方法的话,ThinkPHP的表单名称就是数据表的字段名称,如果担心这样不够安全,可以定义字段映射,来隐藏实际的数据表字段名称。 下面的例子就运用了字段映射定义。请注意看表单名称和字段的对应关系。 标题: 邮箱: 内容: 验证码: 输入对应的数字 示例源码 控制器IndexAction类 模型 FormModel 类

ThinkPHP的html:list标签简要用法及注意事项

<html:list id="checkList" name="user" style="list" checkbox="true" action="true" datasource="list" show="id:编号|8%,title:标题:edit,content:内容,create_time|toDate='Y-m-d H#i#s':添加时间,status|getStatus:状态" actionlist="forbid|resume:禁用|恢复,edit:编辑" /> ThinkPHP的html标签库中的list标签功能强大,但没有文档.只好看源码了. 大概如下: datasource和show必须要, datasource是数据源名称, 也就是assign所指向的变量, show是最复杂的, 等会再讲 pk是主键名, 默认为id;style是css样式的class, 因为整个list标签会被编译成table, 比如这里为mylist, 那么样式表中的table.mylist样式就会用在这; checkbox是否显示复选框; action是否显示操作列 s...

ThinkPHP与RBAC(基于角色的权限管理)

访问控制可以简单表述为:判断谁(Who)对什么(What/Which)进行怎样(How)的操作是否为真。对于一个系统来说,有必要建立一个良好的访问控制系统,对访问权限进行合理的分配,用于保证系统的安全性、可靠性。 传统的访问控制技术主要有:自主访问控制(DAC)、强制访问控制(MAC)和基于角色的权限访问控制(Role Based Access Control,简称RBAC)。 DAC和MAC访问控制技术均是直接对用户本身进行权限的管理,细度太小。当用户数量庞大并且用户之间关系复杂时,主体和客体关系的匹配及权限的管理就变得复杂起来。并且权限的变更将导致权限分配列表的变更,此时可能会遭遇到很大的困难,甚至于要修改系统的源代码。 而RBAC访问控制技术很好地解决了这一问题。在RBAC中,用户的权限不是在用户本身上进行管理的,用户的权限是由用户所处的角色所决定的。在权限管理中,通过角色这一桥梁将用户与权限联系起来。用户和角色、角色与权限是一个多对多的关系。 与RBAC访问控制相关的概念有: 用户(User):一个具有唯一标识符的用户,与权限相分离,只能通过所属的R...

为ThinkPHP添加web services

给ThinkPHP应用程序添加web services,首先需要启动soap模块,这里仅需要修改php.int文件即可,extension=php_soap.dll 接着编写服务类。这里单独建立一个Webserver文件夹,把所有的web服务类都放置在里面。这样做的好处不言而喻,一方面为了组织的方便,另一方面可以实现团队协作开发,相互之间不会有过多影响。如下图所示: 在Webserver文件夹下面,我们可以编写各种业务逻辑代码,这里仅是演示之用,所以非常简单。当然了,你还可以在里面实现更为复杂的逻辑。 现在,我们就可以实现web服务端了。在IndexAction.class.php文件里面编写一段web服务端代码,启动web服务。 接着,我们在web客户端编写一小段代码,就可以获取提供的web服务了。 现在你在浏览器上就可以查看到 PrintHello 输出的内容了。

Thinkphp Left Join/Right Join 实例

第一个表为Comment表,第二个表为Reply表, MYSQL上测试语句为:select a.*,b.* from comment a left join reply b on a.id=b.cid //Left Join $Blog->table('comment a')->join('reply b on a.id=b.cid')->field('a.*,b.*')->order('id desc')->limit('8')->findall(); //Right Join $Blog->table('comment a')->join(array('right','reply b on a.id=b.cid'))->field('a.*,b.*')->order('id desc')->limit('8')->findall();

Thinkphp htaccess rewrite的问题

我的网站Thinkphp配置URL_MODE为2, 传到服务器就出现这样的错误,无论进什么页面都会跳转到首页. htaccess文件的配置如下: 后来发现问题出现在Apache的版本上,好像不同版本对rewrite的解析不一样。 修改htaccess如下后,工作正常:

ThinPHP中Join实用举例

这里使用了两个表,第一个表为Post表,第二个表为Category表。 MYSQL语句为: ThinkPHP中Join的写法: 如果你在ThinkPHP中设置了表的前缀,那么在写Join的时候,表名也要加上前缀。