起因: 在利用MooPHP的一个项目中,接到用户反馈说其所有客户不能上传文件,都返回失败。经过排查发现是PHP中的is_uploaded_file函数在捣鬼。 细节分析: 在正常情况下,通过PHP上传文件,需要通过is_uploaded_file函数来判断文件是否是通过 HTTP POST 上传的,这可以用来确保恶意的用户无法欺骗脚本去访问本不能访…
起因: 今天在调试Ucenter的同步登陆和同步登出的过程中,浏览器突然出现以下错误提示: Your browser sent a request that this server could not understand. Size of a request header field exceeds server limit. 开始是以为P3P协…
前言 无限分类其专业的命名就是存储树形结构,这是一个很常见的问题,但是有很多种解决方案。由于在PHP开发中涉及到关系型数据的存储,除非使用一种像XML的数据库,否则关系数据库中的表都不是层次结构的,他们只是一个平坦的列表。所以你必须找到一种把层次数据库转化的方法。 常用树形结构存储方案比较: 邻接列表模式 在SQL相关的教程文献中关于存储树形结构的…
公司新印制的MooPHP框架文化衫,发上来给大家PP。 想得到文化衫的同学,我可以在这里稍微透露下秘籍(恩,秘籍):在过段时间会举办一个基于MooPHP框架的原创设计大赛,然后... 恩,说的不多吧, 明天低调的发布第一个MooPHP的测试版本,目的是想通过大家更快的发现未解决的bug,然后加快MooPHP框架的速度和进程。所以,大家可以关注下ww…
前言 本文将就UCH二次开发这个核心主题,以各种实现的代码为主,辅助部分说明概略的讲解如何针对UCH进行二次开发。过段时间UCH就开源了,准备到时候再详细的写篇UCH机制分析。 顺便说下,这篇文件写在大约两周以前,但是一直没有时间整理发布,今天听说UCH会在最近一段时间开源,到时候再发反而对大家帮助不大,所以决定不再整理,虽然文中一些说明还不详细,…
有个客户的站点负载过高,于是我们可爱的愤青系统工程师将其的Apache换成Nginx,效果很明显。现在记录一些Apache转换过程中的小细节,留下备忘。 Nginx的防盗链 一般的防盗链如下: location ~* \.(gif|jpg|png|swf|flv)$ { valid_referers none blocked kimi.pub ki…
前言: 在开发MooPHP的过程中,为了寻找更为高效的缓存方式,对两种最常用的缓存方式进行了测试。 PHP常用缓存方式: 第一种,把需要缓存的数据进行处理,形成PHP可以直接执行的文件。在需要缓存数据的时候,通过include方式引入,并使用。 第二种,把需要的数据通过serialize函数序列化后直接保存到文件。在需要使用缓存数据的时候,通过反序…
今日偶然之间发现了这个Apache的mod_aspdotnet项目,发现Apache居然也可以支持ASP.NET。 据说由于IIS和Apache下的ASP.NET都是运行在Common Language Runtime(CRL)的基础上,因此Apache环境下的ASP.NET程序的运行速度不会比在IIS下慢。 而且使用mod_aspdotnet的时…
最近在测试Varnish的过程中,发现了Etag这个HTTP状态标志,发现Etag和Last-Modified配合使用,可以在大负载下对于减轻服务器压力有不小的作用。 什么是”Etag” HTTP 协议规格说明定义ETag为“被请求变量的实体值” 。另一种说法是,ETag是一个可以与Web资源关联的记号。典型的Web资源可以一个Web页,但也可能是…
不得不说,memcache_engine是个很好的东西,根据他官网上的介绍:“The memcache_engine allows memcache to work as a storage engine to MySQL. This means that you can SELECT/UPDATE/INSERTE/DELETE from it a…