asp与serv-u结合制作网站空间注册系统
明光市职业高级中学曹克柱
论文摘要
本文为作者根据教学实际需求通过分析FTP服务端软件serv-u 5.x/6.x的工作原理结合asp动态网页技术制作的一个FTP自助注册系统 同时结合WEB服务器使之成为一个网站空间注册系统并形成软件且稳定运行较长时间。
关键字 ASP、 FTP SERV-U WEB服务器、 网站空间注册申请。
一、需求分析
作者是一名微机房管理人员同时又是网页制作课程授课教师。在讲授网站制作课程时遇到如下问题
学生制作网页站点建立位置一般有两种一是建立在自己的机器上二是建立在远程WEB服务器。
第一种情况需要在每一台机器上安装IIS第二种情况需要在远程WEB 服务器上为每个学生建立一个F TP帐户同时分配一个域名或IP地址 。两种情况均可各有所长也有各自的缺点。
作者所在学校微机房的现状是三个分区均保护重新开机后数据全部还原学生制作的网页无法保存即使打开一个分区也存在安全隐患一台机器不同班级学生轮流上机容易出现误删除现象另外如果考虑用U盘保存网页代价
较大而且对家庭困难学生来说增加其负担同时考虑到这样的话每个同学的网站相互独立不利于相互之间的学习与交流。所以选用第二种情况。
这种情况如果为每个学生建立一个FTP帐户工作量是巨大的作者今年就带了两个班共120人的网页设计课 而且对于学生维护自己的FTP帐户也是不方便的。为了解决这个问题作者做了大量的工作。
二、技术分析
作者通过对serv-u5.x/6.x软件运行机制的分析发现通过软件可以实现FTP
用户的添加。
图1
图1为serv-u6.3的配置文件清单其中“GLO BAL”项中的
“RELOADS ETTIN GS”值为“TRUE”时 serv-u将重新读取配置文件按照里面的内容重新设置各选项。“DOMAIN 1”项为用户列表“USER=MGZGCKZ|1”等项为每个用户的参数。其中
P as sword密码项该项通过简单加密后 以MD5加密该密码值不可逆
Ho me d ir用户目录位置项
Access1权限
D iskquo ta空间大小限制
S p e e d limitup上传速率限制
S p e e d limitdo w n下载速率限制
其他选项暂与教学无关未深入研究。
关于INI文件的读写作者在网上找了一小段程序RWIniF ile.a sp(程序清单见附录1)对其进行一些改进比如错误处理大小写识别等。该程序满足本系统读写INI文件。
另外用户的生成程序编制起来较麻烦作者偷了个懒从网上下载了一个控件可惜功能太简单所以才有上面的RWIniF ile.asp补充其功能。这样整个系统实现起来就很简单了。
三、实现过程
图2
图2为网站空间申请程序界面学生使用 学生只需填写相应内容即可将请求提交到一数据库文件中。等待管理员审核。 代码很简单略
接下来为教师控制的审核程序负责根据学生提交的用户名与密码为其建立用户。 以下程序实现该功能
<!--#include File="RWIniFile.asp"-->
<%servuinifile="D:Program
FilesRhinoSoft.comServ-UServUDaemon. ini"%>
<%set obj = Server.CreateObject("WhClass.AdminServU") '调用组件
obj. info servuinifile, 1, 1 '组件调用信息. info "INI文件路径","Domain域,选1", "是否MD5加密, 1可选"
'读取用户名密码空间大小sql="select username,password from ftpreg where id="&shid set rs=server.createobject("adodb.recordset")rs.open sql,db, 1, 1username=rs.fields("username")password=rs.fields("password")if obj.chkuser(username)=false then
'设置权限obj.adduser username,password, "d:mgzgweb"&username, "WAMCD"if obj.chkuser(username)=true then
'设置上传速率最大为400KB/秒call writeIni (servuinifile, "user="&username&"| 1", "speedlimitup", "409600")
'设置下载速率最大为400KB/秒call writeIni (servuinifile, "user="&username&"| 1", "speedlimitdown", "409600")
'设置空间最大值为50MB call writeIni (servuinifile, "user="&username&"| 1", "diskquota", "1 |52428800|0")
'设置更新标志为有效call writeIni (servuinifile, "global", "reloadsettings", "true")
response.write "<script>alert('空间申请成功 ' )</script>"
'标记“已审核”sql="update ftpreg set action=' 1' where id="&shid db. execute(sql) '注意此处是"excute()"函数而不是下面的"open"方法else response.write "<script>alert('空间申请失败 ' )</script>"end if else
'标记“已审核”sql="update ftpreg set action=' 1' where id="&shid db. execute(sql) '注意此处是"excute()"函数而不是下面的"open"方法response.write "<script>alert('用户已存在 ' )</script>"end if
'关闭控制set obj=nothing
'关闭表rs.close set rs=nothing
%>
以上仅为程序片断具体程序见附录2。
四、程序相关
以上为本系统核心功能另有审核程序的验证登录程序见附录3admin_login.asp 、学生密码更改程序见附录4 webchgpass.asp 、学生密码忘记时 由教师更改密码由于密码经过MD5加密无法找回只能重新设定程序见附录5:webchgpass_admin.asp 。
五、教学效果
本程序经过一年多的使用虽有小错但经改正后效果很好本文的代码均为改正后代码 解决了作者及同事在教学中的一个难题。
六、作者感言
本程序为作者教学之余之作 由于时间及本人水平有限难免有不足之处希望同行能够给序技术指导或改进意见不胜感谢。
如需完整源程序请与我联系
地址安徽省明光市职业高级中学曹克柱
QQ 66447851
邮箱 mgzgckz@163.com
2008年12月
附录1 RWIniF ile.asp程序清单
<%
'=========================================================
sesstio n_te mp=Rep lace(_Trim(se sstio n_temp),"[","")sesstio n_te mp=Rep lace(Trim(se sstio n_temp),"]","")
End If
MyArr a y=S p lit(Tr im(S tr_te mp), "=")
If lcase(Trim(MyArray(0)))=lcase(MyItem)and lcase(sesstion_temp)=lcase(MySession) then
ReadI ni=Tr im(M yArray(1))findmysession=true
'Exit Function
End if
End if
Wend
Myte xt file.C lo se
'ReadIni=""
Set MyfileObject=Nothing
Set MytextFile=Nothing
End Function
项名Functio n Write Ini(F ileP ath_Name,M yS e ss io n,MyIte m,MyVa lue)
Dim MyString,MyArray,str_temp,F indBool,F indBool_Se ssion
FindBool=False
FindBool_Session=False
Set MyfileObject=Server.CreateObject("Scripting.FileSystemObject")
Set MytextFile=MyfileObject.OpenTextFile((FilePath_Name))sesstio n_te mp=""
End if
Wend
FindBool_S_ession=True
While N_ot MytextF ile.AtendO fS tream
Str_temp=MytextF ile.ReadLine
I f Trim(Str_temp)<>""Then
I f InStr(Trim(S tr_t e mp),"[")<I nS tr(Trim(Str_te mp),"]")The n se s stio n_te mp=Trim(Str_te mp)sesstio n_te mp=Rep lace(Trim(se sstio n_temp),"[","")sesstio n_te mp=Rep lace(Trim(se sstio n_temp),"]","")
MyS tring=MyString&VbCrLf
End If
MyArr a y=S p lit(Tr im(S tr_te mp), "=")
If lcase(Trim(MyArray(0)))=lcase(MyItem)and lcase(sesstion_temp)=lcase(MySession) then
MyArr ay(1)=M yVa lue
S tr_te mp=M yArra y(0)&"="&M yArr a y(1)
End if
IfMyString=VbCrLf then
MyS tr ing=M yS tr ing&S tr_te mp
Else
MyS tring=MyString&VbCrLf&S tr_temp
End If
IfNot FindBool and lcase(sesstion_temp)=lcase(MySession) Then FindBool=True
MyS tr ing=M yS tr ing&Vb C r L f&M yIte m&"="&M yVa lue End If
End if
Wend
%>
mineserver怎么样?mineserver是一家国人商家,主要提供香港CN2 KVM VPS、香港CMI KVM VPS、日本CN2 KVM VPS、洛杉矶cn2 gia端口转发等服务,云服务器网(yuntue.com)介绍过几次,最近比较活跃。现在新推出了3款特价KVM VPS,性价比高,香港CMI/洛杉矶GIA VPS,2核/2GB内存/20GB NVME/3.5TB流量/200Mbps...
香港服务器租用多少钱一个月?香港服务器受到很多朋友的青睐,其中免备案成为其特色之一。很多用户想了解香港云服务器价格多少钱,也有同行询问香港服务器的租赁价格,一些实际用户想要了解香港服务器的市场。虽然价格是关注的焦点,但价格并不是香港服务器的全部选择。今天小编介绍了一些影响香港服务器租赁价格的因素,以及在香港租一个月的服务器要花多少钱。影响香港服务器租赁价格的因素:1.香港机房选择香港机房相当于选择...
CloudCone在月初发了个邮件,表示上新了一个系列VPS主机,采用SSD缓存磁盘,支持下单购买额外的CPU、内存和硬盘资源,最低年付17.99美元起。CloudCone成立于2017年,提供VPS和独立服务器租用,深耕洛杉矶MC机房,最初提供按小时计费随时退回,给自己弄回一大堆中国不能访问的IP,现在已经取消了随时删除了,不过他的VPS主机价格不贵,支持购买额外IP,还支持购买高防IP。下面列...