▲ 如何用 asp 得到用户输入的 http 地址?(这是免费二级域名的折中解决方式!!!)

zzlcn 2002-05-18 11:29:33
如何用 asp 得到用户输入的 http 地址?

比如用户输入: http://123@yuming.com

就可以访问到: http://www.yuming.com/index.asp

我如何才能得到用户输入的 “http://123@yuming.com” 地址串?



如何用 asp 得到用户输入的 http 地址?

比如用户输入: http://123@yuming.com

就可以访问到: http://www.yuming.com/index.asp

我如何才能得到用户输入的 “http://123@yuming.com” 地址串?
...全文
82 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ChinaOk 2002-05-20
http://test@www.yourhost.com/

index.asp
================
<script language="javascript">
//这里可以先加入弹出代码 广告

var Url=location.href;
i=Url.indexOf("@");
if (i>7)
{//http://a@www.yourhost.com
location.href="redirect.asp?urlName=" + Url.substring(7,i);
}
</script>

redirect.asp
==========

根据传过来的urlNanme重定向
回复
ChinaOk 2002-05-20
那就是用客户端交本来实现吧。
回复
ChinaOk 2002-05-20
这个实现方式和我上面说的原理一样的。可能是你没看懂我的意思。
回复
zzlcn 2002-05-20
■还有没有更好的办法呢?

◆下面是一个php的例子,可惜不是asp的!

玩转虚拟域名◎+ .

文章类别:PHP实例 发表日期:2001-8-22
自动滚屏(右键暂停)

--------------------------------------------------------------------------------

玩转虚拟域名◎+ .

不知道大家最近上网是否发现一个新现象,就是有一些网站开始提供“username@server”的虚拟域名服务。由于“@”的魅力,大家纷纷申请,你或许会想:“如果我也能提供这种服务,该多好阿:)人气肯定不错!”本文将给大家揭开“@”的“神秘”面纱,让大家都可以来“@”!(Do u @ today?)
别急,这个并不是电子邮件的地址,是一种虚拟域名,不相信的话可以在浏览器中访问“bbs@zphp.com”。部分朋友应该使用过IE的FTP功能,就是在浏览器的地址栏中键入“password:username@server”IE就会自动登陆FTP服务器;而在Http1.1协议中,就规定了Http访问授权功能,形式同样为“password:username@server”,其中“password:”可以省略,也是是访问“bbs@zphp.com”实际上是以bbs的身份访问“zphp.com”这个服务器。
那么我们只是需要将具体的URI传送给PHP程序,在数据库中搜索出真实的URL重定向就可以了。
首先我们需要制作一个传送URI的页面(作为服务器的默认文档,一般命名为index.htm);在JS的Window对象中就可以实现这项功能,下面是index.htm的源代码:
<script>
this.location = ‘gotourl.php?url=’ + this.location.href;
</script>
上面的代码会将浏览器重定向到gotourl.php,并且通过QueryString给变量$url赋值为当前的URI。
成功将URI传递给PHP程序后,就可以进入数据库查找真实URL,下面是SQL数据库相对应的table 的结构:
CREATE TABLE domain(
Id int(3) UNSIGNED DEFAULT ‘0’ NOT NULL, # 域名ID
Domain char(20) NOT NULL, # 域名
Gotourl char(255) NOT NULL, # 真实的URL
);
建立好了Table,就可以开始编写gotourl.php了,程序分为三个部分:

1、 分析URL:
$url = preg_replace(“/^http:\\/\\//I”, “”, $url); // 将URL前面的“http://”去掉,不区分大小写
$url = preg_replace(“/@.+$/”, “”, $url); // 将“@”后面的部分去除
那么,剩下的URL就只含有“username”的部分了。
为了给数据库应用,需要对铭感的字符进行处理:
$url = addslashes($url);
2、 搜索真实的URL:
这里为了实现程序的通用性,使用了一个数据库的操作类(修改自PHPLib)来操作SQL数据库:
$db = new dbSql(); // 连接数据库
$queryString = sprinf(“SELECT gotourl FROM domain WHERE domain=’%s’;”, $url); // 生成查询字符串
$gotourl = $db->result($queryString); // 查询取得结果
3、 重定向:
在PHP中重定向浏览器有多种方法,在这里使用比较简单的HttpHeader来实现:
header(“location: $gotourl”);




其实像网易那样子的“username.yeah.net”的虚拟域名服务和“@”的实现方法大同小异,但是“.”需要以价值200元的DNS泛解析为代价,而“@”所需要的仅仅是:
1、 PHP/SQL数据库的权限;
2、 真正DNS解析的域名。

如果需要在虚拟域名服务中加入广告,比如网易的Popup窗口,可以将重定向部分改为:
<script>
window.open("url","nease","width=windth,height=height");
</script>

为了对得起“天地良心”,笔者没有将合并后完整的程序加上来(骗稿费?),如果大家比较懒,需要完整的代码(包括了添加等等),可以在http://zphp.com或者http://bbs@zphp.com取得。希望大家都有一个好的访问量。


××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××


用 ASP 有什么办法实现呢???????????????????

回复
zzlcn 2002-05-19
××××××××××××××××××××××××××××××××××

我早就试过了的

使用 ServerVariables 根本无法得到 @ 以前的字符串!!!

请大家告知如何得到 @ 以前的字符串?

××××××××××××××××××××××××××××××××××

我早就试过了的

使用 ServerVariables 根本无法得到 @ 以前的字符串!!!

请大家告知如何得到 @ 以前的字符串?

××××××××××××××××××××××××××××××××××
回复
ChinaOk 2002-05-18

<TABLE BORDER="1">
<TR><TD><B>Server Variable</B></TD><TD><B>Value</B></TD></TR>
<% For Each strKey In Request.ServerVariables %>
<TR>
<TD><%= strKey %></TD>
<TD><%= Request.ServerVariables(strKey) %></TD>
</TR>
<% Next %>
</TABLE>

运行这个。看看那个可以分析得到@前的值。然后就ok了。
回复
netnice 2002-05-18
回复
ChinaOk 2002-05-18

<TABLE BORDER="1">
<TR><TD><B>Server Variable</B></TD><TD><B>Value</B></TD></TR>
<% For Each strKey In Request.ServerVariables %>
<TR>
<TD><%= strKey %></TD>
<TD><%= Request.ServerVariables(strKey) %></TD>
</TR>
<% Next %>
</TABLE>

运行这个。看看那个可以分析得到@前的值。然后就ok了。
回复
ChinaOk 2002-05-18
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html/psdk/asp/vbob5vsj.asp
回复
ChinaOk 2002-05-18
无论@输入什么都可以解析到@后的域名
查查
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2002-05-18 11:29
社区公告
暂无公告