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
%>
cyun怎么样?cyun蓝米数据是一家(香港)藍米數據有限公司旗下品牌,蓝米云、蓝米主机等同属于该公司品牌。CYUN全系列云产品采用KVM架构,SSD磁盘阵列,优化线路,低延迟,高稳定。目前,cyun推出的香港云服务器性价比超高,香港cn2 gia云服务器,1核1G1M/系统盘+20G数据盘,低至29元/月起;香港多ip站群云服务器,16个ip/4核4G仅220元/月起,希望买香港站群服务器的站长...
RFCHOST,这个服务商我们可能有一些朋友知道的。不要看官网是英文就以为是老外服务商,实际上这个服务商公司在上海。我们实际上看到的很多商家,有的是繁体,有的是英文,实际上很多都是我们国人朋友做的,有的甚至还做好几个品牌域名,实际上都是一个公司。对于RFCHOST商家还是第一次分享他们家的信息,公司成立大约2015年左右。目前RFCHOST洛杉矶机房VPS正进行优惠促销,采用CN2优化线路,电信双...
硅云怎么样?硅云是一家专业的云服务商,硅云的主营产品包括域名和服务器,其中香港云服务器、香港云虚拟主机是非常受欢迎的产品。硅云香港可用区接入了中国电信CN2 GIA、中国联通直连、中国移动直连、HGC、NTT、COGENT、PCCW在内的数十家优质的全球顶级运营商,是为数不多的多线香港云服务商之一。目前,硅云香港云服务器,CN2+BGP线路,1核1G香港云主机仅188元/年起,域名无需备案,支持个...