手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 免费部署 N8N 的 Zeabur 注册 | 登陆
浏览模式: 标准 | 列表Tag:apple

yii-1.1.0-validator-cheatsheet

官方的GUIDE里,对于validator的介绍太少了,只有这么一段 :

7. Validator(验证)

 

Validator需继承CValidator和实现CValidator::validateAttribute方法。

class MyValidator extends CValidator
{
protected function validateAttribute($model,$attribute)
{
$value=$model->$attribute;
if($value has error)
$model->addError($attribute,$errorMessage);
}
}

即使在这里,http://www.yiiframework.com/doc/api/1.1/CValidator,介绍的也不是特别的多,后来,找到了这个cheatsheet,感觉还不错,对应一下api的内容,感觉有点爽

感谢龙井的回复,使得我注意到了wiki,地址:http://www.yiiframework.com/wiki/56/reference-model-rules-validation/,可以关注一下下哦

 

附件: yii-1.1.0-validator-cheatsheet.pdf (60.78 K, 下载次数:3725)

Tags: yii, cheatsheet, validator, framework

Mysql: 'reading initial communication packet'

在虚拟机上装了一个mysql,然后在自己的机器上连接的时候出现这个错误: 'reading initial communication packet',找了一下资料发现原来默认的my.cnf中,对SERVER的IP进行了简单的绑定,只要去掉绑定即可

于是先whereis mysql,知道了mysql配置文件的位置在/etc/mysql下,然后
vim /etc/mysql/my.cnf
找到:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address           = 127.0.0.1

将bind-address前加上注释即可,然后/etc/init.d/mysql restart ,OK一切都搞定了。
做个笔记

Tags: mysql, remote, bind

Ipad 新装两个软件:goodreader 和 pdf reader

快期末考试了,书籍都在笔记本里,如果拿着笔记本看书一来是太重,二来时间也不长,三来时间长了发热很厉害。

自从有了ipad,自己也在折腾它,网上找了一下哪些软件能够看word,excel之类的。搜到的就是goodreader,于是欣欣然装了上去。

文件的上传很有意思,它是自己开了一个web页面,可以在里面简单的创建目录和上传文件。确实比较方便。打开word后,效果基本没有什么变化(我没有测试docx这种07以上的格式,不知道结果如何)

至于pdf reader嘛。那肯定是必装软件了。要知道我很多电子书都是pdf的。买epub文件太贵 ,但是PDF我可是保存了不少。ipad最大的功能就是用来看书,我不需要背上很多很多书就能看了。

刚才在论坛里看到有人说为什么选择ipad而不是上网本之类的,我觉得有一点说的很好,那就是【大意,我不记得原文了】:1、ipad的屏幕比普通上网本要好很多2、ipad的启动非常快,不象上网本等启动和关闭都要不少时间。3、当看PDF之类的文章时,上网本不能竖起来看全屏,而要不停的拖动页面。4、这是3的扩充,上网本你不得不带一个鼠标备着(假设你对触摸板不怎么感冒)。5、看到一些重要内容需要放大时,没有ipad方便。【当然,你说要做笔记什么的,可能在输入上并不一定比上网本好,但你在看书的时候,有多少时间会做笔记?偶尔输入一两个字也还是可以忍受的】

OK,不折腾了。开始看书了。。。

Tags: ipad, goodreader, pdfreader

子域和根域同名cookie的处理

PHP处理COOKIE是一件很方便的事情。print_r($_COOKIE)就可以打印所有的cookie变量。而且cookie也能够存为数组。确实操作和应用都非常方便 。

以前,对于子域和根域下的cookie并没有研究太深。因为都直接设在根域的。以前注意cookie是路径(path),这个的影响也是有的。不过现在大多数程序的cookie都是设在根路径(“/”)下,所以也回避了不少问题。

以下是老王提出的问题和解决方法(子域和根域同名cookie的处理),引伸开的话,你也可以测试一下,根路径与子路径下同名cookie的情况。【果然,老王文章结尾就是这样的提问,呵呵】

我们都知道,在子域下请求时,浏览器会把子域和根域下的Cookie一起发送到服务器,那如果子域和根域下有一个同名Cookie,当我们在PHP里使 用$_COOKIE访问时,到底生效的是哪个呢?下面做试验测试一下,测试使用Firefox,用到了以下插件:SwitchHosts+WebDeveloper+Firebug

注意:试验结果可能因为浏览器的不同而存在差异。

首先通过SwitchHosts设定虚拟域名:www.foo.com,并且配置好Web服务器,当然,你手动设置Hosts文件也可以,我本意是为了多介绍几个工具。

然后编写设置Cookie的PHP脚本,先设置子域,再设置根域:

PHP代码
  1. <?php  
  2. setcookie("bar""www", time() + 10, "/""www.foo.com");  
  3. setcookie("bar""foo", time() + 10, "/"".foo.com");  
  4. ?>  
再编写浏览Cookie的脚本:
PHP代码
  1. <?php  
  2. var_dump($_COOKIE);  
  3. ?>  
BTW:最初写脚本的时候我竟然在setcookie前使用了var_dump,也就是在发送请求头之前有了输出,犯了这样的初学者错误实在是罪过,可更令人惊讶的是脚本没有报错,查了半天原来是因为php.ini里缺省output_buffering = 4096。

先设置再浏览,就能看到结果了,结果显示有效的是子域下的Cookie。

重开一个浏览器窗口,并使用WebDeveloper删除Cookie,或手动删除,避免对结果造成影响。

然后调换两次调用setcookie的顺序,也就是先设置根域,再设置子域:
PHP代码
  1. <?php  
  2. setcookie("bar""foo", time() + 10, "/"".foo.com");  
  3. setcookie("bar""www", time() + 10, "/""www.foo.com");  
  4. ?>  
先设置再浏览,就能看到结果了,结果显示有效的是根域下的Cookie。

重复两次测试过程,并用Firebug记录下请求头的差异:

第一次先设置子域,再设置根域:请求头Cookie的值是bar=www;bar=foo,结果有效的是bar=www
第二次先设置根域,再设置子域:请求头Cookie的值是bar=foo;bar=www,结果有效的是bar=foo

也就说,同名Cookie对于服务端PHP来说,在请求头Cookie中,哪个在前哪个生效,后面的会被忽略。

如果使用的不是Firefox,那就用不了Firebug,此时可以用PHP代码来检测Cookie头:
PHP代码
  1. if (isset($_SERVER['HTTP_COOKIE'])) var_dump($_SERVER['HTTP_COOKIE']);  

以上的实验结论是基于Firefox而言的,由于不同的浏览器发送Cookie的策略可能有差异,所以在其他浏览器上结果可能会有所不同,比如在 Safari下就始终是子域有效,其他浏览器如Opera,Chrome等未仔细测试。鉴于这个混乱的结论,所以还是不要在子域和根域下使用同名 Cookie为好!

题外话:类似的情况,如子目录和根
目录下的同名Cookie是什么情况,读者可以自行测试。

--EOF--

原文来自:http://hi.baidu.com/thinkinginlamp/blog/item/899551dacd807ad6b6fd48cd.html

 

Tags: cookie, 老王, 子域, 根域

Records:912