首页 > 服务器 > Win服务器 > 正文

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

2024-09-10 00:02:26
字体:
来源:转载
供稿:网友
下面是库中的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文件改一下便可。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表