分类文档:编程 238篇随谈:2010-12-21 谈二级域名/三级域名
2010年12月21日 13:24
现在国内很多大的网站,都使用三级域名。例如一级域名是abc.com,二级域名是news.abc.com,三级域名是aa.news.abc.com。子域名与网站目录的排列顺序正好是相反的,子域名是倒着排列。例如通常认为news.abc.com是abc.com的子域名,aa.news.abc.com是news.abc.com的子域名。事实上如果有需要的话,我们也可以设定为news.aa.abc.com,将news与aa互换。如果服务器同一个目录里有多个站点,修改相关的程序,使news与aa互换。
在域名的DNS功能控制面板里,添加二级域名和三级域名、四级域名、甚至更多级的方法是完全一样的,所不同的是二级域名添加的名称中不含“.”(点)这个符号。在这个意义上,二级域名和三级域名、四级域名其实都是一级域名的子域名,也就是news.abc.com和aa.news.abc.com实际上是并列的关系,这个“.”(点)既可以当作是是无实际意义的分隔符,也可以当作是有意义的从属关系,在这个意义上无需区分是二级域名和三级域名、四级域名;也可以认为是子子域名、子子子域名的关系。增加了一个“.”(点)的符号,既可以扩展新的子域名的子域名、子子域名、子子子域名,也可以将它们认为是并列的关系。……
固定链接 | 发表评论(0) | Trackback(0)
快完成了
2009年11月29日 08:24
经过这段时间的持续努力,这项工作终于快完成了。2005年~2008年4月做的一个网站,断断续续做了3年的时间才完成。因为程序结构不够理想,有些部分现在觉得有些繁琐,很阻碍新的开发。今年整个删除,重新编写程序。
当全力以赴地写程序的时候,使用的时间似乎是非常“精确”的,不多不少,就是那些时间,总是有一个极限。这个极限时间无法突破,不能再快了。需要半年的时间,就是半年;需要300小时,就是300小时。假如每天编程10小时,连续30天可以编完;如果换成每天编程2小时,实际上可能不是150天完成,每天的有效编程时间可能不到半小时,所以可能需要600天才完成。因为程序有很强的连续性,持续不休息地工作,能够记住前面的思路,间断的时间越长,忘得越多。我在2006年写的一段搜索程序,2年后用了3天的时间才能回忆起来当时的思路,那段程序看了3天,所以现在养成了记笔记的习惯。……
固定链接 | 发表评论(1) | Trackback(0)
网页中的路径/
2009年10月20日 21:07
如果博客地址是http://www.auiou.com/blog/,对外公布或者制作超链接时,使用http://www.auiou.com/blog/较好,最后的一个斜杠最好不要省略。如果网站内部的链接指向一个含有默认文档的文件夹,同样最后的一个斜杠也最好不要省略。
因为http://www.auiou.com/blog与http://www.auiou.com/blog/不同的是,前者是一个并不存在的文件,后者是一个文件夹。无论是Windows主机,还是Linux主机,访问前者,都会返回301代码(重定向),然后浏览器再迅速找到http://www.auiou.com/blog/。……
固定链接 | 发表评论(12) | Trackback(1)
循环程序的写法与速度对比
2009年10月18日 20:04
下列测试都是在Windows XP系统SP3/IE 6.0/3G CPU/1G内存,Apache+PHP的环境中,如下程序:
<?$j=0;……
固定链接 | 发表评论(4) | Trackback(0)
博客防spam/陌生人恶意留言另一方案
2009年10月12日 18:37
防spam的规则,通常不会冲突,规则越多,越减少spam。如果你有时间,一个博客可以设置几条,几十条规则。如之前的规则,
http://www.auiou.com/relevant/00000564.jsp,已经可以很有效地防止spam。因为博客是个人博客,再加上判断的程序仅在用户发送表单时才会生效,只要规则不是很多,可能不会影响博客的速度。如果你的博客或者论坛访问量很大,留言数很多,可以将多条规则用include()函数将程序分开,当符合条件时才会调用相应的程序,这是PHP的一大优点,不符合条件不会调用,可有效地大大提高程序的速度。
网友的绝大多数留言都是友好的。如果博客中偶尔出现一条陌生人的恶意留言,可能会影响博主的心情,如果在意,会与这些发布恶意留言的网友的命运发生牵连,与他们的业力发生牵连。留言者,没有权利审判别人。如上面的链接中的方法,可以直接封闭IP。……
固定链接 | 发表评论(6) | Trackback(0)
二级域名的博客在本地建立虚拟主机
2009年10月11日 09:26
在本地建立虚拟主机,可以模拟远程,便于调试,之前已经写过几篇,本文介绍的方法与之前的这篇基本上是一样的,阅读这篇也可以实现,
http://www.auiou.com/relevant/00000572.jsp。本文介绍的语句是直接用ServerAlias,而不使用ServerName来建立虚拟主机。经过测试,ServerName可以用ServerAlias代替。ServerAlias的使用更为强大方便,ServerAlias可以同一空间绑定多个域名,同一空间泛域名解析,同一空间多个域名的泛域名解析。
在Apache的conf/httpd.conf文件原来的基础上,写入如下4行,就在本地建立了虚拟主机:……
固定链接 | 发表评论(3) | Trackback(2)
重新编写了Trackback程序
2009年10月10日 11:28
因为xml的Trackback方式,时常会收到批量的spam,并且xml有时会发送失败,所以我放弃这种方式很久了。取而代之的是类似于发表评论的方式,直接在网页上发表Trackback。事实上,评论程序与这里要谈的直接发送Trackback的程序,95%以上是一样的。因为程序大致相同,所以我现在将评论程序、Trackback程序的公共部分写在另外的文件如gr.php,
然后gr.php被这2个程序用include()函数调用。
因为www.auciou.com整个Blog都是最近重新编写的,所以Trackback程序也需要重新编写。我的评论程序与Trackback程序的表单名称相同的是:用户名、留言内容;不同的是URL代表的含义不同,Trackback程序有文章标题。相同的表单,可以做相同的处理。……
固定链接 | 发表评论(4) | Trackback(0)
Apache实现多域名解析同一空间简法
2009年10月10日 09:46
如之前的方法《Apache在本地建立泛域名虚拟主机简法》,
http://www.auiou.com/relevant/00000573.jsp,正文已列出能够实现的步骤,实现起来是比较容易的。主要是归功于Apache强大简便的别名功能ServerAlias和强大简便的泛域名解析功能。
如上面文章中的代码实例,在Apache的conf/httpd.conf文件原来的基础上,再加入一行ServerAlias *.aucgra.com,如下代码:……
固定链接 | 发表评论(2) | Trackback(1)
Apache在本地建立泛域名虚拟主机简法
2009年10月08日 08:55
在本地建立泛域名虚拟主机,可以修改Apache的安装目录下的conf/httpd.conf,如下:
<VirtualHost *:80>……
固定链接 | 发表评论(12) | Trackback(5)
使用Apache作为本地虚拟主机预览博客
2009年10月07日 21:23
Apache的虚拟目录,或者虚拟主机建立很方便。在Apache里,虚拟主机实际上是一个虚拟目录,所以Apache建立虚拟目录、虚拟主机的方法是完全一样的。如下图,是默认的http://localhost在httpd.conf中的设置方法,
……
固定链接 | 发表评论(9) | Trackback(6)
博客+论坛的方式
2009年09月28日 12:18
我的博客评论设置为不分页,超过500回复,或者一个网页内的评论字数超过200K,设置为关闭此篇评论。本博客也有一篇超过500回复。有网友曾经提问,为什么我不设置为评论分页?主要是为了某种主流风格,将帖子集中在一起,有某一种用户体验。例如MOP,PCPOP的论坛帖子分页,每页是100条或50条帖子,而天涯每页的帖子特别多,他们都保持一定的风格。分页可以节省服务器资源,论坛因为在线人数多,分页可以大大降低服务器的CPU,内存资源。博客因为在线人数相对少,不分页可使内容集中,便于读者浏览。用户体验、程序的效率设计,在于访问量的多少来取舍和设计。
当你的博客评论因为回复太多时,你可以在最后回复,给大家发一个网址,指向一个论坛的帖子,让大家继续在那里讨论,然后关闭这篇博客的评论。……
固定链接 | 发表评论(5) | Trackback(0)
博客存档的命名
2009年09月24日 12:52
博客存档文件的命名我使用数字的方式,假设http://www.auciou.com/peace/72,也有很多Blogger使用英文的方式,假设http://www.auciou.com/peace/make-an-easy-audio-converter。
使用数字的方式好处在于:……
固定链接 | 发表评论(5) | Trackback(0)
防止批量spam的方法
2009年09月24日 12:24
固定链接 | 发表评论(6) | Trackback(3)
auciou.com重新调整完毕
2009年09月15日 20:20
auciou.com已经重新调整完毕。cutegd.com是我的第一个Blog,在2005年的过年开通。后来域名改为auciou.com,cutegd不再使用。
auciou.com的程序与auiou.com的程序不一样。前几天重新编写和修改了auciou.com的程序,有很多都是新写的程序。还有Trackback和URL认证功能有待处理,现在此博客已经编写了防灌水的程序。……
固定链接 | 发表评论(8) | Trackback(0)
Apache的Rewrite与404错误页面的区别
2009年07月26日 17:04
Rewrite与404错误页面各有优势。它们的一些区别:
- 404错误页面的优势可能在于不用调用Rewrite模块,Rewrite需要调用此模块。因此404错误页面可能会更节省资源,使大型网站的速度更快一些。我编写的静态化网页,目前大多数都是使用404错误。
- 使用404错误页面,不能被POST和GET。例如305.php?name1=auiou,假如此305.php页面是用404错误产生,则此$_GET['name1']的值不会被读取。其它页面的<form>使用POST方法将action指向此404错误产生的305.php,也无法被接收,例如<form method=post action=305.php>所发送的信息无法被305.php接收。
如果您希望产生的虚拟路径如305.php被POST和GET,使用Rewrite可解决。
- 404错误页面的开头有一些Linux空间必须写入这句<?Header('HTTP/1.1 200 OK');?>,有一些Linux空间则必须写为<?Header('Status: 200 OK');?>才可以被搜索引擎收录,否则会被认为是404页面。调试时,可以在网上搜索“404 检测工具”进行测试。……
固定链接 | 发表评论(5) | Trackback(2)
我设计的防灌水和封IP程序原理
2009年07月25日 23:38
我设计的防灌水程序和封IP程序,已经在ufoaq实施了一个多月,效果很好,既简单又高效,比我在2006年设计的封IP程序又简单了一些。防灌水程序主要是通过写入Cookies,封IP程序是通过写入Cookies兼直接从数据库读封IP的列表,本文以PHP为例。因为本程序需要写入Cookies,请在最外层的程序如post.php、reply.php、submit.php等等的最开头写入<?ob_start();?>这句,否则会报错。
防灌水程序的原理如下,本程序写在一个留言判别的公用组件如judge.php,此文件被其它文件使用include()函数包含引用:……
固定链接 | 发表评论(4) | Trackback(2)
编程必备工具:文本替换专家
2009年07月17日 12:06
“文本替换专家”是一款优秀的批量文本文件的替换/查找工具,体积小,运行速度快。批量文件的查找功能十分便捷,可以从批量的文本文件中找出有搜索的关键词的文件。例如您编写的程序中,需要查找以前写过的程序中是否使用过某个变量名,可以点击该软件的“查找文件”,“查找内容”处输入要查找的如关键词$aa=,$bb=,以这样的方法。变量名后面加一个“=”号,查找更准确一些,“包含子文件夹”前面的勾需要打上。
因为编写程序的过程中,经常需要包含文件,为了不使全局变量名重名,需要批量查找相关的文件,“文本替换专家”会很快地找到,比手动一个一个文件去查找,节省很多的时间。另外,编写程序的过程中,也经常需要复制程序、复制代码,从这个程序文件复制到另一个文件,所以整个程序的所有文件的变量名尽量不要重名,使用该软件可以检验变量名是否使用过。……
固定链接 | 发表评论(3) | Trackback(0)
再谈泛域名解析
2009年06月25日 09:14
泛域名解析至少有2种方法可以实现。一种是服务器有独立的IP,则服务器不用做任何设置,只在域名管理面板增加*.abc.com的A记录,指向服务器的IP地址。如果A记录不能增加*的子域名,则在别名(CNAME)处增加,详细步骤请见
http://www.auiou.com/relevant/00000432.jsp。
另一种方法是不需要独立的IP,需要服务器中您的虚拟目录允许泛域名解析,在网站空间的管理面板设置,或者让空间服务商帮助修改Apache的httpd.conf文件,或者修改IIS设置。然后与上面同样的方法,添加*.abc.com的A记录,就实现了泛域名解析。……
固定链接 | 发表评论(8) | Trackback(2)
慎用全能空间,PHP空间使用IIS很慢,应使用Apache
2009年06月10日 19:25
国内的很多虚拟主机,支持PHP的空间目前有90%以上都是使用Windows主机。也有很多Windows主机支持全能空间,同时支持ASP,PHP,ASP.net等等。PHP空间使用IIS会很慢,应该使用Apache作为服务器程序,最好选用Linux系统,因为Windows系统+Apache虽然速度快,但可能不支持PHP的mail()函数,IIS也一定不支持.htaccess。
下列测试环境都是在Windows XP系统SP3/IE 6.0/3G CPU/1G内存的环境下,只做循环程序和文本输出测试,其它函数未测试。Windows+IIS+PHP和Windows+Apache+PHP的测试结果,分别如下:……
固定链接 | 发表评论(15) | Trackback(5)
这两年编写的全新程序
2009年06月09日 10:30
2008年,2009年这两年,我编写了很多全新的程序,以前从来没有过的结构。这些结构已经实现了高效率,将来在结构上基本上不用大调整。2008年几乎一整年,都是在编写行业网站的程序。2009年,重新编写了2套不同的全新的论坛程序,一个是多版块儿封闭论坛程序(发帖不需要审核),一个是单版块儿的公开论坛程序(发帖需要审核);重新编写了一套全新的多用户的博客程序;重新编写了一套全新的多版块留言板程序;重新编写了一套站内短消息程序;重新编写了注册/登录程序,用户资料管理程序,用户留言公共处理和判断的模块,相应的后台管理程序等等,都是使用PHP编写。
ufoaq是上述提到的单版块论坛程序。这个网站在今年4月底做了一个较大规模的全新开发,用集中开发的方式。最近做了两三次小规模的修正和开发,还有很多次的小修改,现在已经是一组比较完美的论坛程序。(ufoaq使用国外的服务器。)……
固定链接 | 发表评论(9) | Trackback(1)
关于站内短消息的程序的开发
2009年05月27日 20:53
这是我编写的站内短消息程序http://e.orshu.com/send/5001。
我在2007年开发完成了第一个站内短消息的程序,用于一个行业的网站,当时开发这个程序大约用了半个月。那个功能做得比较细,比如可以查找好友,添加/删除好友,好友列表调序,允许未注册用户发送短消息,信息回复,单条/全部删除信息,防止重复发送。……
固定链接 | 发表评论(15) | Trackback(0)
修正了自动发送邮件程序
2009年05月18日 22:26
我们的网站,用户在密码重置的时候,会自动发送临时的密码到用户的邮箱,如这里http://e.orshu.com/m/user/forget/。为了防止用户多次重置而频繁发送邮件,可以设定为15分钟之内只允许发送一次邮件。方法是记录用户上次密码重置的最后时间,PHP使用time()记录最后相对时间即可,ASP使用now记录最后时间。然后调用上次密码重置的最后时间,以变量$auf为例:
PHP算出时间差的方法:……
固定链接 | 发表评论(6) | Trackback(0)
ufoaq的论坛开发日记
2009年05月16日 23:25
2008年的时候,我用了一个多月的时间,从零编写,开发了一个论坛,与ufoaq的功能完全一样。当时开发用了很多的时间,是因为当时第一次编写用户帐号的注册程序,用户的数据库的字段琢磨了好久。一旦字段数量决定了,以后尽量不再改变,所以要花很多的心思去构思好。
我去年开发的论坛程序,是多版块程序,也就是可以增加无数个分版块,所以预留了一些数据库字段。那个论坛程序,增加一个新版块是比较容易的,只需在后台操作一下。而那个网站实际上只需要一个版块,后来也没有增加新版块。……
固定链接 | 发表评论(4) | Trackback(2)
记笔记是编程的好习惯
2009年05月02日 10:13
在打开多段数据的时候,对于分页的处理会复杂很多。通常情况下,只打开一段数据库,分页程序比较容易实现,如这里
http://www.auiou.com/relevant/00000445.jsp。
打开2段,或者3段以上的数据库,然后实现分页,就复杂很多了。2006年的时候,我大约用了3天,更多天的时间,实现打开2段,多段数据库的分页。在纸上演算分页后的结果,然后推算出当前页提取数据的条件语句和算式。2个月前,需要再次编写打开2段数据库的程序,看2年多以前的这段程序,已经看不懂了。因为当时是在纸上演算,根据数据的规律而写出算式。如果没有看到草稿纸上的数字,是根本不会知道算式为什么要这样写。我昨天用了几个小时,重新推算了一遍。虽然实现的结果一样,但是方法不一样,昨天推算了一个新方法。……
固定链接 | 发表评论(2) | Trackback(1)
程序调试时删除或屏蔽跳转页面语句
2009年04月30日 23:00
如果PHP程序中有错误,有时候后面的语句会接着往下运行,而不是运行到错误的地方停止(PHP程序中如果有严重的错误,会停止之后的程序)。如果在报错的后面有跳转页面语句如Header("Location: http://www.auiou.com");或Header("Location: auf.php");或Header("Location: $cg.php");,或者<meta http-equiv=refresh content=0;url=http://www.auiou.com>,往往会直接跳转,不会提示报错。
即使是有经验的老程序员,在程序调试当中,报错也是十分频繁的。比如少写一个大括号,少一个分号,运算符号误写,或者误增加其它字符,都会出现报错。或者因为程序的算法不恰当,出现报错。……
固定链接 | 发表评论(2) | Trackback(0)
我的PHP最佳编程工具是EmEditor
2009年04月14日 12:22
我从事了6年多的编程工作,在这之前做了将近2年的纯HTML+CSS的网页制作和设计。本博客很多次提到的EmEditor,是一款简洁实用的文本工具。对于PHP编程有十分好的支持,几乎到了完美。我的PHP首选编程工具是EmEditor,使用EmEditor做PHP编程,几乎不用再用其它的文本工具。对于PHP编程,EmEditor有这些优点:
- 查找功能十分好,在一个文件里,相同的关键词会用绿色高亮显示,这个功能对于编程来说是十分重要的。查找和替换功能,支持回车符,回车符用\n表示。
- 分割窗口。分割窗口的作用是可以不移动光标,而在另一个窗口查看同一个程序的其它“段落”,这个功能非常常用。EmEditor按F12,同一个文件文件可以分成4个窗口来看。我从来都没有需要使用4个窗口来看,2个窗口很常用。方法是按F12,然后把鼠标拖动到窗口的最下方,则以纵向的方式分割窗口;把鼠标拖动到窗口的最右方,则以横向的方式分割窗口。
- 在PHP程序里,如果网页使用UTF-8格式和语言,BOM(Unicode签名)有一些障碍,所以需要去掉BOM。这些障碍包括如果被include的文件中有BOM,会出现多余的空行;使用header()函数PHP程序会报错,解决方法如http://www.auiou.com/relevant/00000469.jsp。……
固定链接 | 发表评论(21) | Trackback(0)
回复一位网友:JSP如何编写RSS(xml)
2009年04月10日 18:38
创建一个扩展名为.jsp的文件,在这个.jsp文件中,开头写入如下这句,JSP文件格式即可转化为XML格式:
<%@page contentType="text/xml;charset=utf-8"%>……
固定链接 | 发表评论(2) | Trackback(0)
测试程序和服务器速度的简单方法
2009年04月09日 12:15
把<title>标题</title>写在网页较前的位置,在<title>标题</title>之前尽量不要加载数据库,也就是数据库的调用尽量写在<title>标题</title>之后。这样可以优先加载title,用户端也可以更快地看到网页标题。
如果加载title之后,网页也较快地加载,说明程序、服务器、网速都快;……
固定链接 | 发表评论(2) | Trackback(0)
静态页到动态页
2009年04月09日 11:23
去年和刘云天兄见面的时候,他谈起了我的博客程序。谈到我的博客页面是不是静态的,我说是动态的。博客的正文和评论,都是重新读取数据库。我从2000年底开始学做网页,2006年5月底完成了自己的第一个博客程序。这个博客程序是我正式走向全站动态页的开始,从静态走向全站动态,经历了5年半的时间。我从2001年的冬季开始学习ASP,2002年10月份才学会,在当时写了自己的第一个留言板程序,几个月后把留言板程序改为论坛程序。
在2006年5月以前,我的网页都是静态的扩展名.htm的网页。经历了这5年半的时间,静态页的维护很繁琐,那时候觉得工作量好大。虽然现在的动态页工作量也大,但是动态页可以根据需要自己建立管理后台,对数据进行处理,十分方便。静态页只要稍微有一点改动,很多相关的html页面都要修改,然后用FTP上传。动态页只要修改相关的数据即可。……
固定链接 | 发表评论(1) | Trackback(0)
无分别
2009年04月07日 18:18
在编程中,有经验的程序员,真正应用于一个项目的技术,不到所有的基本知识的千分之一。同样,在CSS中,也是这样,实际应用中,需要用到的知识不到千分之一。初期的程序员,学习基础知识,基本的原理,核心的技术。中期的程序员,学习和运用更复杂一些的技术。后期的老程序员,回归到最简单的原理,将这些最简单的原理累加起来,实现一个高效率的项目。技术就是这样的一回事儿,一切的努力都是为了实际的应用服务。
简单与复杂并无分别。……
固定链接 | 发表评论(3) | Trackback(0)
首页 | 上一页 | 下一页 | 末页 (共8页)