Loading...

某个“代购”系统的图片预告

Filed under: 互联网事 — 江东 @ 2010-07-07 14:17:16 才(28)条评论

项目背景:由于Linode提供了优秀的VPS服务,但是目前Linode仅仅支持信用卡购买,而找人代购Linode是一件很麻烦的事情,原因在于代购人一般不愿意代购Linode VPS,除非为了赚取20美元的推介费用。

代购Linode的麻烦之处在于,Linode会在每个月最后一天自动扣款,所以,代购的人,不得不每个月提醒用户及时续费,一旦忘记提醒,这边Linode已经扣款,那边用户可能不再需要这个VPS了。

鉴于此,我抽空开发了这个Linode代购平台,用户可以通过我们的平台,利用支付宝付款,自动开通LinodeVPS,通过我们的网站自动为Linode安装操作系统。

当用户的帐户即将过期,这个平台会自动给用户发送email提醒续费,每天发送一次,一旦月末用户没有续费,VPS将会自动被删除,从而避免被误扣。

用了大约一周多的时间,基本上完工了70%,下面是部分界面截屏,开发阶段,所以图片上面的数字以及文字仅做参考。 (read on …)

travelsky 对不起,您无权限访问

Filed under: 网站技术 — 江东 @ 2010-05-11 17:32:38 才(26)条评论

一年过去了,travelsky依然没有修复这个问题,上次莫名其妙的解决了这个问题,今天在查询机票的时候又再次遇到这个问题:输入电子客票编码,输入姓名,提交查询,travelsky的查询页面提示“对不起,您无权限访问”。

考虑到国情,马上将浏览器换成IE7,问题依旧。再次深度考虑国情,找了一个IE6的浏览器来测试,还是冷冰冰的提示“对不起,您无权限访问”。

看来不是这个问题,应该也不是服务器的问题,因为我在去年还是前年也遇到这个问题,折腾了一番浏览器就搞定了(当然忘记当初是怎么搞定的)。

于是分析“无权限访问”这几个字,这个机票查询不需要登录,何来权限之说,很快,我的思路就被“权限”二字导向到ajax跨域调用的出错提示上去了。虽然travelsky不是用的ajax查询,但是为了防止站外调用,可能在查询的程序中做了http referer判断。定睛一看浏览器,没有www,于是将 travelsky.com 改成 www.travelsky.com ,问题华丽的解决了。

我一直搞不懂国内的网站,有些还是很大的站点,为什么一定要带www这个二级域名才能正常访问,连招商银行有的时候没有带www都无法访问,退一步来说,就算你必须要域名带www,为啥不做一个顶级域名的自动跳转,即当用户访问没有www的域名的时候,自动跳转到带有www的网站,他们是做不到这一点,还是根本没有考虑到这一点,显然是后者!

国内的某些网站,哎!

如何保持持久

Filed under: PHP,互联网事,网站技术 — 江东 @ 2010-03-31 16:06:50 才(9)条评论

此文提到的“持久”是指web 的session会话持久。

有的时候,为了方便,我们需要在用户一直保持登录状态,即使用户没有做任何动作也不要因为超时而将让将用户的登录状态终止,除非用户主动关闭浏览器。

当然,实现这个方法有最简单的方式,那就是改变服务器的配置,将会话超时的时间设置更久,但是有些时候,我们只是做一个小的应用,或许我们的程序仅仅是放置在共享的虚拟主机上,这个时候我们可能无法更改服务器的设置,那么就将这个任务交给web程序去做吧。

其实实现的方法很简单,那就是用js定时去获取服务器端数据,赶在超时前去告诉服务器:“我还在做动作呢”。

实现方式很简单

首先,在服务器端建一个文件,随便取名,比如keepalive.php. 可以有内容,比如<?php echo “当前时间是:”.date(‘Y-m-d H:i:s’);?>,也可以干脆为空。

然后在在公共的文件(比如 inc.footer.php)中写一段js,代码如下:

function keepAlive(){
var url="keepalive.php";
$.get(url,function(d){});
setTimeout ( "loadAdminStatus()", 120000 );
}
keepAlive();

当然,前提是你要引入 jquery 库。

如此这般之后,一旦打开网页,系统将会每120秒去通知一次服务器,只要服务器的超时时间在120秒外(若少于120秒,请修改120000为合适的值 单位是毫秒),登录状态便会永不超时。

fckeditor 的php调用和自定义文件上传

Filed under: HTML客户端,网站技术 — 江东 @ 2010-01-22 17:14:25 才(7)条评论

相比tiny TinyMCE 我还是更喜欢 fckeditor (不是fuck editor),原因有三:

  1. 最早接触的是fckeditor,那个时候tinyMCE好像是收费的(不知道有没有记错),而且fckeditor一直都比较丰富;
  2. fckeditor的文档似乎更加完善;
  3. 不喜欢tinyMCE的弹出窗口的体验,更喜欢fckeditor的div浮动方式,特别是查看源代码的时候。

于是,最近自己在做自己公司的站点,后台就采用了fckeditor,在此期间也遇到一些问题,特此记录。 (read on …)

做网站的朋友看过来

Filed under: 网站技术 — 江东 @ 2009-08-31 11:22:16 才(19)条评论

已有对应的人接下此活,此消息已失效

cosbeta的一个朋友要做一个产品展示网站,大致要求如下:

  1. 内容包括:关于我们,产品中心,创意博客,联系我们;
  2. 其中产品中心的部分商品需要输入密码访问;

这个任务不算复杂,创意博客用wordpress实现即可。

更好的是,整个网站该朋友已经设计出图了,所以只需要按照图片实现即可。

其实,给人做站,90%的精力基本都会耗费在设计的交流部分,那么这个任务的站点界面已经设计好了,所以你只需要关心功能的实现即可!

好了,有兴趣的朋友请直接联系QQ:14486798

你有多久没有用可视化编辑器写html了

Filed under: HTML客户端,网站技术 — 江东 @ 2009-06-13 17:19:53 才(28)条评论

大一的时候,学微波通信的我选了一门选修课,叫做网页设计,从那之后就对动态web编程感兴趣了。

在学习web相关的东西的过程中,frontpage用过几次,随后就用了dreamweaver。当年在水木清华BBS上听闻高手用文本编辑器写网页,并且宣称用存文本编辑器效率更高。当年感觉不可思议,用文本编辑器确实可以,但是不可能效率更高,那人简直就是装深沉,有现在的话说是装“13”!

今天突然想到这个事情,发现自己电脑中多年没有dw,甚至连安装程序都找不到了。原来,业余web编程的我,也早在4、5年前就放弃了可视化编辑软件了!

其实这并不是水平高的体现,引用《买油翁》的文字:“无他,唯手熟尔”!

实话实说,现在确实用纯文本编辑器速度快多了,在打开DW的时间内,可能我要做的小部分修改已经完成。web发展到现在,设计越来越简洁,用css可以随心所欲将希望的div摆在自己认为合适的地方。

各位朋友,你呢,是不是也放弃了DW这根拐杖!

预报一下:今天上午开始,在写一个简约的单用户图片管理程序,现在大约完成50%,整个程序就一个php文件,想去体验未完成版本的,请去这里0bad.com

host.storyday.com集成了部分Cpanel功能

Filed under: PHP,网站技术 — 江东 @ 2009-03-20 15:44:52 才(18)条评论

生活点滴虚拟主机 发现Cpanel还是比较强大的,也提供了API函数供第三方集成,使用起来很方便,因此cosbeta为了方便管理,把部分Cpanel的功能集成到了host.storyday.com中。

目前host.storyday.com可以自动将到期用户挂起,10日之后若不续费,挂起用户将被删除。

今天干脆把Cpanel登录也集成到host.storyday.com的后台中,这样用户就只需要登录host.storyday.com即可,登录Cpanel就不需要再次输入用户和密码了,应该会很方便,如左图所示,点击那个Cpanel的图标就可以自动登录到后台进行管理了。

同样,cosbeta也用比较BT的办法将支付宝支付直接集成进来了。这样用户续费的时候就可以直接给我支付宝汇款(因为是续费,已经使用过cosbeta的服务,所以不存在信用的问题了),然后按照流程操作即可,如下图所示:

生活点滴虚拟主机

点击续费一年,然后直接给cosbeta打款,付款回来之后,在上面的表格中填写上详细的信息:转帐金额、交易编码、真实姓名,然后点击确认,我们的系统便会去模拟人工操作:连接支付宝,查看当日交易记录,搜索交易编码、交易金额、交易人的姓名,系统一旦找到符合标准的直接转帐,便会自动将帐户续费一年,同时将此笔交易标记为已经操作。

当初有朋友在twitter问我,若是你的接口出错了怎么办?其实是没有关系的,因为这个接口只是模拟人工检查交易记录,即使检查失败,完全可以发邮件给我,我也可以人工再次检查。毕竟直接转帐是通过支付宝操作的,所以资金不存在任何风险。

就写到这里,完善一个系统是一个漫长的过程!

如何设计一个能用google翻译多语言的站点

Filed under: HTML客户端,网站技术 — 江东 @ 2009-03-02 12:55:34 才(17)条评论

很多时候,我们需要做一个多语言的站点,cosbeta认为目前多语言网站的解决方案比较多,比如:

  1. 做几个不同的分站,通过用户第一次的选择将用户定位到相应语言的分站;
  2. 编辑网站内容的时候,添加多种语言,然后通过用户的选择从数据库中获取对应的语言;
  3. 添加一个google翻译按钮,用户自行选择google翻译查看不同语言的版本;
  4. 利用google 翻译接口,通过js实时翻译网页文字,cosbeta今天打算要介绍的就是这种方法;

上面4种方法的优缺点我这里就不多描述了,相信大家都很清楚了。应客户的要求,再加上翻译方便和翻译的通用性的需求,cosbeta决定用第4种方法为客户解决多语言的问题。

最开始cosbeta的解决办法是想通过程序模拟客户端去直接读取google对当前页面翻译的内容,从而实现页面的多语言版本。比如用户访问http://storyday.com?p=1,当用户需要访问日语版时,cosbeta就将此页面通过php发送给google的网页翻译接口,然后将翻译的结果读取出来,显示在当前的页面上。然而后来cosbeta发现这种方式是不可取的,一方面google对客户端的限制比较严格,用php模拟客户端可能会导致数据获取的失败,另外一方面,google并没有推荐这种方式,所以很容易导致翻译失效。

后来cosbeta就转向了google的翻译API,配上jquery对Dom灵活的操作,很容易就解决了这个问题。 (read on …)