09-11
2011

Willin的ajax评论再编辑功能存在的Bug

    据我观察大部分中文wordpress使用的ajx评论均为willin的ajax评论代码,这个代码是存在bug的。建议慎重开启评论再编辑功能,当然如果您只是个人blog不在意这个bug也无所谓。

    这个bug就是后台验证不严密,后台对于再编辑的处理仅仅是

// 增加: 檢查評論是否正被編輯, 更新或新建評論
if ( $edit_id ){
$comment_id = $commentdata['comment_ID'] = $edit_id;
wp_update_comment( $commentdata );
} else {
$comment_id = wp_new_comment( $commentdata );
}

阅读全文…

09-11
2011

@回复的邮件通知问题

    试了好几个插件均存在各种bug,以Mail to Commenter 为例说明,这个插件思路是正确的,但是在确定回复对象时就略显粗暴了些。这个插件会查询@后的名字在数据库里的最后一条结果来提取其Email及其回复内容。这样就必然要存在问题。例如某人在5楼跟10楼都发表回复了,而我回复的是5楼,发送的邮件依然会提示我回复的是10楼。虽然可以删除掉这些提示,但我总觉得不够完美。

    还有一个问题,譬如3楼@回复了2楼,而4楼又引用了3楼,这样4楼的内容里就也包含了@回复2楼的东西,这样就又会发邮件给2楼,这个应该不合我们的本意。

    所以说这个插件做得略显粗暴了些,我目前还没发现一个设计良好的插件。确实也因为@回复的情形太多,做一个普遍适用的插件太难。

阅读全文…

09-09
2011

明天开始,全力考研

造这个主题浪费了不少时间,现在这个主题也算测试的差不多了,这个博客也算可以见人了。明天起,各种不再折腾,全天图书馆自习,不能再这么没效率的复习下去了。明天起开始严格遵守以下时间表。

  • 早上7点半起床,8点去食堂吃早餐,8点半到达图书馆开始自习。
  • 中午11点30吃午饭,然后回图书馆午休至1点,开始上下午的自习。
  • 下午5点半吃饭,之后返回图书馆开始晚上的自习。
  • 9点半回寝室。11点准时睡觉。

就这样吧。希望能说到做到!!! 是必须说到做到!!木有时间了有木有!!!每日来此贴签到!!!

09-07
2011

用 C++实现基于Session的权限管理系统

引言

互联网与各种应用软件随着社会的信息化,扮演着一种越来越重要的角色,然而在竞争非常激烈的情况下,如何能够在广泛应用的基础服务之上,提供差别化与精细化的服务,是一个企业成功的关键。针对这个问题,本文提出一种用 C++ 实现基于 session 的细粒度权限解决方案,以实现这种差别化的服务。

Session 介绍

常见的 session 可以分为两种 : 一个是网络 session,一个是应用程序 session。

网络 Session

session 和 cookie 不同,它一般用于客户端保存用户的信息。例如,当你登录一个网站时,网站一般会把你的用户名和密码保存在计算机 C 盘一个临时文件中。当然这通常都是加密保存的,并且设置了 cookie 的有效时间,你下次访问该网站时,如果 cookie 还没失效,则不用再输入用户名和密码,就能自动登录了。而 session 用于服务器端保存用户信息。每个登录网站的用户都会在服务端分配一个 session,可以用来记录和监控用户的操作。当用户在设定的时间之内没有和服务器交互,服务器为了节省空间,会自动释放 session,下次链接需要再申请 session。

阅读全文…

09-06
2011

当Chmod不再Chmod

在SlidesShare.net上有这么一个幻灯片,其说了如下的一个面试题:

如果某天你的Unix/Linux系统上的chomd命令被某人去掉了x属性(执行属性),那么,你如何恢复呢?

下面是一些答案:

1)重新安装。对于Debian的系统:

sudo apt-get install --reinstall coreutils

2)使用语言级的chmod。

阅读全文…

09-06
2011

如何让ThinkPHP支持ActionChain

什么是ActionChain

在MVC框架中,一般都提供对自定义URL的支持。也就是将所有的请求都重定向到index.php,然后PHP程序通过URL配置规则来确定执行什么样的逻辑。随着产品业务逻辑越来越复杂,页面模块化程度越来越高,一个URL要执行多个逻辑功能。通常的情况就是在对应的Action里分别调用不同模块的接口,然后输出到模版。但这种方式对代码的维护和管理非常不方便,不能很快速的定位到一个URL执行了哪些逻辑。

ActionChain就是用来解决这个问题的,它可以在一个URL里指定按顺序执行多个Action,每个Action可以是相互独立的。这样可以极大的方便了代码的阅读性和维护性。

什么是ThinkPHP框架

THinkPHP是一个国人开发的已经有多年历史的框架,已经有越来越多的中小型产品使用这个框架开发。并且我也用这个框架开发了多个应用。这个框架提供了大量的非常快捷的访问接口,这也是我为什么喜欢这个框架的原因。并且相对于Zend, Yii, CI等框架,要简洁的多。

阅读全文…

09-04
2011

使用PHP的cURL库

使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP库。本文主要讲述如果使用这个PHP库。

 启用 cURL 设置

首先,我们得先要确定我们的PHP是否开启了这个库,你可以通过使用php_info()函数来得到这一信息。

<?php
    phpinfo();
?>

如果你可以在网页上看到下面的输出,那么表示cURL库已被开启。

阅读全文…

09-04
2011

PHP分页技术的代码和示例

分页是目前在显示大量结果时所采用的最好的方式。有了下面这些代码的帮助,开发人员可以在多个页面中显示大量的数据。在互联网上,分​页是一般用于搜索结果或是浏览全部信息(比如:一个论坛主题)。几乎在每一个Web应用程序都需要划分返回的数据,并按页显示。下面的这个列表给出的代码可以让你的开发很有帮助。学习这些代码,对于初学者也很有帮助。

1 ) 使用Ajax分页

下面这个示例使用了jQuery + PHP。Demo Here.

2 ) MySql 分页

数据库的分页处理。

阅读全文…

09-04
2011

对象的消息模型

我们知道,C++ ,Java,C# 都是基于类的静态类型语言,因为抽象层次的不同,这三种语言在对象模型的构建上存在不少差异。但同作为面向对象语言,三种语言基本遵守相同的抽象语言设计规范。本文我们将比较这三种静态类型语言的对象模型与严格消息模型之间的差异。

C++对象模型

话题从下面这段C++程序说起,你认为它可以顺利执行吗?

//C++
class A {
    public:
        void Hello(const std::string& name) {
           std::cout << "hello " << name;
         }
};
int main(int argc, char** argv)
{
    A* pa = NULL; //!!
    pa->Hello("world");
    return 0;
}

试试的确可以顺利运行输出hello world,奇怪吗?其实并不奇怪,根据C++对象模型,类的非虚方法并不会存在于对象内存布局中,实际上编译器是把Hello方法转化成了类似这样的全局函数:

阅读全文…

09-03
2011

2011中国企业500强发布:中国移动排名第五

    2011中国企业500强3日发布,中国石油化工集团公司以1.969万亿元的营业收入继续领跑中国企业500强榜单,中国石油天然气集团公司以1.721万亿元跃居次席,国家电网公司以1.529万亿元居第三位。 由中国企业联合会、中国企业家协会主办,四川省人民政府协办、成都市人民政府承办的2011中国企业500强发布暨中国大企业高峰会3日上午在 成都市召开,中国企业联合会、中国企业家协会连续第10次向社会发布了中国企业500强名单。工商银行、中国移动、中国中铁、中国铁建、建设银行、中国人 寿、农业银行分列第四位至第十位。

    在换榜方面,2011中国企业500强中有60家企业换榜,其中26家因为500强门槛提高而未能入围,12家企业被兼并重组。据中国企业联合会研究部副 主任缪荣介绍,2011中国企业500强去除了一些政企合一单位的申报资格,原因在于这些部门还不是自主经营、自负盈亏的市场经济主体,如有15家地方铁 路局因为不符合申报条件出局,但大秦铁路股份有限公司、广州铁路集团公司等采用股份公司制度成立的铁路公司仍然上榜。

阅读全文…