欢迎光临
我们一直在努力

如何用ASP代码实现虚拟主机

建站超值云服务器,限时71元/月

创建虚拟主机大体牵扯到用户、站点、目录、ftp、dns等几项内容,此外,可能还有email。qweb组件对此做了较全面的封装,需要的可以和qaymuic@163.com联系。

以下是创建一个虚拟主机的代码:

config.xml(配置信息)

<root_element>

<admin>administrator</admin>

<adminpass>xxxxxx</adminpass>

<readuser>iusr_machine</readuser>

<domain>cocoo.net</domain>

<dnsadmin>dnsadmin</dnsadmin>

<dnsadminpass>yyyyy</dnsadminpass>

<dnsip>10.1.143.227</dnsip>

<group>tryit</group>

<webdir>http://hanhong.cocoo.net</webdir>

</root_element>

global.asa(配置文件)

<script language=vbscript runat=server>

sub application_onstart

set ff=server.createobject("microsoft.xmldom")

ff.async=false

ff.load server.mappath("config.xml")

set rootelem = ff.documentelement

for e1=0 to rootelem.childnodes.length-1

application(trim(rootelem.childnodes.item(e1).nodename))=trim(rootelem.childnodes.item(e1).text)

next

end sub

</script>

index.asp(申请页面)

<%

user=trim(request("user"))

pass=trim(request("pass"))

email=trim(request("email"))

if user<>"" then

if pass="" or instr(email,"@")<2 then

response.write "<font color=red>填写错误</font>"

else

set gg=server.createobject("qweb.user")

gg.logon application("admin") & "@" & application("domain"),application("adminpass")

set rr=gg.create(user,application("group"))

if gg.iserr then

response.write "<font color=red>不能创建用户:" & gg.errstring & "</font>"

else

gg.value("pwdlastset",rr)=-1

gg.changepassword "", pass,rr

response.write gg.errstring

gg.value("accountdisabled",rr)=true

gg.value("accountexpirationdate",rr)=now()+2

gg.value("description",rr)=session.sessionid

set ff=createobject("qweb.dns")

domainn=right(email,len(email)-instr(email,"@"))

set cc=createobject("qmail.newmail")

cc.sender="aa网络<anyone@anyone.net>"

cc.receiver=email

cc.sendashtml=true

cc.subject="注册确认"

cc.body="<a href=" & application("webdir") & "/active.asp?user=" & user & "&id=" & session.sessionid & "&pass=" & pass & ">谢谢您的注册,请在24小时内(" & (now()+1) & ")激活您的帐户。</a>"

vv=ff.mxrecord(application("dnsip"),domainn)

hh=split(vv," ")

for g=0 to ubound(hh)

cc.smtpsvr=hh(g)

cc.send

if cc.errcode=true then exit for

next

if cc.errcode=false then

gg.delete rr

response.write "<font color=red>无法发送注册信息</font>"

else

response.write "<font color=red>注册成功,请24小时内查看邮件,激活帐户.</font>"

response.end

end if

set cc=nothing

set ff=nothing

end if

set gg=nothing

end if

end if

%>

<h1 align="center">免费空间申请</h1>

<form name="form1" method="post" action="<% =request.servervariables("script_name") %>">

<p>用户名:

<input type="text" name="user">

</p>

<p>密 码:

<input type="password" name="pass">

</p>

<p>电子邮件:

<input type="text" name="email">

</p>

<p>

<input type="submit" name="submit" value="现在申请">

</p>

</form>

<p align="center">&nbsp;</p>

active.asp(确认页面,建立站点、开通ftp、email、配置dns纪录)

<%

user=request("user")

id=request("id")

set uu=server.createobject("qweb.member")

set gg=server.createobject("qweb.user")

set z1=server.createobject("qweb.dir")

set bb=server.createobject("mdusercom.mduser")

set muserinfo =server.createobject("mdusercom.mduserinfo")

set ff=createobject("qweb.dns")

uu.logon application("admin") & "@" & application("domain"),application("adminpass")

gg.logon application("admin") & "@" & application("domain"),application("adminpass")

set rr=gg.user(user,application("group"))

if gg.iserr then

msg1= "获取用户资料时发生错误:" & gg.errstring

else

if gg.value("description",rr)<>id or (gg.value("accountdisabled",rr)=false) then

msg1= "激活失败,请您从邮箱内提示的地址连接,或帐户在此之前已经被激活"

else

mpath=session.sessionid

z1.create server.mappath("free/" & mpath),user,application("readuser")

if z1.iserr then

msg1="在创建用户目录时发生错误:" & z1.errstring

else

z1.create server.mappath("free/" & mpath & "/mail"),user,application("readuser")

if z1.iserr then

msg1="在创建用户邮件目录时发生错误:" & z1.errstring

z1.delete server.mappath("free/" & mpath)

else

set ss=z1.createsite(user & "." & application("domain"),server.mappath("free/" & mpath))

if z1.iserr then

msg1="在创建站点时发生错误:" & z1.errstring

z1.delete server.mappath("free/" & mpath & "/mail")

z1.delete server.mappath("free/" & mpath)

else

z1.createftpdir user,server.mappath("free/" & mpath)

if z1.iserr then

msg1="在创建ftp目录时发生错误:" & z1.errstring

z1.delete server.mappath("free/" & mpath & "/mail")

z1.delete server.mappath("free/" & mpath)

set site1=z1.getsite(user & "." & application("domain"))

z1.deletesite site1

else

ff.logon application("domain"),application("dnsip"),application("dnsadmin"),application("dnsadminpass")

ff.arecord(user & "." & application("domain"))=application("dnsip")

if ff.iserr then

msg1="在写入dns记录时发生错误:" & ff.errstring

z1.delete server.mappath("free/" & mpath & "/mail")

z1.delete server.mappath("free/" & mpath)

set site1=z1.getsite(user & "." & application("domain"))

z1.deletesite site1

z1.deleteftpdir user

else

bb.loaduserdll

bb.inituserinfo muserinfo

muserinfo.fullname=user

muserinfo.mailbox=user

muserinfo.domain=application("domain")

muserinfo.maildir=server.mappath("free/" & mpath & "/mail")

muserinfo.password=request("pass")

muserinfo.maxdiskspace=25000000

muserinfo.applyquotas=true

kk=bb.adduser(muserinfo)

if kk<>"0" then

msg1="在创建用户邮箱时发生错误:" & kk

z1.delete server.mappath("free/" & mpath & "/mail")

z1.delete server.mappath("free/" & mpath)

set site1=z1.getsite(user & "." & application("domain"))

z1.deletesite site1

z1.deleteftpdir user

ff.arecord(user & "." & application("domain"))=""

else

gg.value("accountexpirationdate",rr)=gg.value("accountexpirationdate",rr)+366

gg.value("accountdisabled",rr)=false

gg.value("emailaddress",rr)=user & "@" & application("domain")

gg.value("homedirectory",rr)=server.mappath("free/" & mpath)

if gg.iserr then

msg1="在设置用户属性时发生错误:" & gg.errstring

z1.delete server.mappath("free/" & mpath & "/mail")

z1.delete server.mappath("free/" & mpath)

set site1=z1.getsite(user & "." & application("domain"))

z1.deletesite site1

z1.deleteftpdir user

ff.arecord(user & "." & application("domain"))=""

bb.deleteuser user & "@" & application("domain"),511

bb.freeuserdll

else

bb.freeuserdll

session("isok")="true"

msg1="激活成功,您站点的域名是http://" & user & "." & application("domain") & "<br>"

msg1=msg1 & "ftp地址:ftp://" & user & "." & application("domain") & "<br>"

msg1=msg1 & "用户名: " & user & "<br>"

msg1=msg1 & "邮箱:" & user & "@" & application("domain") & "<br>"

msg1=msg1 & "密码:是您注册时填写的密码。<br><a href=logon.asp>登录</a><br>"

end if

end if

end if

end if

end if

end if

end if

end if

end if

uu.logoff

set gg=nothing

set uu=nothing

set z1=nothing

set bb=nothing

set muserinfo =nothing

set ff=nothing

response.write msg1

%>

logon.asp(域名重指向)

<% user=trim(request("user"))

pass=trim(request("pass"))

ip=trim(request("ip"))

if user<>"" then

set gg=server.createobject("qweb.user")

gg.logon application("admin") & "@" & application("domain"),application("adminpass")

set rr=gg.user(user,application("group"))

if gg.iserr then

response.write "<font color=red>用户不存在!</font>"

else

gg.changepassword pass,"mypass",rr

if gg.iserr then

response.write "<font color=red>密码错误!</font>"

else

gg.changepassword "mypass",pass,rr

set ff=createobject("qweb.dns")

ff.logon application("domain"),application("dnsip"),application("dnsadmin"),application("dnsadminpass")

if ip="" then

ff.arecord(user & "." & application("domain"))=application("dnsip")

else

ff.arecord(user & "." & application("domain"))=ip

end if

if ff.iserr then

response.write "设置失败,请重试!"

else

response.write "更新成功!"

end if

set ff=nothing

end if

end if

set gg=nothing

end if

%>

<h1 align="center">管 理</h1>

<form name="form1" method="post" action="<% =request.servervariables("script_name") %>">

<p>用户名:

<input type="text" name="user">

</p>

<p>密 码:

<input type="password" name="pass">

</p>

<p>把我的域名指向以下ip地址,如果为空则指向您的虚拟目录:</p>

<p>

<input type="text" name="ip">

</p>

<p>

<input type="submit" name="submit" value="更改">

</p>

</form>

<p align="center">&nbsp;</p>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 如何用ASP代码实现虚拟主机
分享到: 更多 (0)