随笔分类 -  1.3 PHP

上一页 1 ··· 4 5 6 7 8 9 下一页
摘要:原文:http://zhangxugg-163-com.iteye.com/blog/1835721好文章不得不转。我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题:为什么要使用PDO而不是mysql_connect?为何PDO能防注入?使用PDO防注入的时候应该特别注意什么?一、为何要优先使用PDO?PHP手册上说得很清楚:Prepared statements and stored proceduresMany of the more mature databases support the concept of prepared stateme 阅读全文
posted @ 2014-02-25 12:22 x3d 阅读(397) 评论(0) 推荐(1)
摘要:原文:http://blog.andsky.com/quercus-php-ngame/ 经过半年的开发,我们第一款手游戏终于开发完毕,架构使用了 netty + Quercus 实现用 php 通过 websocket 与客户端通信。 项目上线近一个月,基本稳定。而且不存在性能方面问题,之前在内网 阅读全文
posted @ 2014-02-24 09:29 x3d 阅读(356) 评论(0) 推荐(0)
摘要:在做APP的过程中,需要服务端的接口数据。是用Json格式还是Xml格式呢,很多人会说还是xml习惯。然而PHP更适合返回的还是json,php核心库中就包含了json编码的函数,可以直接将数组转json;而生成xml则会比较麻烦。忽然看到一篇文章:http://www.jcodecraeer.com/a/phpjiaocheng/2013/1009/1567.html发现还挺受启发的。他是利用各种框架中的模版引擎,直接定义xml的数据结构,关键处通过模版变量赋值。他是以DedeCMS举例。因为织梦的模版引擎是一款通用的模版引擎,不限于html。比如在模版文件中,定义: ... 阅读全文
posted @ 2014-02-21 23:16 x3d 阅读(997) 评论(0) 推荐(0)
摘要:尽管pw团队解散,但无数站点仍在运行。该插件的名字叫jbjingpai无意中看到这样一篇帖子,说有漏洞http://www.phpwind.net/read/1716722 ,不是空穴来风,查一下代码。果然有,正是 有奖品的地方就有江湖。1. $tid整型变量没有做整型检出和转换,那后面所有sql都因此而引入了注入风险;2. 因此而造成的可重复领取积分具体修复方案稍后奉上。 阅读全文
posted @ 2014-02-12 23:42 x3d 阅读(987) 评论(0) 推荐(0)
摘要:有人反映PHPWind 8.7中后台可以直接修改用户名的功能太过随意,干脆禁掉。OK,研究一下他的代码,admin/usermange.php tempalate/admin/usermange.htm。比较简单:1. 界面上将input框改为文本输出,大约在模版文件的185行, 用户名 $username 当前会员的用户名 2. 业务逻辑php文件,大约200行,$oldinfo = $userService->get($uid);的后面,插入一行:$username = $oldinfo['username'];OK,绿色环保,搞定。 阅读全文
posted @ 2014-02-10 23:26 x3d 阅读(711) 评论(0) 推荐(1)
摘要:需要我们用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的。比如模版引擎解析模版、垃圾敏感信息过滤等等。一般这种情况,我们用正则按我们的规则去匹配preg_match、替换preg_replace。但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少。根据前面说的,两种场景:统计分析,用匹配;处理用替换。下面是对网上一篇文章的整理,写得很好,不得不转一下。http://e.v-get.com/w3c/PHP_preg_replace.html其实,这篇文章可能只是他用于做seo的,但内容整理得确实很有诚意。PHP preg_replace() 正则替换,与 阅读全文
posted @ 2014-01-31 20:47 x3d 阅读(641) 评论(0) 推荐(2)
摘要:其实,我不确定Quercus是否可以被认定为一门JVM语言;其次Quercus这个东东分开源版与商业版,开源版只能解释执行、而商业版能编译成Java字节码。 但我知道国内,阿里巴巴很早就在使用它,当然,他主要是把它作为一个前端页面的模版引擎,提供给用户自定义商铺样式时数据调用。 这也是一种典型的使用 阅读全文
posted @ 2014-01-25 11:09 x3d 阅读(1062) 评论(0) 推荐(0)
摘要:没有深入过pw,被人问到这方面的问题,搜索了一下,发现了一篇博文,但原博客已打不开。http://www.phpsoho.com/html/document/200608/1154750694.htmlphpwind 8.7有人说过“phpwind“在技术是成功的,而dz在商业上成功的,在rewrite的控制中,pw做得远远比dz好。关于pw的重写,首先他用到了一般人不会太关注的一个技术点,输出缓冲(output buffer - ob_):就是一般我们用echo print 输出字符到页面上的时候,意味着只要执行到了echo,php就会立即输出到客户端,但php有几个和缓冲相关的函数(参看: 阅读全文
posted @ 2014-01-23 22:45 x3d 阅读(815) 评论(2) 推荐(1)
摘要:pw9在此不谈,他是完全重构的作品,是完全MVC下的体系。当然,其中很多东西在PW8.7下已经可见端倪。主要代码结构1. 以现代的观点,PW是多入口应用模式,程序根目录下的文件几乎都是入口;2. require下是系统的基础类库文件;3. lib下是具体的业务逻辑代码,这其中其实是最面向对象的部分,代码质量也挺高;4. mode下是外围的功能,cms之类,对应mode.php;5. hack是所谓扩展,对应hack.php;6. hook是系统内部的钩子;7. u下是profile目录下,对应u.php profile.php;8. apps下是用户功能的扩展,对应apps.php;程序执行顺 阅读全文
posted @ 2014-01-20 20:14 x3d 阅读(498) 评论(0) 推荐(1)
摘要:13年无意中翻看DedeCMS的代码,发现DedeCMS中是有了一个基本MVC框架的,在现有的版本中,主要是应用到了ask、book等模块上。织梦这个东西,里面很多设计思想是非常优秀的,但整体代码的质量不够高,处处都是重复代码。在织梦里面,MVC基本上是最简状态,只用来进行代码分工。从框架的角度来说,他还是多入口模式,因为没有引入整体的路由调度体系,这是一个比较大的问题。所以自己尝试将其他框架中的一个Router类引入后,借助DedeTemplate类的扩展体系,加入一个url的标签,用于创建统一的路径模式{dede:url path="/module/control/action& 阅读全文
posted @ 2014-01-18 23:39 x3d 阅读(1585) 评论(0) 推荐(0)
摘要:## 访问数据库 ### 数据库结构 PrestaShop的数据库表默认带有ps_的前缀,前缀在安装时可以自定义。 所有表名都是小写,以下划线分割。当一个表表示要在两个实体间建立连接时,表名中两个实体的的名称都要出现,比如ps_category_product表示将产品关联到对应的分类。 几点细节: 阅读全文
posted @ 2014-01-04 12:09 x3d 阅读(1241) 评论(0) 推荐(0)
摘要:## 环境要求 - Unix, Linux 或 Windows - Web服务器:Apache 1.3 或更高的版本 - PHP:5.2或更高版本 - MySQL:5.0或更高版本 PrestaShop也可以在Microsoft的 IIS Web server 6.0或更高版本,及nginx 1.0 阅读全文
posted @ 2014-01-04 12:08 x3d 阅读(1455) 评论(0) 推荐(0)
摘要:原文:废话不多译了,讲重点。代码风格验证工具:CodeSniffer()PS的验证适配文件: 用户提交的数据,通过 Tools::getValue('name')的方式获取,但它不对数据进行安全性校验,切记!有个pSQL($value)的方法可以用来过滤SQL注入语句。方法参数尽量带类型的指定:public myMethod(Array $var1, $var2, Object $var3)数据库表名要加前缀,写法 ... FROM `'. _DB_PREFIX_.'customer` ... 阅读全文
posted @ 2014-01-04 12:07 x3d 阅读(492) 评论(0) 推荐(0)
摘要:# 第一篇 基础PS(PrestaShop简称)一开始就设定了能够在它的基础上很简单的构建第三方模块的机制,让它成为一款具有极高定制性的电子商务软件。PS的可以在三个方面进行定制: * 主题 * 模块 * 系统功能重载默认情况下,PS已经内置了超过100个模块,官方的扩展站点上有超过2000个模块。## 概念PS是用PHP技术以面向对象的方式开发的,你如果要开发模块的话,需要具备这方面的基础知识。模块是对PS进行以下方面的一种扩展: * 为PS提供额外功能 * 在站点上查看额外项目 * 与其他电子商务服务(购物指南、支付平台、物流等)进行通讯 * 系统本身功能的重载,PS是完全面向... 阅读全文
posted @ 2014-01-04 12:06 x3d 阅读(1784) 评论(0) 推荐(0)
摘要:实例: - /source/class/table/table_forum_faq.php - /source/class/model/model_forum_post.php - /source/plugin/security/table/table_security_evilpost.php ## 引入公共类import($name, $folder = '', $force = true)1. 会索引被引入过的类,防止重复引入;2. import以应用根目录的source目录为起点进行查找,再子一级目录以$folder定义为起点,$path = DISCUZ_ROOT.& 阅读全文
posted @ 2014-01-04 12:05 x3d 阅读(778) 评论(0) 推荐(0)
摘要:参考文档:Discuz中涉及数据缓存的地方有:1. session Dz的session只保存了登陆状态,不是我们理解的保存整个会话状态的概念2. cache3. syscache4. memory我们通常意义上的缓存应该是对应到discuz的memory这一块,其他的三项可能是历史遗留问题,造成在使用时有较多的入口。先说session,Discuz的session是完全独立的,存放在数据库表 - common_session中,使用时需以$discuz->session->set('lastolupdate', TIMESTAMP);形式调用。表结构与一般缓存的k 阅读全文
posted @ 2014-01-04 12:04 x3d 阅读(842) 评论(0) 推荐(0)
摘要:伪静态即是说以类似访问服务器中静态资源文件的方式来访问动态页面,如http://x3d.cnblogs.com/url-rewrite-concept.html,实际上访问的可能是http://www.cnblogs.com/router.aspx?username=x3d&title=url-rewrite-concept伪静态的实现有两种方式:1. 基于Web服务器软件的url rewrite功能,apache的mod_rewrite模块专门做这件事的2. 基于编程语言CGI接口的path_info参数传递作用:1. 用户友好、优雅2. 搜索引擎友好优缺点:从他们发生作用的环节,就 阅读全文
posted @ 2012-10-26 23:14 x3d 阅读(688) 评论(0) 推荐(0)
摘要:原文:http://huoding.com/2011/05/02/64 Martin Fowler在他所写的《企业应用架构模式》一书中感慨道:MVC已经成为我们最常误用的模式。人们之所以常常误用MVC,很大程度上是因为混淆了不同的MVC变体。 Classic MVC 大概上世纪七十年代,Xerox 阅读全文
posted @ 2012-06-27 21:50 x3d 阅读(374) 评论(0) 推荐(0)
摘要:模式是程序员之间的交流语言,代理(Proxy)和委派(Delegate)是模式中常见的词汇,不过很多人把他们混淆了,甚至等同起来,这会造成很多沟通交流上的误解,下面说说他们的区别,先看一个UML图: 图形已经表述的很直白了,如果还不清晰,可以看看下面的代码: 01 interface Subject 阅读全文
posted @ 2012-06-27 21:05 x3d 阅读(2885) 评论(0) 推荐(1)
摘要:看起来在web API协议之争(如果曾经有过)中,潮流正稳步的转向REST,SOAP已经被逼退。Web开发者们选出了他们心目中的目标,他们要RESTful APIs。 下面的是2008年和2010年各种不同的API协议部署量的对比图,来源于ProgrammableWeb上的2000多个web API 阅读全文
posted @ 2012-06-27 20:49 x3d 阅读(334) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8 9 下一页