2011年12月11日星期日

discuz的表情无法加载

      作为一个开发人员,对于项目所采用的框架和技术不仅要非常熟悉,而且对于开发工具的熟练运用,也是非常必要的。主要是能够提高工作效率。
     今天忽然发现一个问题,测试环境上的论坛的表情功能无法使用了——表情的图标没有加载,还好正式环境不会出现这种状况。通过对正式环境和测试环境的观察和分析,用Google浏览器的开发人员工具(Firefox的firebug)进行跟踪,终于发现了问题的所在——加载表情功能的配置文件被纂改了,这个JS文件是通过缓存生成的,在后台把重新启用表情的这项功能关闭再启用就可以了。

2011年12月1日星期四

Discuz验证码错误

   前几天在开发环境上虽然存在着一个问题——论坛在发表帖子的时候,要回答验证码才能提交,但总是出现即使是正确的答案还是显示错误的提示(图3)——但还是没放在心上,直到正式环境出现同样的问题时,我才震惊了。
    大多数时候,我找Bug的时候,是从错误点出发的,但有时并不能找出错误的所在。这是就会出现头痛医头,脚痛医脚的情况。
    有时你必须了解这个运行的过程,从程序的一开始就要捕捉它与后台服务器之间的通信,这样才能很快地发现问题所在。
    就像今天碰到的这个问题,我只从把验证码的答案发送的这个步骤(图2)开始捕捉,虽然发现了问题所在,但就是找不错导致这个错误的原因,因此不知道何处改起。主要是没有与前一个步骤(图1)之间的关系联系起来。后来恍惚之间才发现问题所在。


图1
图2
图3


2011年11月26日星期六

PHP Chart

很多时候,了解一门学科的发展史是很重要的。因为一门学科的形成肯定有一个发源地,而那个发源地肯定有着关于这方面独天得厚的氛围。自然而然,这门学科的 资料在那里也是最多的。就像今天做项目时要把数字展示成雷达图来显示,起初用中文的关键词Google一下是否能够找到关于这方面的技术,可惜找不到,后 来换成英文的关键词总算搜索到了。关于生成各种图的技术。原因很简单,IT本来就是一门国外的学科,国外的资料肯定要比国内的资料多得多。所以,做IT的如果不懂一点英语的话真的不行。

2011年9月9日星期五

Linux下永久修改mysql字符集


1. 查看字符集支持
show character set;
2 .相看字符集相关变量
show variables like "character_set%";
3. 设置默认字符集
MySQL默认安装使用的字符集是latin1
为解决乱码问题,最简单的办法就是修改默认字符集。
MySQL 5.1 linux(
5.1.63-0ubuntu0.10.04.1)版本为例,修改默认字符集为utf8:
修改/etc/mysql/my.cnf
找到客户端配置[client] 在下面添加
default-character-set=utf8 #默认字符集为utf8
[mysqld]下加上:
default-character-set=utf8
init_connect='SET NAMES utf8' #设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行
[mysql]下加上:
default-character-set=utf8

4 .linux下启动、停止与重启
/etc/init.d/mysql start/stop/restart

问题:无法用上述命令启动、停止与重启mysql 。出现以下的提示信息
Rather than invoking init scripts through /etc/init.d, use the service(8) utility, e.g. service mysql stop

Since the script you are attempting to invoke has been converted to an Upstart job, you may also use the stop(8) utility, e.g. stop mysql
stop: Rejected send message, 1 matched rules; type="method_call", sender=":1.63" (uid=1000 pid=10142 comm="stop) interface="com.ubuntu.Upstart0_6.Job" member="Stop" error name="(unset)" requested_reply=0 destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init"))

于是参照提示使用以下命令行来重启、启动、停止Mysql
sudo restart mysql #重
sudo start mysql #启动
sudo stop mysql #停止




重新打开终端查看,可以看到字符集相关变量已经变成utf8

2011年8月17日星期三

Discuz短信注入



       昨天中国移动的社区被攻击了,有个用户竟然收到673条短信,所以要找出这个攻击的漏洞在哪里。从这张图中可以看出几条线索:1、短信的内容都是 3,很明显是恶意攻击;2、时间是今天 01:08。所以只要查看服务器在今天 01:08的运行日志就可以快速地找到漏洞。分析终于知道了攻击的入口文件,原来是通过SQL注入的攻击手段,来自于北京移动的IP。


       “对于一个真正的推理家而言,如果有人指给他一个事实的其中一个方面,他不仅能推断出这个事实的各个方面,而且能够推断出由此将会产生的一切后果。正如居维叶 经过仔细思考就能根据一块骨头准确地描绘出一头完整的动物一样。一个观察家,既已透彻了解一系列事件中的一个环节,就应能准确地说出前前后后的所有其他的 环节。我们还没到只要掌握理性就能获得结论的地步。问题只有通过研究才能获得解决,想仅仅依靠知觉解决问题,最后一定会失败的。不过,要使这种才能发挥到 极致,推理家就必须善于利用他已经掌握的所有事实。这就意味着推理家要掌握渊博的知识。”  ——福尔摩斯

2011年5月26日星期四

编写xorg.conf进不了Ubuntu的解决方案

    电脑在win 7 系统下硬盘安装了64位的Ubuntu 10.10,但是系统却无法辨别正确的分别率,用Google搜了一些设置分别率的方法,编写xorg.conf 简单三行解决Ubuntu分辩率不可调的问题,设置后连系统都进不了,也无法进入命令行界面。最好想到的解决方案就是用Ubuntu 10.10文件重新进入livecd模式,把 xorg.conf 文件给删了。重要一点就是别把livecd模式下的文件系统跟安装好Ubuntu的文件系统给搞混淆了。