仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 729|回复: 7
打印 上一主题 下一主题

[学习教程] PHP网站制作之ZenTaoPHP框架的数据考证机制

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:16:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
怎么培养啊别光说不练啊,好,比如新人入门自己步是配置环境,虽然现在都有很多的集成环境,但是真实的体验下配置环境还是会有很多帮助,不论是你以后工作还是在真实的linux下开发。项目中数据考证在web使用中特别显得主要。上面来给人人先容下ZenTaoPHP框架的数据考证机制。
1、起首来断定一个成绩,即考证的划定规矩放在甚么中央?
mvc程序中,每层都能够放考证划定规矩。好比良多的表单考证,会主动依据用户的输出举行考证,然后赐与提醒。那末数据考证放在哪一层呢?这个成绩收集上人人有良多的争议。有的人次要放在view这一层,有的则主意放在control层。禅道框架选择了model层。
为何如许做呢?由于model层是最低的一层,一切的数据操纵,都要经由model来举行处置。那末只需在这一关把数据考证做好,就能够包管数据的正确和平安。固然,框架的用户,能够同时在前端加上js的考证,和model层的考证不会抵触的。上面来看下怎样利用禅道的数据过滤机制。
禅道的数据过滤分为两个部分,一个是数据修改,一个是数据考证。这个是受php的filter扩大启示,它内里就是分为了这两个部分。先来看数据修改的例子:
2、数据修改:

$bug=fixer::input(post)
->add(openedBy,$this->app->user->account)
->add(openedDate,$now)
->setDefault(project,story,task,0)
->setDefault(openedBuild,)
->setIF($this->post->assignedTo!=,assignedDate,$now)
->setIF($this->post->story!=false,storyVersion,$this->loadModel(story)->getVersion($this->post->story))
->specialChars(title,steps,keyword)
->cleanInt(product,module,severity)
->join(openedBuild,,)
->remove(files,labels)
->get();
起首,是挪用fixer这个类的input办法,它的参数post暗示是从$_POST变量中猎取数据。
紧接着的两行add(),是向数据中增添两个变量。然后前面的两行setDefault则是暗示,当这个变量没有传值的时分,设成默许的值。
接上去是两行setIF。setIF共有三个参数,第一个是判别前提,前面两个分离是key和value。也就是当前提为true的时分,设置$key=$value。
上面的spechialchars则暗示对这三个字段举行htmlspecialchars处置
最初,还必要把两个不必要的变量往失落,利用remove。
经由过程get办法就能够失掉一个已经由修正的完全的数据汇合。这个汇合已能够筹办进库了。让我们来看下数据是怎样考证的。
3、数据反省

这句sql拔出语句经由过程data办法,将修改过的数据传送给dao工具,然后经由过程autoCheck()对其举行主动反省。autoCheck会依据数据库内里字段的范例,长度举行判别。假如范例不合错误,大概长度不合错误,会主动纪录毛病。然后前面挪用了batchCheck()办法,对一批字段举行非空的考证。固然也能够经由过程check()办法对单个字段举行考证。
if(dao::isError())die(js::error(dao::getError()));对,就是如许一句话,假如dao::isError(),则实行getError()办法,然后将其兼并成js的字符串,以告诫框的情势弹出。实行了getError()以后,一切的毛病被清空,如许不会影响下次的实行。
理解动态语言的概念,运做机制,熟悉PHP语法
分手快乐 该用户已被删除
沙发
发表于 2015-1-27 22:21:10 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
透明 该用户已被删除
板凳
发表于 2015-2-5 14:39:48 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
若相依 该用户已被删除
地板
发表于 2015-2-12 08:48:48 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
第二个灵魂 该用户已被删除
5#
发表于 2015-3-3 01:59:05 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
若天明 该用户已被删除
6#
发表于 2015-3-11 08:28:00 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
只想知道 该用户已被删除
7#
发表于 2015-3-18 01:21:05 | 只看该作者
做为1门年轻的语言,php一直很努力。
再现理想 该用户已被删除
8#
发表于 2015-3-25 09:28:20 | 只看该作者
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 11:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表