Firefox下用Flash上传文件的session陷阱

这几天在项目中遇到的问题,稍微整理一下。

HTML 表单是我们常用来进行浏览器与服务器数据交互的途径,除了传递普通的文本数据,通过 type="file" 的 input 控件,我们还可以向服务器发送文件。但在目前的实际使用中,基于 HTML 表单的文件选择框有着下面两个不尽人意之处:

  1. 一次只能选择一个文件
  2. 上传过程中,不能获取文件上传的进度

对于文件选择的数量,事实上在 HTML4.01 规范中对文件选择框的描述虽然没有明确提出可以同时选择多个文件,但从其用词可以看出,文件选择控件事实上是应该支持同时选择多个文件的: »Read More

闲话多提交按钮的HTML表单

在 Web 应用中,最常用的服务器端与客户端的数据交互是通过提交 HTML 表单实现的。以 HTML 4.01 为例,规定当表单提交时,会将 <form> 元素中的 Successful controls 的当前取值提交到服务器。所谓成功控件需要有以下几个条件(但不仅限于此):

  1. 必须有控件名字,即必须包含 name 属性
  2. 如果表单中有多个提交按钮,只有被点击的那个按钮可以是成功的
  3. 不能是禁用状态,即不含 disabled 属性
  4. 不是 Reset button

现在我们考虑一下这样的场景,在某个表单中我们需要用到多个提交按钮(Submit button),就如同 WordPress 后台写文章那样的表单,我们在编辑完文章内容后,可以选择保存草稿或是直接发布。下面图中所示是一个简化的发布页面,可以填写文章标题、内容之后选某一种提交形式: »Read More

主题更新: SimpleDark 1.3

本想在 6 月份发布的,但是修修改改又拖了很久。

主要修改的部分如下:

  • 表情选择菜单
  • 增加了表情选择菜单,方便在评论中添加表情。
    Smileys

  • 评论编辑

    增加了评论编辑功能,使未注册访客可以在前台快速编辑自己在之前 30 分钟内提交的评论。目前很多博客使用的是 Willin Kan 的 Ajax comments 来提供有关评论的 AJAX 功能,也包括快速编辑功能。但是这段代码实际上是有漏洞的,只要懂点 Web 技术的人可以很轻松地修改使用这段代码的站点上其他任何人的评论。而且经过沟通看样子 Willin 暂时不准备对这个问题进行处理,虽然我觉得这个问题还是需要解决的。我在这里采取的是用评论者发表评论时使用的 Email 地址和 IP 地址进行验证。除此之外,在关闭 AJAX 时,评论快速编辑功能依然有效。
    »Read More

解决Office文档无法打开链接的问题

近日碰到个状况,在Office中,不管是Word还是Outlook里面,想要通过Ctrl+左键打开一个链接的时候都会被Office拒绝,弹出一个对话框显示。

由于本机的限制,该操作已被取消。请与系统管理员联系。

解决方案其实在注册表里面。方案如下。

打开注册表,找到HKEY_CURRENT_USER\Software\Classes这个项。

然后在其下的.htm,.html,.mhtm,.mhtml,.shtm,.shtml里面,把(默认)这个键的值从ChromeHtmlDocument和FirefoxHtml改成htmlfile就好了。

在WordPress中获取指定评论所在分页页码

WordPress 2.7 以后便自带了评论分页功能,那些有很多评论的热门日志页面在开启了评论分页后加载速度就会大大加快,同时也节省了站点的不少流量。但是评论分页以后,WordPress 没有提供一个方法让我们来查询某一条评论位于它所在那篇文章所有评论分页的第几页,这样就带来了一些不便。WordPress 提供了一个 get_page_of_comment 函数,用来获取评论所在的分页数。但这个函数有一个 bug:当嵌套评论选项被关闭,但是数据库中却存在之前未关闭选项时留下的回复的情况下,分页数会计算错误。比如说,本站使用了 mg12 的插件 WP-RecentComments 来显示站内的最新评论,它会在每条评论的作者名字上加上一个指向该评论位置的链接,比如:

http://lync.in/projects/simpledark/#comment-1778

当评论没有分页或者这条评论位于最新的一页评论时,这样没有问题,因为在当前的页面就能找到这条评论。但是如果后面有了较多的新评论,使得这条评论在其他分页的时候,这个页内位置就失效了,上面的这个链接指向的页面也就无法。某篇文章的某个具体评论分页的地址一般还要加上 comment-page-n 或者加入参数 cpage=n,比如:

http://lync.in/projects/simpledark/comment-page-9/

»Read More