ASP与JS结合实现二级域名转向的调试分析

作者:小括号

时间:2026-10-21

浏览:167

本文分析一段结合ASP后端与前端JavaScript实现的二级域名转向代码。代码通过ADODB读取数据库UserInfo表,利用JS解析URL子域名并匹配数据库记录。文中指出原代码存在逻辑分支混乱、变量未定义及转向实现方式(Frameset)过时等问题,导致程序虽调试通过却无法正确执行转向,提供了详细的代码逻辑梳理与修正方向。

文章目录

作者已成功运行基于ASP的二级域名转向系统,但在尝试引入前台JavaScript配合ASP的转向方案时遇到了问题。尽管程序经过调试未发现语法错误,但实际并未执行预期的域名跳转,作者希望查明具体原因。


<%

ASP后端数据库连接与数据读取

Dim whkDbq,whkSql,whkRs,whkCount


Set whkConn = Server.CreateObject("ADODB.Connection")


whkDbq = Server.MapPath("SqlTaoFun.mdb")


whkConn.Open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&whkDbq


whkSql = "select bh,id from UserInfo where State='3'"


Set whkRS = Server.CreateObject("ADODB.Recordset")


whkRs.open whkSql,whkConn,3,3


%>

前端JavaScript域名解析与匹配逻辑

<script language="javascript">


var records = [],whkCoun = 0,whkFlag = 0;


<%

Do while not whkRs.Eof


%>

records[whkCoun] = new Array("<%=whkRs("bh")%>","<%=whkRs("id")%>");


document.write("whkCoun:"+whkCoun+" records["+whkCoun+"]:"+records[whkCoun][0]+records[whkCoun][1]+"<br>");


whkCoun = whkCoun + 1;


<%

whkRs.MoveNext


'whkConn = whkConn + 1


Loop


'Response.End()


%>

whkUrl = document.location.href;


document.write(whkUrl)


whkUrl = whkUrl.replace("http://","");


whkUrl = whkUrl.substring(0,whkUrl.indexOf("/"));


document.write("<br>whkUrl:"+whkUrl);


if (whkUrl.toLowerCase() != "www.taofun.cn")


       {

var whkFirstP = whkUrl.indexOf("."),whkEndP = whkUrl.lastIndexOf("."),gotoUrl;


if ((whkFirstP == whkEndP) && ((whkFirstP != -1) || (whkEndP != -1)))


              {

whkFlag = 0;


window.alert("taofun.cn");


//window.location.href = "http://www.taofun.cn/"


              }

else


              {

if (whkUrl == "localhost")


                     {

whkFlag = 0;


window.alert("localhost");


                     }

else


                     {

var whkUrl2 = whkUrl.substring(0,whkUrl.indexOf("."));


document.write("<br>whkUrl2:"+whkUrl2);


if (whkUrl2.toLowerCase() == "www")


                            {

if (whkUrl.indexOf(".",whkFirstP+1) == whkUrl.lastIndexOf(".",whkEndP-1))


for(i=0;i<whkCoun;i++)


                                   {

document.write("<br>这里是读取的bh:"+records[i][0]);


if (records[i][0] == whkUrl.substring(whkFirstP+1,whkUrl.indexOf(".",whkFirstP+1)))


                                                 {

whkFlag = 1;


gotoUrl = "http://www.taofun.cn/show/Shop.asp?id="+records[i][1];


window.alert("找到"+records[i][0]+"的二级域名。");


break;


                                                 }
                                   }

else


                                   {

whkFlag = 0;


window.alert("输的太多了!");


//window.location.href = "http://www.taofun.cn/";


                                   }
                            }

else


                            {

whkFlag = 0;


window.alert("开头请输www");


//window.location.href="http://www.taofun.cn/";


                            }
                     }
              }
       }

else


       {

whkFlag = 0;


window.alert("去网站首页!");


//window.location.href = whkUrl;


       }

document.write("<br>最后结果:"+gotoUrl+whkwhkwhk);


if (whkFlag == 1)


{

document.write("<frameset cols=\"*\"><frame frameborder=\"0\" scrolling=\"auto\" src=\""+gotoUrl+"\"><\/frameset>" );


}

</script>


实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章