Submitted by gouki on 2014, September 11, 11:24 PM
在使用Stat插件时,发现代码中存在一个小BUG,是对Columns not found的判断有问题,原代码写的是:
XML/HTML代码
- 'Mysql' == $type && 1051 == $code
但事实上,如果你使用的是PDO,$code 还应该加上 42S22,所以上述代码就应该改成这样了
PHP代码
- ('Mysql' == $type && (1054 == $code || $code == '42S22'))
然后就可以安装成功了。
该插件的信息是:
XML/HTML代码
- /**
- * 页面浏览次数统计插件
- * @package Stat
- * @author Hanny
- * @version 1.0.2
- * @dependence 10.8.15-*
- * @link http://www.imhan.com
- * 历史版本
- * version 1.0.2 at 2010-07-03
- * 终于支持前台调用了
- * 接口支持Typecho 0.8的计数
- * 增加SQLite的支持
- * version 1.0.1 at 2010-01-02
- * 修改安装出错处理
- * 修改安装时默认值错误
- * version 1.0.0 at 2009-12-12
- * 实现浏览次数统计的基本功能
-
- */
不过由于这个版本比较早,就将就一下啦
PHP | 评论:1
| 阅读:18529
Submitted by gouki on 2014, September 5, 2:47 PM
在某个项目中,每次提交都丢了部分数据,觉得非常奇怪,开始的时候以为是数据量过大,但后来又觉得不应该,因为如果是数据量过大,要么就是提交失败,要么就是直接报错啊?
但事实上我每次提交都是成功的,但print_r($_POST)的时候,总丢了不少的数据,这是为什么呢?
于是,将http头中的form内容全部copy出来,查看了一下,发现共是1200多行。打印POST的时候,只有1000行,咦,这不科学啊?少了200多行?
google了一下,原来,PHP有这么一个配置:
XML/HTML代码
- ; How many GET/POST/COOKIE input variables may be accepted
- ; max_input_vars = 1000
而它的默认值 是1000,好吧,如果不是这次意外,根本不会发现项目中存在的这个BUG,毕竟要提交1000多个参数还是有难度的。顺便说一下:param[]=1¶m[]=2是属于两个参数。所以如果你提交的项目中有多个数组,每个数组又有不少值的话,你就真的要小心了
手贱,将max_input_vars 改成5000,问题解决。。
------
回顾,这种因为偷懒的事情往往出现在哪里呢?
1、ajax提交,不管三七二十一,将某堆数据 serializeArray(),jquery的这个功能,偶尔真心会让人吃药。
2、日程管理和广告排期管理,这时候input的key确实 有可能会超过1000,但我还是建议先序列化再存到一个字段提交更安心 吧?
------
OVER
PHP | 评论:1
| 阅读:17774
Submitted by gouki on 2014, September 3, 9:53 AM
在thinkPHP的模板中,有几个tag标签都是用来引入js和css的,比如:import/css/js/load之类的,经过测试,好象load这个Tag有BUG
比如:<load href="/assets/static/wap/css/reset.css"/>,加载一个CSS文件,这个没问题,但如果使用<load href="/assets/static/wap/css/reset.css?ver=1"/>,这种就直接失效了。
当然如果你使用<css file="xxxx?ver=1" />是有效的
看了下代码,好象在没有明确标记类型的时候,程序判断后缀名失效了。<css>标签是主动告诉import程序,我的类型是css,而load是根据代码判断的,因此,对于load应该主动加上type="css",或者,修改程序:
看划线的地方,这里应该先basename,把?或者其他带有版本的信息先去除干净才OK。
或许这是一个bug,或许,就是提示你应该主动加类型。
PHP | 评论:1
| 阅读:20597
Submitted by gouki on 2014, August 19, 10:06 AM
突然感觉自己好象受不了太平洋保险了
之前我的车险快到期的时候,太平洋有3拨以上不同的人给我电话,口气生硬说是你要保险了,马上来办吧。
拒绝之后过两天又有人电话过来,上午和上午还是不同的人。难道自己内部也没有处理这事情吗?
口气生硬、说话也很冲,真不知道他们是怎么做保险的。当然,基于这样的情况,我是肯定没有选太平洋保险的了。
Misc | 评论:2
| 阅读:19187
Submitted by gouki on 2014, August 18, 1:39 PM
因为debian 7安装docker的手续比较麻烦,所以我把阿里云的系统换成了ubuntu 14.04,然后参考:https://docs.docker.com/installation/ubuntulinux/
还算比较方便:apt-get update && apt-get install docker.io,然后再改两个配置就完事了。
不过,在你运行docker run -i -t ubuntu /bin/bash的时候,会报错,说是docker -d好象没有运行,这不科学 啊,刚刚不是装好的吗?
于是ps aux|grep docker,果然没有进程,于是直接输入:docker -d,然后就发现报错了:
XML/HTML代码
- 2014/08/18 12:05:42 Could not find a free IP address range for interface 'docker0'. Please configure its address manually and run 'docker -b docker0'
老规矩,内事不决问度娘,外事不决问谷歌,结果居然看到有人回复 :
当时这个心就碎了,心想这不科学啊,于是再google,就真的发现了:
OK,那就试试吧:
XML/HTML代码
- sudo brctl addbr docker0 # create your bridge
- sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
- sudo ip link set dev docker0 up # bring it up - not really sure if this is necessary or is it done automatically
- sudo ifconfig docker0 10.0.0.4 # give it an IP
当然要运行brctl还是要装一个bridge-utils工具的,当然这个ubuntu会提醒你,一步步的做完后,docker 果然可以启动了。这时候再运行一下,service docker.io start,然后ps aux|grep docker,进程还活着。
于是输入:
XML/HTML代码
- docker run -i -t ubuntu /bin/bash
- Unable to find image 'ubuntu' locally
- Pulling repository ubuntu
- 2014/08/18 12:16:44 Get https://index.docker.io/v1/repositories/ubuntu/images: dial tcp: lookup index.docker.io on 10.143.22.118:53: no answer from server
咦。不能上网。其实就是上面的代码的问题,因为默认aliyun的eth0是内网IP,所以上述的
- sudo brctl addif docker0 eth0 # mask an existing interface using the bridge
- 这里应该用eth1
重新执行一下。然后再次运行:
XML/HTML代码
- docker run -i -t ubuntu /bin/bash
- Unable to find image 'ubuntu' locally
- Pulling repository ubuntu
- c5881f11ded9: Download complete
- 。。。。。。。
整个就完成了
Tags: docker, aliyun
Linux | 评论:1
| 阅读:23576