实现Web中的@虚拟域名系统(原理篇)(2)

王朝厨房·作者佚名  2007-01-02
宽屏版  字体: |||超大  

下面是库中的url表结构:

字段名 字段类型 字段默认值 //功能注释

id int 自增 关键字 1 不用user做关键字是怕其中有中文字符

user 字符型 null 如BBS或GUESTBOOK的值

url 字符型 null 转向的网址

click int 0 访问量

表里的字段很少,只有4个,网友可以根据需要再增加一些功能字段,如是否有弹出窗口广告,访问量分析等。不过必要的就是user字段和url字段,因为我们必须要得到user的值,再根据它得到其转向url网址,再在gourl.asp中实现转向就行了。

下面是gourl.asp中实现转向的全部程序(我会在程序中写下注释):

dim conn,dbs //定义变量

Set conn=Server.CreateObject("ADODB.Connection") //建立连接对象

dbs=server.mappath("url.mdb") //定义要连接的数据库路径

conn.open "driver={microsoft access driver (*.mdb)};dbq="&dbs //打开并实现其数据库源的链接

user=trim(request.querystring("user")) //得到default.html文件中得到的在浏览器中输入的网址

if user<>"" then //当user值不为空时

user=replace(user,"http://","") //将"http://"字符串从user值删去

at=instr(user,"@") //将user值中"@"所在位置赋给变量at

else

response.write "信息出错,请联系moon!" //当user值为空时则告诉网友有错

end if

if at>0 then

user=left(user,at-1) //当user值中"@"所在的位置大于0时,将其中的部分重赋给user,如"BBS"或"GUESTBOOK"等值

else

response.redirect "def.htm" //如果没有得到其中的值,如打http://www.luyu.net时,就返回def.htm文件中。

response.end //停止输出

end if

if user<>"" then

set rs=conn.execute("select url from dns where user='"&user&"'") //当user值不为空时,连接数据库,将进行搜索

if not rs.eof then

conn.execute("update url set click=click+! Where user='"&user&"'")//当记录不为空时,将此网站的访问量加1

response.redirect rs("url") //再转向其网站

else

response.write "抱歉,没有这个网站!" //记录为空时,警告网友没有此网站

end if

set rs=nothing

else

response.write"抱歉,没有这个域名!" //当user的值为空时,则警告网友没有此域名

end if

set conn=nothing //关闭数据库连接

如果想在访问虚拟域名时做个弹出窗口,以帮自己做个广告的话,可以在将上面的代码改成:

<script>

window.open("http://luyu.net","网络随笔","width=350,height=450");

this.location = "gourl.asp?user=" + this.location.href;

</script>

好了,这样一个域名访问系统就简单的做好了。如果和PHP或是JSP等来实现的话,原理也是一样的,我相信大家看了这篇文章都可以做出来了。只是把gourl.asp文件改一下便可。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有