首页 | 摘要显示 | 1 2 3 4 5 6 7 8 9 下一页

Weblog Archives

August 31, 2006

对Movable Type插件SCode的一点改进

    Fenng的站点关掉了留言的验证码(SCode插件)功能, 居说是因为这个功能占用了太多的资源, 导致了主机的负荷比较高, 不过这样之后不知道他是如何来挡垃圾留言了. 听到这个消息后, 我花了一个小时改了这么一点Perl程序, 因为我不懂Perl. 主要的改进是原来的SCode插件每次访问都要调用图形库函数, 去重新生成验证码的图片, 而我的改进之中是将这些图片保存起来, 这样的话下次访问时就直接从文件中读了, 而不会调用图形库了.

    以我的网站的流量, 是看不到改进的效果的, 因此希望有人去测试一下.

    对SCode.pm文件的改进, 增加了一个函数, 另外限制了生成的验证码的范围为1000-5000, 如下所示:

###########################
#                        #
# Do not modify from here #
#                        #
###########################
sub scode_tmpdir {
    return $tmpdir;
}

if ($code>0 && $code<=$scode_maxtmp)
{
    $scode = 1000 + ($scode % 4000);
    open(OUTFILE,">${tmpdir}${code}");
    print OUTFILE $scode;
    close(OUTFILE);
}

    对mt-scode.cgi的改进, 如果文件不存在就保存到文件, 否则直接从文件中读取, 主要改进如下:

阅读全文

对Movable Type的SCode插件的改进之二

    由于Fenng说他的站点, 就算有SCode插件也收到不少垃圾留言, 说是有些发垃圾留言的机器人可以认识到图片中的数字了. 图片验证码在很多地方都被使用, 但由于SCode默认生成的图片太有规律, 因此可能比较容易识别吧. 我在这儿主要作了两个改进:

  1. 将四个数据用不同的色彩打印出来.
  2. 在每个字符中间画一条和背景色相同的竖线,这样数字就被折成两半了

    当然我的一切修改还只是在理想化的阶段, 可惜我自已的访问量不够, 不能吸引垃圾留言. 还是来看一下我所作的修改吧. 这次只改mt-scode.cgi中的代码, 如下所示:

阅读全文

September 5, 2006

在Lilina中应用静态HTML缓冲来提升访问速度

    我一直用Lilina来做RSS的聚合工具, 因为他够简单. 不过在订阅数超过15时访问就比较慢了, 需要改进一下, 最好是生成静态的HTML缓存文件. 在参考了网上其他人的修改后, 形成了我自已的版本, 只需要修改一个index.php文件, 在这儿我将它命名为index_gen.php, 并作了以下修改(红字部份为新增部份):

/* output buffer control start */
$index_file = "index.html";
ob_start("callback");
$rebuild = 0;

if ($_GET['force_cache']=1)
{
        $rebuild = 1;
}

function callback($str)
{
        global $rebuild, $index_file;
        $res = "";
        if($rebuild)
        {
                $fd = fopen($index_file, "w");
                fputs($fd, $str, strlen($str));
                fclose($fd);
                $res=$str;
                return $res;
        }
        else
        {
          $fd = fopen($index_file, "r");
          $res = fread($fd, filesize($index_file));
          fclose($fd); 
          return $res;
        }
}

/* Function used to sort rss items in chronological order */
function date_cmp($a, $b) {

阅读全文

为Blog的某些页面设置分页选项

    当Blog的文章越来越多时, 在按页或按分类显示这些文章就成问题了, 要不只能显示标题, 要不这个页面就变得过于冗长. 对基于Movable Type 3.2或3.3的用户而言, 可以加入一个插件来解决问题, 你可以看06年8月份的例子.

    首先要下载插件, 将pagedarchives.pl文件拷贝到MT的plugins目录, 然后修改日期和分类的模板就行了. 修改步骤如下:

    第一步在<MTEntries>标记后加入一行:

<MTEntries sort_by="created_on" sort_order="ascend">
<MTPAEntry>

    第二步在</MTEntries>标记后加入一行:

</MTEntries>
<MTPAEnd>

    第三步在模板中加入如下几行, 在什么位置你自已定了:

<MTPAIfMultiplePages>
  <p class="content-nav">
    <MTPAPreviousPage text="Prev">
    <MTPAPageList>
    <MTPANextPage text="Next">
  </p>
</MTPAIfMultiplePages>

    绝对是很不错的插件!

September 7, 2006

将网站升到IE7不容易, 一个JavaScript的问题

    微软(Microsoft)已经发布了IE7的第二个测试版本, 我相信等到正式版发布时, 很多人会用的, 毕竟有很多的新功能及微软说的更安全的特性. 因此将我也下了个IE7的测试版本, 来测试个人站点的视觉效果.

    遇到了一些问题, 第一个是CSS的问题, 这个是Fenng修复了后告诉我的, 因些我在这儿不讲; 第二个问题是Lilina(RSS页面)的, 具体表现为点击文章标题时不能展开和收缩, 在IE6中不存在这个问题. 经过数次试验, 在js/engine.js角本中加了一行代码搞定, 如下所示红色部分:

function ItemShowHide(id)
{
  var status;
  var item = document.getElementById('IITEM-'+id) ;
  var i ;
  ......

    这个问题好象是因为在IE7的JavaScript中需要遵循更严格的语法, 有点象C, 变量在使用前必须要先声明. 到正式版本时应当不会存在这个问题了吧, 按照Java的特点, 变量使用前是不需要声明的.

    可见良好的编程习惯还是有好处的.

1 2 3 4 5 6 7 8 9 下一页

当前分类: Weblog

Creative Commons License
本站版权: 共用创作 CC
署名-非商业性-相同方式分享
本站基于MT-3.36免费版
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql