<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16031473</id><updated>2011-04-21T22:34:02.639-07:00</updated><title type='text'>coder 520hacker</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://520hacker.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://520hacker.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>520hacker</name><uri>http://www.blogger.com/profile/10292198573558635917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16031473.post-116649870223166416</id><published>2006-12-18T19:25:00.000-08:00</published><updated>2006-12-18T19:25:02.303-08:00</updated><title type='text'>关注Wiki 深入分析wiki结构 有机会自己弄一个...</title><content type='html'>&lt;br /&gt;&lt;p&gt;很早以前接触到wiki系统，认为自己已经对这个有了足够的研究和认识，最近认真去要开发和修改一款属于自己的wiki系统的时候，才发现自己的认识远远不够。 无奈之下，只能临阵磨枪，认真的做一次wiki系统的分析，慢慢思索，一步一步调整，特撰文如下：&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;目前所了解和熟悉的系统中，号称开源，并切功能比较完善的，恐怕只有 &lt;a href="http://www.hoodong.com/"&gt;http://www.hoodong.com/&lt;/a&gt; 这1个站点了；可惜我php的空间又不够，自身对没有版权的系统的完善有无太多的兴趣，怕是不能立足于hoodong提供的php开源程序开进行二次开发了。&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;系统功能分析的话，还是应该选择hoodong自身所应用的系统，他们是利用的Java编写的系统，据说效率比提供出来的php版本要高出很多，估计也就是商业与免费的区别啊...&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;从导航开始看系统{ 首页|条目|分类|标签|小组 }；可以看出：&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;主体是wiki功能,条目|分类|标签 正是wiki 的主要特征&lt;/li&gt;&lt;br /&gt;&lt;li&gt;附加有小组功能&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;再认真来看每个导航条目所衍生出来的功能：&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;内容条目相关的功能&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;版本更新功能&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;条目的创建功能|审核功能&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;标签的功能&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;分类的功能{无限级分类}&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;评论功能&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;评价功能{ 星级评价 }&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;调查功能&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;关键字功能&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;其他优化功能{ 导出pdf | 导出flash | 收藏 | 推荐 | 订阅 | 打印 }&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;用户系统相关的功能&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;用户的注册/资料修改功能(可能涉及到邮件发送)&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;用户好友功能&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;短消息功能&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;用户自己发布的条目&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;收藏的条目&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;参加的小组&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;订阅的条目&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;个人页面/个人虚拟域名&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;小组/sns相关的功能&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;群组条目&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;群组bbs&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;群组图片&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;群组邮件&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;订阅功能&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;群组管理功能（人员管理|黑名单|过滤字符|资料编辑）&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;群页面/群虚拟域名&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;其他功能&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;br/&gt;&lt;br/&gt;在进行后台设计的时候，我认为各个功能分类已经进行区别，然后以频道的形式进行管理，可以参考Powereasy的后台管理。&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;现假定如下：&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;频道（分站点）1管理&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;数据管理&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;群组管理&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;论坛管理&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;标签管理&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;用户管理&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;标签管理&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;数据&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;生成管理&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;频道1生成&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;首页&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;采集管理&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;项目设定&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;采集&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;广告管理&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;广告位&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;广告&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;问卷调查管理&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;问卷&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;调用&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;模板&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;用户管理&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;会员管理&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;管理员管理&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;模板&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;系统管理&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;频道（分站点）管理&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;系统设置(组件设定|系统选项)&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;br /&gt;&lt;div&gt;网站模板&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;网站的逻辑结构&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p&gt;[ 图 ]&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br/&gt;&lt;br/&gt;开发选择：&lt;/p&gt;&lt;br /&gt;&lt;p&gt;可选开发语种,asp/aspx/ror...&lt;/p&gt;&lt;br /&gt;&lt;br/&gt;&lt;p class="zoundry_bw_tags"&gt;&lt;br /&gt;  &lt;!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --&gt;&lt;br /&gt;  &lt;span class="ztags"&gt;&lt;span class="ztagspace"&gt;Technorati&lt;/span&gt; : &lt;a href="http://technorati.com/tag/wiki%20project" class="ztag" rel="tag"&gt;wiki project&lt;/a&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16031473-116649870223166416?l=520hacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://520hacker.blogspot.com/feeds/116649870223166416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16031473&amp;postID=116649870223166416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/116649870223166416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/116649870223166416'/><link rel='alternate' type='text/html' href='http://520hacker.blogspot.com/2006/12/wiki-wiki.html' title='关注Wiki 深入分析wiki结构 有机会自己弄一个...'/><author><name>520hacker</name><uri>http://www.blogger.com/profile/10292198573558635917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16031473.post-116563516080674072</id><published>2006-12-08T19:31:00.000-08:00</published><updated>2006-12-08T19:32:40.813-08:00</updated><title type='text'>当手机自拍形成习惯....</title><content type='html'>&lt;a href="http://photos1.blogger.com/x/blogger/6471/1506/640/251730/Cam0041.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger/6471/1506/320/626319/Cam0041.jpg" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/6471/1506/640/248450/Cam0042.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger/6471/1506/320/849874/Cam0042.jpg" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/6471/1506/640/220880/Cam0043.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger/6471/1506/320/944846/Cam0043.jpg" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://photos1.blogger.com/x/blogger/6471/1506/640/493431/Cam0080.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/x/blogger/6471/1506/320/214570/Cam0080.jpg" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16031473-116563516080674072?l=520hacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://520hacker.blogspot.com/feeds/116563516080674072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16031473&amp;postID=116563516080674072' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/116563516080674072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/116563516080674072'/><link rel='alternate' type='text/html' href='http://520hacker.blogspot.com/2006/12/blog-post.html' title='当手机自拍形成习惯....'/><author><name>520hacker</name><uri>http://www.blogger.com/profile/10292198573558635917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16031473.post-115837742846727036</id><published>2006-09-15T20:25:00.000-07:00</published><updated>2006-09-15T20:30:28.483-07:00</updated><title type='text'>专门写了1个转换数据用的程序。</title><content type='html'>&lt;p&gt;在cnweb20/pic的图片数据库中，存在很多相同图片地址的情况 &lt;/p&gt;&lt;br /&gt;&lt;p&gt;有可能在多篇图片信息中 存在同一图片的地址 &lt;/p&gt;&lt;br /&gt;&lt;p&gt;而目前图片的地址是针对于图片信息分开保存的&lt;/p&gt;&lt;br /&gt;&lt;p&gt;这样就会在图片地址出现错误时存在影响效率的问题 &lt;/p&gt;&lt;br /&gt;&lt;p&gt;多于的图片地址数据也会对数据库大家影响 间接影响到数据库系统的性能&lt;/p&gt;&lt;br /&gt;&lt;p&gt;这些情况都是我所不许可的&lt;/p&gt;&lt;br /&gt;&lt;p&gt;所以我改变了数据表之间的关系 把图片地址唯一化&lt;/p&gt;&lt;br /&gt;&lt;p&gt;这样就导致了我目前工作的缘由&lt;/p&gt;&lt;br /&gt;&lt;p&gt;接近30w条的数据要进行修改 而且要进行复杂的皮肤和修正 对于多于的数据要进行删除&lt;/p&gt;&lt;br /&gt;&lt;p&gt;对于这个需求 我采用了最简单的方式 用vb进行处理&lt;/p&gt;&lt;br /&gt;&lt;p&gt;在循环上 为了不影响系统的运行 我采用了时间的控件&lt;/p&gt;&lt;br /&gt;&lt;p&gt;加上熟悉的数据库链接 ado 2.8 呵呵~&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Public conn As New ADODB.Connection&lt;br /&gt;Public rs As New ADODB.Recordset&lt;br /&gt;Public addFlag As Boolean&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Public Function OpenCn(ByVal Cip As String, ByVal CDb As String, ByVal CUser As String, ByVal Cpass As String) As Boolean&lt;br /&gt;Dim mag As String&lt;br /&gt;On Error GoTo strerrmag&lt;br /&gt;Set conn = New ADODB.Connection&lt;br /&gt;conn.ConnectionTimeout = 25&lt;br /&gt;conn.Provider = "sqloledb"&lt;br /&gt;conn.Properties("data source").Value = Cip    '服务器的名字&lt;br /&gt;conn.Properties("initial catalog").Value = CDb           '库名&lt;br /&gt;'conn.Properties("integrated security").Value = "SSPI"   '登陆类型&lt;br /&gt;conn.Properties("user id").Value = CUser&lt;br /&gt;conn.Properties("password").Value = Cpass&lt;br /&gt;conn.Open&lt;br /&gt;OpenCn = True&lt;br /&gt;addFlag = True&lt;br /&gt;'MsgBox "ok"&lt;br /&gt;    Set rs = New ADODB.Recordset&lt;br /&gt;Exit Function&lt;br /&gt;strerrmag:&lt;br /&gt;    mag = "Data can't connect"&lt;br /&gt;    Call MsgBox(mag, vbOKOnly, "Error:Data connect")&lt;br /&gt;    addFlag = False&lt;br /&gt;    Exit Function&lt;br /&gt;End Function&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Public Sub cloCn()&lt;br /&gt;On Error Resume Next&lt;br /&gt;If conn.State &amp;lt;&amp;gt; adStateClosed Then conn.Close&lt;br /&gt;Set conn = Nothing&lt;br /&gt;End Sub&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Public Function openRs(ByVal strsql As String) As Boolean   '连接数据库记录集&lt;br /&gt;Dim mag As String&lt;br /&gt;Dim rpy As Boolean&lt;br /&gt;On Error GoTo strerrmag&lt;br /&gt;    If addFlag = False Then rpy = True&lt;br /&gt;    With rs&lt;br /&gt;    .ActiveConnection = conn&lt;br /&gt;    .CursorLocation = adUseClient&lt;br /&gt;    .CursorType = adOpenKeyset&lt;br /&gt;    .LockType = adLockOptimistic&lt;br /&gt;    .Open strsql&lt;br /&gt;    End With&lt;br /&gt;    addFlag = True&lt;br /&gt;    openRs = True&lt;br /&gt;   &lt;br /&gt;'MsgBox "ok"&lt;br /&gt;    'End&lt;br /&gt;    Exit Function&lt;br /&gt;strerrmag:&lt;br /&gt;    mag = "data not connect"&lt;br /&gt;    Call MsgBox(mag, vbOKOnly, "error:connect")&lt;br /&gt;    openRs = False&lt;br /&gt;    End&lt;br /&gt;    'Exit Function&lt;br /&gt;End Function&lt;/p&gt;&lt;br /&gt;&lt;p&gt;----------------------------&lt;/p&gt;&lt;br /&gt;&lt;p&gt;另外我还在考虑图片的重复性的问题 可以对每个图片进行md5 然后在某图片显示不出来的时候 自动转换到md5相同的另外1张图片地址。 不过这个有可能需要下载后进行计算 就显得有点得不偿失了。。 &lt;/p&gt;&lt;br /&gt;&lt;p&gt;找到1段javascript的函数 正在考虑由客户端下载了图片之后对图片进行md5计算 然后返回服务器端 &lt;/p&gt;&lt;br /&gt;&lt;p&gt;计算图片的md5呢 不知道会不会很耗资源  不过 目前来看 暂时还没有想到把图片和md5联系起来的方法&lt;/p&gt;&lt;br /&gt;&lt;p&gt;难道要用fso? My God...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;----------------------------&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message&lt;br /&gt;* Digest Algorithm, as defined in RFC 1321.&lt;br /&gt;* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.&lt;br /&gt;* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet&lt;br /&gt;* Distributed under the BSD License&lt;br /&gt;* See [url]http://pajhome.org.uk/crypt/md5[/url] for more info.&lt;br /&gt;*/&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Configurable variables. You may need to tweak these to be compatible with&lt;br /&gt;* the server-side, but the defaults work in most cases.&lt;br /&gt;*/&lt;br /&gt;var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase   */&lt;br /&gt;var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance   */&lt;br /&gt;var chrsz   = 8; /* bits per input character. 8 - ASCII; 16 - Unicode   */&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* These are the functions you'll usually want to call&lt;br /&gt;* They take string arguments and return either hex or base-64 encoded strings&lt;br /&gt;*/&lt;br /&gt;function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length * chrsz));}&lt;br /&gt;function b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length * chrsz));}&lt;br /&gt;function str_md5(s){ return binl2str(core_md5(str2binl(s), s.length * chrsz));}&lt;br /&gt;function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }&lt;br /&gt;function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }&lt;br /&gt;function str_hmac_md5(key, data) { return binl2str(core_hmac_md5(key, data)); }&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Perform a simple self-test to see if the VM is working&lt;br /&gt;*/&lt;br /&gt;function md5_vm_test()&lt;br /&gt;{&lt;br /&gt;return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Calculate the MD5 of an array of little-endian words, and a bit length&lt;br /&gt;*/&lt;br /&gt;function core_md5(x, len)&lt;br /&gt;{&lt;br /&gt;/* append padding */&lt;br /&gt;x[len &amp;gt;&amp;gt; 5] = 0x80 &amp;lt;&amp;lt; ((len) % 32);&lt;br /&gt;x[(((len + 64) &amp;gt;&amp;gt;&amp;gt; 9) &amp;lt;&amp;lt; 4) + 14] = len;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;var a = 1732584193;&lt;br /&gt;var b = -271733879;&lt;br /&gt;var c = -1732584194;&lt;br /&gt;var d = 271733878;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;for(var i = 0; i &amp;lt; x.length; i += 16)&lt;br /&gt;{&lt;br /&gt;var olda = a;&lt;br /&gt;var oldb = b;&lt;br /&gt;var oldc = c;&lt;br /&gt;var oldd = d;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;a = md5_ff(a, b, c, d, x[i+ 0], 7 , -680876936);&lt;br /&gt;d = md5_ff(d, a, b, c, x[i+ 1], 12, -389564586);&lt;br /&gt;c = md5_ff(c, d, a, b, x[i+ 2], 17, 606105819);&lt;br /&gt;b = md5_ff(b, c, d, a, x[i+ 3], 22, -1044525330);&lt;br /&gt;a = md5_ff(a, b, c, d, x[i+ 4], 7 , -176418897);&lt;br /&gt;d = md5_ff(d, a, b, c, x[i+ 5], 12, 1200080426);&lt;br /&gt;c = md5_ff(c, d, a, b, x[i+ 6], 17, -1473231341);&lt;br /&gt;b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);&lt;br /&gt;a = md5_ff(a, b, c, d, x[i+ 8], 7 , 1770035416);&lt;br /&gt;d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);&lt;br /&gt;c = md5_ff(c, d, a, b, x[i+10], 17, -42063);&lt;br /&gt;b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);&lt;br /&gt;a = md5_ff(a, b, c, d, x[i+12], 7 , 1804603682);&lt;br /&gt;d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);&lt;br /&gt;c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);&lt;br /&gt;b = md5_ff(b, c, d, a, x[i+15], 22, 1236535329);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);&lt;br /&gt;d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);&lt;br /&gt;c = md5_gg(c, d, a, b, x[i+11], 14, 643717713);&lt;br /&gt;b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);&lt;br /&gt;a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);&lt;br /&gt;d = md5_gg(d, a, b, c, x[i+10], 9 , 38016083);&lt;br /&gt;c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);&lt;br /&gt;b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);&lt;br /&gt;a = md5_gg(a, b, c, d, x[i+ 9], 5 , 568446438);&lt;br /&gt;d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);&lt;br /&gt;c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);&lt;br /&gt;b = md5_gg(b, c, d, a, x[i+ 8], 20, 1163531501);&lt;br /&gt;a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);&lt;br /&gt;d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);&lt;br /&gt;c = md5_gg(c, d, a, b, x[i+ 7], 14, 1735328473);&lt;br /&gt;b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);&lt;br /&gt;d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);&lt;br /&gt;c = md5_hh(c, d, a, b, x[i+11], 16, 1839030562);&lt;br /&gt;b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);&lt;br /&gt;a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);&lt;br /&gt;d = md5_hh(d, a, b, c, x[i+ 4], 11, 1272893353);&lt;br /&gt;c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);&lt;br /&gt;b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);&lt;br /&gt;a = md5_hh(a, b, c, d, x[i+13], 4 , 681279174);&lt;br /&gt;d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);&lt;br /&gt;c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);&lt;br /&gt;b = md5_hh(b, c, d, a, x[i+ 6], 23, 76029189);&lt;br /&gt;a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);&lt;br /&gt;d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);&lt;br /&gt;c = md5_hh(c, d, a, b, x[i+15], 16, 530742520);&lt;br /&gt;b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);&lt;br /&gt;d = md5_ii(d, a, b, c, x[i+ 7], 10, 1126891415);&lt;br /&gt;c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);&lt;br /&gt;b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);&lt;br /&gt;a = md5_ii(a, b, c, d, x[i+12], 6 , 1700485571);&lt;br /&gt;d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);&lt;br /&gt;c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);&lt;br /&gt;b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);&lt;br /&gt;a = md5_ii(a, b, c, d, x[i+ 8], 6 , 1873313359);&lt;br /&gt;d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);&lt;br /&gt;c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);&lt;br /&gt;b = md5_ii(b, c, d, a, x[i+13], 21, 1309151649);&lt;br /&gt;a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);&lt;br /&gt;d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);&lt;br /&gt;c = md5_ii(c, d, a, b, x[i+ 2], 15, 718787259);&lt;br /&gt;b = md5_ii(b, c, d, a, x[i+ 9], 21, -343485551);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;a = safe_add(a, olda);&lt;br /&gt;b = safe_add(b, oldb);&lt;br /&gt;c = safe_add(c, oldc);&lt;br /&gt;d = safe_add(d, oldd);&lt;br /&gt;}&lt;br /&gt;return Array(a, b, c, d);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* These functions implement the four basic operations the algorithm uses.&lt;br /&gt;*/&lt;br /&gt;function md5_cmn(q, a, b, x, s, t)&lt;br /&gt;{&lt;br /&gt;return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);&lt;br /&gt;}&lt;br /&gt;function md5_ff(a, b, c, d, x, s, t)&lt;br /&gt;{&lt;br /&gt;return md5_cmn((b &amp;amp; c)  ((~b) &amp; d), a, b, x, s, t);&lt;br /&gt;}&lt;br /&gt;function md5_gg(a, b, c, d, x, s, t)&lt;br /&gt;{&lt;br /&gt;return md5_cmn((b &amp;amp; d)  (c &amp; (~d)), a, b, x, s, t);&lt;br /&gt;}&lt;br /&gt;function md5_hh(a, b, c, d, x, s, t)&lt;br /&gt;{&lt;br /&gt;return md5_cmn(b ^ c ^ d, a, b, x, s, t);&lt;br /&gt;}&lt;br /&gt;function md5_ii(a, b, c, d, x, s, t)&lt;br /&gt;{&lt;br /&gt;return md5_cmn(c ^ (b  (~d)), a, b, x, s, t);&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Calculate the HMAC-MD5, of a key and some data&lt;br /&gt;*/&lt;br /&gt;function core_hmac_md5(key, data)&lt;br /&gt;{&lt;br /&gt;var bkey = str2binl(key);&lt;br /&gt;if(bkey.length &amp;gt; 16) bkey = core_md5(bkey, key.length * chrsz);&lt;/p&gt;&lt;br /&gt;&lt;p&gt;var ipad = Array(16), opad = Array(16);&lt;br /&gt;for(var i = 0; i &amp;lt; 16; i++)&lt;br /&gt;{&lt;br /&gt;ipad[i] = bkey[i] ^ 0x36363636;&lt;br /&gt;opad[i] = bkey[i] ^ 0x5C5C5C5C;&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);&lt;br /&gt;return core_md5(opad.concat(hash), 512 + 128);&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Add integers, wrapping at 2^32. This uses 16-bit operations internally&lt;br /&gt;* to work around bugs in some JS interpreters.&lt;br /&gt;*/&lt;br /&gt;function safe_add(x, y)&lt;br /&gt;{&lt;br /&gt;var lsw = (x &amp;amp; 0xFFFF) + (y &amp; 0xFFFF);&lt;br /&gt;var msw = (x &amp;gt;&amp;gt; 16) + (y &amp;gt;&amp;gt; 16) + (lsw &amp;gt;&amp;gt; 16);&lt;br /&gt;return (msw &amp;lt;&amp;lt; 16)  (lsw &amp;amp; 0xFFFF);&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Bitwise rotate a 32-bit number to the left.&lt;br /&gt;*/&lt;br /&gt;function bit_rol(num, cnt)&lt;br /&gt;{&lt;br /&gt;return (num &amp;lt;&amp;lt; cnt)  (num &amp;gt;&amp;gt;&amp;gt; (32 - cnt));&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Convert a string to an array of little-endian words&lt;br /&gt;* If chrsz is ASCII, characters &amp;gt;255 have their hi-byte silently ignored.&lt;br /&gt;*/&lt;br /&gt;function str2binl(str)&lt;br /&gt;{&lt;br /&gt;var bin = Array();&lt;br /&gt;var mask = (1 &amp;lt;&amp;lt; chrsz) - 1;&lt;br /&gt;for(var i = 0; i &amp;lt; str.length * chrsz; i += chrsz)&lt;br /&gt;bin[i&amp;gt;&amp;gt;5] = (str.charCodeAt(i / chrsz) &amp; mask) &amp;lt;&amp;lt; (i%32);&lt;br /&gt;return bin;&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Convert an array of little-endian words to a string&lt;br /&gt;*/&lt;br /&gt;function binl2str(bin)&lt;br /&gt;{&lt;br /&gt;var str = "";&lt;br /&gt;var mask = (1 &amp;lt;&amp;lt; chrsz) - 1;&lt;br /&gt;for(var i = 0; i &amp;lt; bin.length * 32; i += chrsz)&lt;br /&gt;str += String.fromCharCode((bin[i&amp;gt;&amp;gt;5] &amp;gt;&amp;gt;&amp;gt; (i % 32)) &amp; mask);&lt;br /&gt;return str;&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Convert an array of little-endian words to a hex string.&lt;br /&gt;*/&lt;br /&gt;function binl2hex(binarray)&lt;br /&gt;{&lt;br /&gt;var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef";&lt;br /&gt;var str = "";&lt;br /&gt;for(var i = 0; i &amp;lt; binarray.length * 4; i++)&lt;br /&gt;{&lt;br /&gt;str += hex_tab.charAt((binarray[i&amp;gt;&amp;gt;2] &amp;gt;&amp;gt; ((i%4)*8+4)) &amp; 0xF) +&lt;br /&gt;    hex_tab.charAt((binarray[i&amp;gt;&amp;gt;2] &amp;gt;&amp;gt; ((i%4)*8 )) &amp;amp; 0xF);&lt;br /&gt;}&lt;br /&gt;return str;&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt;/*&lt;br /&gt;* Convert an array of little-endian words to a base-64 string&lt;br /&gt;*/&lt;br /&gt;function binl2b64(binarray)&lt;br /&gt;{&lt;br /&gt;var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";&lt;br /&gt;var str = "";&lt;br /&gt;for(var i = 0; i &amp;lt; binarray.length * 4; i += 3)&lt;br /&gt;{&lt;br /&gt;var triplet = (((binarray[i   &amp;gt;&amp;gt; 2] &amp;gt;&amp;gt; 8 * ( i   %4)) &amp; 0xFF) &amp;lt;&amp;lt; 16)&lt;br /&gt;       (((binarray[i+1 &amp;gt;&amp;gt; 2] &amp;gt;&amp;gt; 8 * ((i+1)%4)) &amp; 0xFF) &amp;lt;&amp;lt; 8 )&lt;br /&gt;       ((binarray[i+2 &amp;gt;&amp;gt; 2] &amp;gt;&amp;gt; 8 * ((i+2)%4)) &amp;amp; 0xFF);&lt;br /&gt;for(var j = 0; j &amp;lt; 4; j++)&lt;br /&gt;{&lt;br /&gt;  if(i * 8 + j * 6 &amp;gt; binarray.length * 32) str += b64pad;&lt;br /&gt;  else str += tab.charAt((triplet &amp;gt;&amp;gt; 6*(3-j)) &amp;amp; 0x3F);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return str;&lt;br /&gt;}&lt;/p&gt;&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;br /&gt;&lt;p&gt;------------------------------&lt;/p&gt;&lt;br /&gt;&lt;p&gt;另外还找到这么一段，=。= 把图片下载刀本地 然后计算md5 怎么看都是网页木马的做法啊。。。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;------------------------------&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Javascript计算二进制文件MD5 Hash的代码&lt;/p&gt;&lt;br /&gt;&lt;p&gt;说是用Javascript，其实是调用了COM组件。只不过用JS的语法而已。&lt;br /&gt;FSO的 File对象是无法读二进制文件的，只能读取文本。所以我在使用FSO去读取文件计算MD5 Hash的时候总是会出现莫名其妙的问题。这个也是我在用FSO前就估计到了的，但是一直没有找到好方法解决。后来终于想到用ADODB.Stream对象。哎，以前在瑞星的时候还写过删除这个对象的程序，现在竟然忘记了他能读取二进制文件。看来老了，呵呵。&lt;br /&gt;代码如下：&lt;br /&gt;var adoStream = new ActiveXObject("ADODB.Stream");&lt;br /&gt;adoStream.Type = 1;  // 1=adTypeBinary&lt;br /&gt;adoStream.Open();&lt;br /&gt;adoStream.LoadFromFile("&lt;a&gt;\\\\127.0.0.1\\C$\\Windows\\regedit.exe&lt;/a&gt;");&lt;br /&gt;var g_hashed = new ActiveXObject( "CAPICOM.HashedData" );&lt;br /&gt;g_hashed.Algorithm = 3; // MD5&lt;br /&gt;g_hashed.Hash( adoStream.Read() );&lt;br /&gt;adoStream.Close();&lt;br /&gt;//B313C22A27D1D8677CDEC778346D817E&lt;br /&gt;System.println(g_hashed.Value);&lt;br /&gt;这里注意一点，由于我是使用adoStream.Read()一下将文件内容全部读到内存缓冲区中，所以在遇到大文件时，需要改写上面代码，每次读1024或2048 Bytes比较合适。然后对每次读出的内容均调用Hash函数，最终在读取Value属性的值即可。&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16031473-115837742846727036?l=520hacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://520hacker.blogspot.com/feeds/115837742846727036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16031473&amp;postID=115837742846727036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/115837742846727036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/115837742846727036'/><link rel='alternate' type='text/html' href='http://520hacker.blogspot.com/2006/09/1.html' title='专门写了1个转换数据用的程序。'/><author><name>520hacker</name><uri>http://www.blogger.com/profile/10292198573558635917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16031473.post-115828365604469752</id><published>2006-09-14T18:21:00.000-07:00</published><updated>2006-09-14T18:27:36.103-07:00</updated><title type='text'>做富有web2.0特色的垃圾站 pic上beta拉。</title><content type='html'>&lt;br /&gt;&lt;p&gt;花了一段时间，cnweb20的pic版终于可以上beta了。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;解决了图片出错的1个问题，自动提示系统，下次不再显示。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;终于把List页做出来拉，或许好心的搜索引擎大大会给我收录一下。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.cnweb20.com/spic/index.asp"&gt;http://www.cnweb20.com/spic/index.asp&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.cnweb20.com/spic/list.asp"&gt;http://www.cnweb20.com/spic/list.asp&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;准备做 ubb 代码的copy , html 代码的 copy , 自由js的支持&lt;/p&gt;&lt;br /&gt;&lt;p&gt;还有 我也要拥有一个这样的网站 的功能，可以自定义Logo和banner的哦。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;当然 这1切的1切 还要等我用vb 写好数据更新系统才能继续。&lt;/p&gt;&lt;br /&gt;&lt;p&gt;虽然vc写的程序效率好些 但是相对来说 vb 熟些拉。&lt;br/&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16031473-115828365604469752?l=520hacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://520hacker.blogspot.com/feeds/115828365604469752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16031473&amp;postID=115828365604469752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/115828365604469752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/115828365604469752'/><link rel='alternate' type='text/html' href='http://520hacker.blogspot.com/2006/09/web20-picbeta.html' title='做富有web2.0特色的垃圾站 pic上beta拉。'/><author><name>520hacker</name><uri>http://www.blogger.com/profile/10292198573558635917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16031473.post-115770546306290785</id><published>2006-09-08T01:45:00.000-07:00</published><updated>2006-09-08T04:56:53.943-07:00</updated><title type='text'>以下站点/系统均为520hacker开发作品的镜象</title><content type='html'>&lt;br /&gt;&lt;p&gt;&lt;strong&gt;以下站点/系统均为520hacker开发作品的镜象&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;======================================&lt;/p&gt;&lt;br /&gt;&lt;p&gt;行销管理系统 &lt;a href="http://www.520hacker.com/ginfo/member/default.asp" target="_blank"&gt;用户登录&lt;/a&gt; | &lt;a href="http://www.520hacker.com/ginfo/master/default.asp" target="_blank"&gt;管理登陆&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://xingzhi.cnweb20.com/" target="_blank"&gt;图书管理系统测试&lt;/a&gt;(asp + vb + active dll)(用户test密码test)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://shequ.cnweb20.com/"&gt;民政小区信息管理系统&lt;/a&gt;(需要测试帐号请gt联系&lt;a href="mailto:520hacker@gmail.com"&gt;520hacker@gmail.com&lt;/a&gt;)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.xhsm.com/" target="_blank"&gt;玄幻小说站点&lt;/a&gt; (asp + sql + xmlhttp + vb)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://coolpic.cnweb20.com/" target="_blank"&gt;利用组件创建图形&lt;/a&gt;(asp + dll)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.cnweb20.com/fun/index.asp" target="_blank"&gt;ISAPI Rewrite例子/笑话站&lt;/a&gt;(伪html实现)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.cnweb20.com/pic/index.asp" target="_blank"&gt;利用自主采集创建图片站点&lt;/a&gt;(伪html实现+xmlhttp)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.cnweb20.com/my/" target="_blank"&gt;利用ajax+xml实现用户个性定制&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://feihong.cnweb20.com/index.htm" target="_blank"&gt;利用风讯新闻系统构建大型企业信息平台&lt;/a&gt;(cms架构)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://blog.donews.com/520hacker/archive/2006/04/18/834504.aspx" target="_blank"&gt;图片下载程序&lt;/a&gt;(vb)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.xhsm.com/book/Chatbot/default.asp"&gt;简单web聊天机器人&lt;/a&gt;(搜索引擎与分词研究)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;以下链接均为520hacker个人收藏与展示&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;==================================&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://info.520hacker.com/" target="_blank"&gt;开发者&lt;/a&gt;(电子简历2004)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://linux_craker.photo.163.com/" target="_blank"&gt;163相册&lt;/a&gt; &lt;a href="http://picasaweb.google.com/520hacker"&gt;Google相册&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.365key.com/520hacker" target="_blank"&gt;365key个人网摘&lt;/a&gt; | &lt;a href="http://520hacker.googlepages.com/" target="_blank"&gt;GooglePages&lt;/a&gt; | &lt;a href="http://hi.baidu.com/520hacker"&gt;BaiDuPages&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.donews.net/520hacker" target="_blank"&gt;斗牛士日志&lt;/a&gt; | &lt;a href="http://v2ex.com/u/520hacker" target="_blank"&gt;我的Zen&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://pic.520hacker.com/" target="_blank"&gt;Flash图库&lt;/a&gt; | &lt;a href="http://member.dazhuan.com/member/=520hacker=/" target="_blank"&gt;个人软件PUB&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;其他工作&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;============================&lt;/p&gt;&lt;br /&gt;&lt;p&gt;服务器维护( win2003+sqlserver )&lt;/p&gt;&lt;br /&gt;&lt;p&gt;网络办公化( exchange+vpn )&lt;/p&gt;&lt;br /&gt;&lt;p&gt;域名收藏 &lt;a href="http://www.cnweb20.com/" target="_blank"&gt;cnweb20.com&lt;/a&gt; &lt;a href="http://www.520hacker.com/" target="_blank"&gt;520hacker.com&lt;/a&gt; &lt;a href="http://www.xhsm.net/" target="_blank"&gt;xhsm.net&lt;/a&gt; &lt;a href="http://www.netvibes.com.cn/" target="_blank"&gt;netvibes.com.cn&lt;/a&gt; &lt;a href="http://member.dazhuan.com/member" target="_blank"&gt;dazhuan.com&lt;/a&gt; &lt;a href="http://dev.xietong.net/"&gt;Xietong.Net&lt;/a&gt; &lt;a href="http://www.chemplant.cn/"&gt;Chemplant.cn&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;以下地址为日常使用的公用连接&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;=======================================&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.google.com/calendar" target="_blank"&gt;日程设计以及生活管理&lt;/a&gt; &lt;a href="http://www.goowy.com/"&gt;Flash OS&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;script src="http://js.users.51.la/348864.js" xml:space="preserve" type="text/javascript" language="javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;a href="http://www.51.la/?348864" target="_blank"&gt;&lt;img width="20" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" height="20" alt="51.la 专业、免费、强健的访问统计" src="http://icon.ajiang.net/icon_3.gif"/&gt;&lt;/a&gt; &lt;script xml:space="preserve" type="text/javascript"&gt;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;var a348864tf="51la";var a348864pu="";var a348864pf="51la";var a348864su=window.location;var a348864sf=document.referrer;var a348864of="";var a348864op="";var a348864ops=1;var a348864ot=1;var a348864d=new Date();var a348864color="";if (navigator.appName=="Netscape"){a348864color=screen.pixelDepth;} else {a348864color=screen.colorDepth;}&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;&lt;/script&gt;&lt;script xml:space="preserve" type="text/javascript"&gt;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;a348864tf=top.document.referrer;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;&lt;/script&gt;&lt;script xml:space="preserve" type="text/javascript"&gt;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;a348864pu =window.parent.location;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;&lt;/script&gt;&lt;script xml:space="preserve" type="text/javascript"&gt;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;a348864pf=window.parent.document.referrer;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;&lt;/script&gt;&lt;script xml:space="preserve" type="text/javascript"&gt;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;a348864ops=document.cookie.match(new RegExp("(^| )AJSTAT_ok_pages=([^;]*)(;|$)"));a348864ops=(a348864ops==null)?1: (parseInt(unescape((a348864ops)[2]))+1);var a348864oe =new Date();a348864oe.setTime(a348864oe.getTime()+60*60*1000);document.cookie="AJSTAT_ok_pages="+a348864ops+ ";expires="+a348864oe.toGMTString();a348864ot=document.cookie.match(new RegExp("(^| )AJSTAT_ok_times=([^;]*)(;|$)"));if(a348864ot==null){a348864ot=1;}else{a348864ot=parseInt(unescape((a348864ot)[2])); a348864ot=(a348864ops==1)?(a348864ot+1):(a348864ot);}a348864oe.setTime(a348864oe.getTime()+365*24*60*60*1000);document.cookie="AJSTAT_ok_times="+a348864ot+";expires="+a348864oe.toGMTString();&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;&lt;/script&gt;&lt;script xml:space="preserve" type="text/javascript"&gt;&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;a348864of=a348864sf;if(a348864pf!=="51la"){a348864of=a348864pf;}if(a348864tf!=="51la"){a348864of=a348864tf;}a348864op=a348864pu;try{lainframe}catch(e){a348864op=a348864su;}document.write('&amp;amp;amp;lt;img style="width:0px;height:0px" src="http://21.db.51.la/s.asp?id=348864&amp;amp;amp;amp;tpages='+a348864ops+'&amp;amp;amp;amp;ttimes='+a348864ot+'&amp;amp;amp;amp;tzone='+(0-a348864d.getTimezoneOffset()/60)+'&amp;amp;amp;amp;tcolor='+a348864color+'&amp;amp;amp;amp;sSize='+screen.width+','+screen.height+'&amp;amp;amp;amp;referrer='+escape(a348864of)+'&amp;amp;amp;amp;vpage='+escape(a348864op)+'" /&amp;amp;amp;gt;');&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;//&lt;br /&gt;&lt;/script&gt;&lt;img width="0px" style="WIDTH: 0px; HEIGHT: 0px" height="0px" src="http://21.db.51.la/s.asp?id=348864&amp;amp;tpages=1&amp;amp;ttimes=3&amp;amp;tzone=8&amp;amp;tcolor=32&amp;amp;sSize=1280,1024&amp;amp;referrer=&amp;amp;vpage=http%3A//www.520hacker.com/"/&gt; &lt;noscript&gt;&lt;a href="http://www.51.la/?348864" target="_blank"&gt;&lt;img width="20" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" height="20" alt="我要啦免费统计" src="http://img.users.51.la/348864.asp"/&gt;&lt;/a&gt;&lt;/noscript&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16031473-115770546306290785?l=520hacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://520hacker.blogspot.com/feeds/115770546306290785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16031473&amp;postID=115770546306290785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/115770546306290785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/115770546306290785'/><link rel='alternate' type='text/html' href='http://520hacker.blogspot.com/2006/09/520hacker.html' title='以下站点/系统均为520hacker开发作品的镜象'/><author><name>520hacker</name><uri>http://www.blogger.com/profile/10292198573558635917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16031473.post-115108047811743468</id><published>2006-06-23T09:33:00.000-07:00</published><updated>2006-06-23T09:34:38.123-07:00</updated><title type='text'>test</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/6471/1506/640/14531403.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6471/1506/320/14531403.jpg" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16031473-115108047811743468?l=520hacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://520hacker.blogspot.com/feeds/115108047811743468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16031473&amp;postID=115108047811743468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/115108047811743468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/115108047811743468'/><link rel='alternate' type='text/html' href='http://520hacker.blogspot.com/2006/06/test.html' title='test'/><author><name>520hacker</name><uri>http://www.blogger.com/profile/10292198573558635917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16031473.post-114619797964796496</id><published>2006-04-27T21:19:00.000-07:00</published><updated>2006-04-27T21:19:39.656-07:00</updated><title type='text'>笑神....</title><content type='html'>&lt;a href="http://photos1.blogger.com/blogger/6471/1506/640/20051121663755094.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6471/1506/320/20051121663755094.jpg" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6471/1506/640/20051121663756942.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6471/1506/320/20051121663756942.jpg" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6471/1506/640/20051121663757704.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6471/1506/320/20051121663757704.jpg" border="0" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/6471/1506/640/20051121663781384.jpg"&gt;&lt;img style="CLEAR: all; FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://photos1.blogger.com/blogger/6471/1506/320/20051121663781384.jpg" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href='http://picasa.google.com/blogger/' target='ext'&gt;&lt;img src='http://photos1.blogger.com/pbp.gif' alt='Posted by Picasa' style='border: 0px none ; padding: 0px; background: transparent none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;' align='middle' border='0' /&gt;&lt;/a&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16031473-114619797964796496?l=520hacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://520hacker.blogspot.com/feeds/114619797964796496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16031473&amp;postID=114619797964796496' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/114619797964796496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/114619797964796496'/><link rel='alternate' type='text/html' href='http://520hacker.blogspot.com/2006/04/blog-post.html' title='笑神....'/><author><name>520hacker</name><uri>http://www.blogger.com/profile/10292198573558635917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-16031473.post-112545316840821979</id><published>2005-08-30T18:52:00.000-07:00</published><updated>2005-08-30T18:52:48.410-07:00</updated><title type='text'>welcome.....</title><content type='html'>welcome.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/16031473-112545316840821979?l=520hacker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://520hacker.blogspot.com/feeds/112545316840821979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=16031473&amp;postID=112545316840821979' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/112545316840821979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/16031473/posts/default/112545316840821979'/><link rel='alternate' type='text/html' href='http://520hacker.blogspot.com/2005/08/welcome.html' title='welcome.....'/><author><name>520hacker</name><uri>http://www.blogger.com/profile/10292198573558635917</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
