摘要: 【摘自】http://www.xp-sem.com/what-is-robots-txt-role-writing/robots.txt文件是什么?robots.txt是一个简单的以.txt结尾的文本文件,是搜索引擎Robot(也叫搜索引擎机器人)程序抓取网页时要访问的第一个文件。robots.txt文件有什么作用?通过robots.txt文件,可以和各大搜索引擎很友好的对话,引导搜索引擎机器人抓取你推荐的网页,避免一些意义不大或无用网页,例如网站后 台、会员交互功能等,这在一定程度上也节省服务器网络资源。另外,robots.txt文件对SEO的意义也很重要,可以很好的避免重复、相似网页,以及 阅读全文
posted @ 2012-06-06 23:44 hi_bazinga 阅读(1659) 评论(1) 推荐(0) 编辑
摘要: 第一范式:关系模式中,每个属性不可再分。属性原子性第二范式:非主属性完全依赖于主属性,即消除非主属性对主属性的部分函数依赖关系。第三范式:非主属性对主属性不存在传递函数依赖关系。BNCF范式:在第三范式的基础上,消除主属性之间的部分函数依赖第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名,电话号码组成一个表(一个人可能有多个电话号码)规范成为1NF有三种方法: 一是重复存储职工号和姓名。这样,关键字只能是电话号码。 二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性 三是职工号为关键字,但... 阅读全文
posted @ 2012-06-05 15:47 hi_bazinga 阅读(26884) 评论(3) 推荐(2) 编辑
摘要: 索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。 适合建立索引的列: 1. 在经常需要搜索(where语句)的列上,可以加快搜索的速度 2. 在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构 3. 在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度 4. 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的 5. 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加... 阅读全文
posted @ 2012-06-05 10:09 hi_bazinga 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 1. __construct()和__destruct() 在实例被 创建/销毁 的时候被调用,都可以传递0个或多个参数。 class A { function A() { echo "build A"; } function __destruct() { echo "destroy A"; } } $obj = new A(); //unset($obj); Note:The destructor method will be called as soon as there are no other references... 阅读全文
posted @ 2012-05-19 14:30 hi_bazinga 阅读(1648) 评论(0) 推荐(1) 编辑
摘要: 在一个web应用中,可能有多个地方需要进行验证。比如“注册"时username、email、password这三项必须要填写,但是在“找回密码”时,可能只有email需要。所以,在Yii框架中,如果将这三项都设置为"required"那肯定是不可取的。 最好的解决办法莫过于建立不同的验证场景,通过"on"将一个场景与相应的规则相关联。来看一个User Model中rules()的例子:public function rules() { return array( //Set required fields //Applies to 'r 阅读全文
posted @ 2012-05-18 14:05 hi_bazinga 阅读(784) 评论(0) 推荐(0) 编辑
摘要: 【Yii】Authentication (1)中讨论了Yii进行身份验证的流程,并且实现了通过数据库中的用户信息来进行验证的功能。这一篇将讨论如何实现更复杂的验证例程,涉及邮箱验证、不同的用户角色等等。 在默认情况下,Yii使用cookies来保存用户信息。在大多数情况下是没有问题的,但是如果涉及到一些敏感信息,则须使用sessions。例如用户的ID或role,如果被cookies保存到客户端,那么用户可以很容易地修改,比如把role的值从“user”改成“admin”,那么本来的普通用户现在就能拥有管理员的权限,这必然是不能被接受的。 所以,我们首先把cookies的功能禁用。通过... 阅读全文
posted @ 2012-05-18 13:24 hi_bazinga 阅读(2376) 评论(0) 推荐(1) 编辑
摘要: 大多数网站都有身份验证系统,用户必须登录才能发表文章、评论内容甚至管理网站等等。无论如何,在用户进行任何操作前对其身份的检验是必须的。Yii框架自动生成的网站中使用内嵌的验证程序,下面三个文件会自动生成,用来管理验证: LoginForm.php定义相应的规则和行为login.php即登录时的form本身,UserIdentity.php定义了执行实际验证功能的model。当然,protected/controllers/SiteController.php中的部分代码使得action可以执行,即controller。 UserIdentity.php中是身份验证的核心内容,默认的代码... 阅读全文
posted @ 2012-05-17 15:52 hi_bazinga 阅读(2724) 评论(0) 推荐(0) 编辑
摘要: 在Yii为Model生成的Controller中,有一个accessRules()方法,用来限制谁可以做什么。这是涉及一个web应用的安全性的重要部分。比如有些删除和更新操作只能由管理员来完成,普通用户没有操作的权限等等,这些都需要通过accessRules()来设置。 这是Yii默认生成的代码:public function accessRules(){ return array( array('allow', // allow all users to perform 'list' and 'show' actions 'action 阅读全文
posted @ 2012-05-15 20:37 hi_bazinga 阅读(1505) 评论(1) 推荐(0) 编辑
摘要: Wikipedia:Lazy loading is a design pattern commonly used in computer programming to defer initialization of an object until the point at which it is needed. It can contribute to efficiency in the program's operation if properly and appropriately used. The opposite of lazy loading is eager loadin 阅读全文
posted @ 2012-05-14 18:27 hi_bazinga 阅读(1116) 评论(0) 推荐(0) 编辑
摘要: 转自 http://www.cnblogs.com/mrcoke/articles/2407771.htmlYiiBase类为YII框架的运行提供了公共的基础功能:别名管理与对象创建管理。 在创建一个php的对象时,需要先include这个类的定义文件,然后再new这个对象。在不同环境下(开发环境/测试环境/线上环境),apache 的webroot路径的配置可能不一样,所以这个类的定义文件的全路径就会不同,Yii框架通过YiiBase的别名管理来解决了这个问题。 在创建对象时,需要导入对应类的定义,经常需要使用这5个函数:include()、include_once()、requi... 阅读全文
posted @ 2012-05-10 16:54 hi_bazinga 阅读(875) 评论(0) 推荐(0) 编辑