高三的生活~~
2006-09-22
其实我已经高三了,原来以为高三没什么了不起的,照样可以抽出时间写程序。但我发现我错了,为了高考,为了我的前程,我不得不全身心地投入到学习中。。。如果没有经历过高三的人肯定不能体会到高三是怎样的一种生活,为了提高成绩,可以说学校方面用尽了一切措施,目的在于挖干我们身上的每一点潜能。甚至还用了起催眠作用的演讲,班会等等。但我们也是自愿的,,(哎,现在的社会也只能这样了。。)
    其中一招狠毒的就是叫我们把自己的目标大学写出来,做一个大的告示牌挂到教室。。。我们班43个同学,居然就有17个写了清华或北大 ,我则没有那种冲动,填了个浙江大学,我想也不错了吧,而且我相信我一定能考上的。
    高三痛苦啊~~~也能叫充实么?

完。

阅读:2871 评论: 22 💬
发布一个迷你AJAX聊天程序[聊天室]
2006-08-16
新版本已经发布
http://www.longbill.cn/blog/archives/2008/03/ajaxchatroom.html

Mini AJAX Chatroom By Longbill
http://www.longbill.cn
Longbill all rights reserved
2006-08-16

演示地址: http://longbill.cn/down/sample/chat.php

打开文件进行具体设置

使用方法,将这个程序传到服务器上,运行就可以了。
默认的数据保存路径为 rooms/ 目录
调用时后加参数 room=房间名 , 比如 chat.php?room=php,此时就程序就会自动创建 rooms/php.php 文件来保存数据

如有疑问,请到 www.longbill.cn 给我留言

下载地址 http://longbill.cn/down/miniajaxchatroom.zip

完。

阅读:4460 评论: 31 💬
[原创]XML的代替者----JSON
2006-08-16
在phpx.com上原载

我个人觉得PHP与Javascript各有长处,如果能完美的结合起来,那将创造出许许多多的奇迹! 我是初次写此类文章,Bug难免,请各位指正~
    现在AJAX应用非常流行,而在AJAX中客户端Javascript和服务端动态脚本的通信是关键。如果传输的信息比较简单,通常我们会直接采用字符串的方式,如果信息结构复杂一点,则通常用XML文档。XML文档虽然应用广泛,但是用php生成和用Javascript处理却不是一件很容易的事情。这里我推荐一种XML文档的比较好简化替代方案:JSON!
    首先我们来了解一下Javascript的基础知识。
    1.创建数组,可以用JS内建的类Array来初始化,也可以用JSON符号"[]"。下面通过两种方式创建的arr1和arr2的实质是一样的:

var arr1 = new Array();
arr1[0] = "apple";
arr1[1] = "google";
arr1[2] = "longbill";

var arr2 = ["apple","google","longbill"];

注意,数组的索引也可以是字符串,如 arr1["name"] = "longbill"; 这时的数组就相当于对象了。。。
    2.创建对象,可以用JS内建的类Object来初始化,也可以用JSON符号"{}"。下面通过两种方式创建的obj1和ob2的实质也是一样的:


var obj1 = new Object();
obj1.name = "longbill";
obj1.age = 18;

var obj2 = { name:"longbill",age:18 };

注意,这里"{"和"}"之间必须写成"键:值"的形式,而且不同的"键:值"之间要用","分割。 "键"中也可以包含空格等特殊字符,此时要用""(引号)来引用,如 "phone number":123456
    其实在JS中,数组的本质是一个对象,对象本身也是一个数组。所以, obj1.name 和 obj1["name"] 是同一个引用。
    我们还可以通过JSON符号的嵌套来定义复杂的S对象:


var people = [
    {
        name:"longbill",
        age:18
    },
    {
        name:"neal",
        age:19
    },
    {
        name:"glocklee",
        age:17
    }
];

//这个应该看的懂吧~~
大部分XML文档都可以用JSON来表达:


<?xml version="1.0"?>
<root>
  <book>
    <name>Ju love</name>
    <price>$15</price>
  </book>
  <book>
    <name>Javascrip</name>
    <price>$25</price>
  </book>
</root>


如果用JSON就可以表达为:

{
root:
[
  {
     name:"Ju love",
     price:"$15"
  },
  {
     name:"Javascript",
     price:"$25"
  }
]}


是不是简化很多?

    而且客户端JS处理起来也很简单,只要用执行字符串函数 "eval" 就可以将JSON信息提取出来,而如果是XML文档,那就不的不用大量的标准DOM操作来提取其中的数据。如:


//已经用AJAX从服务端下载了一个JSON文件(字符串),保存在变量 json 里
eval("var myvar = "+json);
//这样,JSON里的信息就表达在myvar这个变量里了。

缺点:一旦JSON的格式错误,将导致服务端JS系统错误,甚至崩溃。
   解决办法:
   最好在eval之前使用try(试探执行),如


//已经用AJAX从服务端下载了一个JSON文件(字符串),保存在变量 json 里
try {
    eval("var myvar = "+json);
} catch(e) { alert('json syntax error!'); }
//这样,即使JSON格式错误,也只会弹出一个提示框,而不会抛出一个脚本错误!

完。

阅读:3186 评论: 11 💬
[原创]在普通HTTP上安全地传输密码
2006-08-16
在phpx.com上原载,是我的原创
http://www.phpx.com/happy/thread-122499-1-1.html上有很多讨论


    1。理论
    在普通HTTP上,一般表单中的密码都是以明文方式传到服务器进行处理的。这无疑给了坏人以可乘之机!这里我们就说说怎么传输密码才是安全的!
    与其传输密码本身,到不如传输其加密后的形式。MD5是个不错的选择。第一,不同的资源几乎不可能生成相同的MD5摘要,第二,MD5的编码方式是不可逆推的。有了这些特性,我们就可以让MD5摘要公开的在Internet上传输,而不必担心密码被坏人知道。然后在服务端也将密码通过同样的方式加密,最后比较这两个字符串。
    然而,我们不能为了登陆而将密码md5后直接通过Internet传输,因为坏人虽然不会知道我们的密码,但肯定会知道这个特殊的字符串可以授权他们访问我们的网站!
    这就是公匙和私匙要解决的问题,首先由服务器提供一个随机字符串,然后客户端将这个随机字符串和密码相加后再加密!
    每次登陆时,服务器会产生不同的随机字符串,这样你的密码没有变,但是通过上面的方法加密后的MD5摘要却完全不同。这样就算坏人得到了这些MD5摘要,他们也不可能分析出你的密码!
    这种方法中,服务器提供的随机字符串叫做"公匙",寿命很短,并可以被任何人利用;你的密码叫做"私匙",寿命很长,而且永远也不会被人知道。
    2。实现
    客户端Javascript并没有提供现成的md5算法,但我们在 google 上用 "md5 javascript" 搜索,就可以得到很多md5在Javascript上实现的例子。
    在PHP中我就不用多说了,直接用md5()这个函数就可以搞定!随机字符串我们可以用session来存储(PHP就是强啊~~)
    3。注意
    在JS中,中文都是UTF-8格式的,所以如果你的密码是中文,而且存储在服务端的密码的编码方式是GB2312,那么两个密码加密后的字符串是完全不同的!

完。

阅读:3635 评论: 4 💬
[原创]在普通HTTP上安全地传输密码
2006-08-16
在phpx.com上原载,是我的原创
http://www.phpx.com/happy/thread-122499-1-1.html上有很多讨论


    1。理论
    在普通HTTP上,一般表单中的密码都是以明文方式传到服务器进行处理的。这无疑给了坏人以可乘之机!这里我们就说说怎么传输密码才是安全的!
    与其传输密码本身,到不如传输其加密后的形式。MD5是个不错的选择。第一,不同的资源几乎不可能生成相同的MD5摘要,第二,MD5的编码方式是不可逆推的。有了这些特性,我们就可以让MD5摘要公开的在Internet上传输,而不必担心密码被坏人知道。然后在服务端也将密码通过同样的方式加密,最后比较这两个字符串。
    然而,我们不能为了登陆而将密码md5后直接通过Internet传输,因为坏人虽然不会知道我们的密码,但肯定会知道这个特殊的字符串可以授权他们访问我们的网站!
    这就是公匙和私匙要解决的问题,首先由服务器提供一个随机字符串,然后客户端将这个随机字符串和密码相加后再加密!
    每次登陆时,服务器会产生不同的随机字符串,这样你的密码没有变,但是通过上面的方法加密后的MD5摘要却完全不同。这样就算坏人得到了这些MD5摘要,他们也不可能分析出你的密码!
    这种方法中,服务器提供的随机字符串叫做"公匙",寿命很短,并可以被任何人利用;你的密码叫做"私匙",寿命很长,而且永远也不会被人知道。
    2。实现
    客户端Javascript并没有提供现成的md5算法,但我们在 google 上用 "md5 javascript" 搜索,就可以得到很多md5在Javascript上实现的例子。
    在PHP中我就不用多说了,直接用md5()这个函数就可以搞定!随机字符串我们可以用session来存储(PHP就是强啊~~)
    3。注意
    在JS中,中文都是UTF-8格式的,所以如果你的密码是中文,而且存储在服务端的密码的编码方式是GB2312,那么两个密码加密后的字符串是完全不同的!

完。

阅读:3014 评论: 4 💬
phpcms文件管理器 v4.02 开发中....
2006-08-01
4.03版请点击这里 http://www.longbill.cn/blog/index.php?id=75


此日志不断更新中....(06/08/18)

phpcms文件管理器要逐渐向网络硬盘转型了!
抢先体验地址: http://cn5.cn/test1/
欢迎在此提出建议或意见

4.02 已经改进的地方:
完全修改了模板,可以自适应窗口大小
集成BlueShow图片浏览器
修改了限制文件类型的一个bug
修改了zip打包和解压的bug
修改了根目录为../../时的bug

8月13日更新:
彻底征服了IE缓存策略BUG!!!减轻了服务器的负担!

8月18日更新:
才用了json来传输数据,可以传送更多的信息(包括目录简介等)。也可以解决全角字符的Bug

9月23日更新:
晕,进度越来越慢了,不得不跟大家提一下了:
    其实我已经高三了,原来以为高三没什么的了不起的,照样可以抽出时间写程序。但我发现我错了,为了高考,为了我的前程,我不得不全身心地投入到学习中。。。如果没有经历过高三的人肯定不能体会到高三是怎样的一种生活,为了提高成绩,可以说学校方面用尽了一切措施,目的在于挖干我们身上的每一点潜能。甚至还用了起催眠作用的演讲,班会等等,,但我们也是自愿的,,(哎,现在的社会也只能这样了。。)
    其中一着狠毒的就是叫我们把自己的目标大学写出来,做一个大的告示牌挂到教室。。。我们班43个同学,居然就有17个写了清华或北大 ,我则没有那种冲动,填了个浙江大学,我想也不错了吧,而且我相信我一定能考上的。
    就写这么多了,我还要去看书呢。。。

完。

阅读:3667 评论: 29 💬
得到元素真实的背景颜色的函数[javascript]
2006-08-01
这个函数来自Rico,自己改了一下。
说明: 
    传入参数一个,为元素的id值或元素本身,返回为元素的真实背景色值(字符串)。 值得一提的是IE里面返回的是16进制的值,而Mozilla则是rgb值。
演示地址:  http://longbill.cn/down/sample/getbg.htm

function getBg(element)
{//author: Longbill (www.longbill.cn)
if (typeof element == "string") element = document.getElementById(element);
if (!element) return;
cssProperty = "backgroundColor";
mozillaEquivalentCSS = "background-color";
if (element.currentStyle)
var actualColor = element.currentStyle[cssProperty];
else
{
var cs = document.defaultView.getComputedStyle(element, null);
var actualColor = cs.getPropertyValue(mozillaEquivalentCSS);
}
if (actualColor == "transparent" && element.parentNode)
return arguments.callee(element.parentNode);
if (actualColor == null)
return "#ffffff";
else
return actualColor;
}

完。

阅读:3399 评论: 2 💬
用PHP控制用户浏览器缓存!
2006-07-29
前段时间因为补课,所以好久没有发过日志了~ 你写的php程序是否高效?你是否会担心自己的程序太庞杂,执行速度很慢?你是否用过php动态生成图片? 其实每种浏览器都有缓存策略,会暂时将每一个浏览过的文件缓存在一个特殊的文件夹里。我们就可以在用户重复提交页面请求的时候,告诉用户这个页面没有改变,可以调用缓存。 那我们怎么知道用户有没有这个页面的缓存数据呢? 其实浏览器在发送请求的时候会先发送http头,一般象这样:
Date: Sun, 30 Jul 2006 09:18:11 GMT Content-Type: image/gif Last-Modified: Wed, 19 Jul 2006 07:40:06 GMT ETag: "8c55da8d6abc61:2327" Content-Length: 14757
其中Last-Modified: Wed, 19 Jul 2006 07:40:06 GMT ETag: "8c55da8d6abc61:2327"就是有关页面的缓存信息的。然后如果服务器返回的响应代码不是HTTP 200 (OK),而是 304的话,浏览器就会从缓存中读取数据。 根据这个原理,我写了一个函数,这个函数可以用在不经常更新或者需要经常刷新的页面,可以大大减轻服务器的负担,因为它如果发现客户端有缓存,就向客户端发送一个304响应,然后停止程序的执行。 演示地址:http://www.longbill.cn/down/sample/etag.php
cache();
echo date("Y-m-d H:i:s"); 
function cache()
{//author:Longbill ( www.longbill.cn )
  $etag = "eeee";  //标记字符串,可以任意修改
  if ($_SERVER['HTTP_IF_NONE_MATCH'] == $etag)
  {
    header('Etag:'.$etag,true,304);
    exit;
  }
  else header('Etag:'.$etag);
}

完。

阅读:3143 评论: 3 💬
发布BlueShow v1.0 图片浏览器(类似lightbox)
2006-07-01
好多天没有发过日志了~
最近写了一个图片浏览器,是为PHPCMS文件管理器设计的,但后来看到了Lightbox,所以就改了一下,可以给一般的网页使用。

演示及说明地址:  http://longbill.cn/down/sample/blueshow/index.htm

使用方法: 
1.下载 blueshow.js 文件,放到服务器上 (点击这里下载) 你也可以直接使用这个: http://longbill.cn/down/blog/blueshow.js

2.在你要用此程序的网页中写上这句(在和之间):
<script src='http://yoursite/blueshow.js'></script>
 http://yoursite/blueshow.js 为你放置程序的地址
3.程序可以使用参数 比如 blueshow.js?lock=1&autorun=1
  //说明:
  //取值范围为0和1
  //lock:表示显示图片时是否锁定原网页
  //autorun: 是否自动初始化(如果你的网页含有一些比较慢的统计代码强烈建议将此值设置为0)
  //如果autorun=0那么请在网页的最后(统计代码之前)加上 
<script>BlueShow();</script>
 详情见 http://longbill.cn/down/sample/blueshow/index.htm
4.符合条件的图片包括:
  a.
<a href='fdsfa.jpg'>链接</a>
(指向图片的链接,包括gif,jpg,png,jpeg,bmp,等,具体见blueshow.js。 如果图片是动态生成的,比如 img.php?id=3 那么在后面加上 "&.gif" 即可)
  b.
<img class='blueshow' src='xxx.gif' />
 (class名中含有 "blueshow" 字符的img,如果img本来有class属性,那么再原来的class名后加空格再加"blueshow"即可)
 

完。

阅读:3668 评论: 11 💬
我的第一个Flash作品--Escape Encoder
2006-06-10
    突然觉得Flash很强大,而且听说ActionScript 3出来了(详情),于是今天安了Flash 8~~本来还在为教程发愁,突然发现Flash 8自带的说明文档非常详细(我建议初学Flash的朋友都看那个),比其他教程都要好!!
    下面是我做的Flash,
Flash Player文件

完。

阅读:3249 评论: 8 💬
Copyright © Longbill 2008-2026