欢迎光临
我们一直在努力

利用ASP的文件操作实现用户管理

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

简单、好用、开发效率高等等是asp的优点,但是其系统操作方面如文件操作

等则 是比较微弱的。要想实现这方面的功能,只有采取调用组件的办法。

filesystemobject对象就是一个例子。asp安装后,该对象就在系统中注册了。

不过其功能也非常一般,只能操作文本类型的文件。不过也可以满足我们的一些

需要了。前几天我的一个同事的一个朋友在网上申请了一个支持asp的空间,想

实现诸如用户注册、信息修改、用户注销等功能,又不想用数据库来实现,因为

要进行一大堆的设置。其实利用filesystemobject操作文本文件就可以实现。

实现的思路是:为每项信息建立一个文本文件,如姓名、性别、年龄等。所

有用户的同一个信息项都保存在相对应的文件中。如每个用户的姓名信息都保存

在姓名文件中。并且每个用户的信息都以特殊的标志开始和结束,读取信息时就

根据这些标志进行定位。例如开始标志用“`用户名`” ,结束标志用“`e`”。

只要不是常用的字符串,就可以作为定位的标志。另外,还有两个文件是必不可

少的:那就是用户名、密码文件。判断用户是否存在、用户登陆等就是利用这两

个文件实现的。下面介绍的就是本人的具体实现代码。

在程序编写前我先搞了搞了一个公共的函数单元fun.inc,这里面是一些比较

通用的函数,供其它的asp文件包含并调用。

首先是些用户信息的函数,包括用户名、文件名、用户信息三个参数,都是

字符串类型,其中用户信息还可以是多行。代码如下:

sub writeuser(username,filename,userinfo)

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename) = false then

fs.createtextfile (filename)

end if

以添加方式打开文件

set f = fs.opentextfile(filename, 8)

用户信息开始标志

f.writeline ("`" & username & "`")

f.writeline (userinfo)

用户信息结束标志

f.writeline ("`e`")

f.close

set f = nothing

set fs = nothing

end sub

读用户信息的函数只需要两个参数:用户名和文件名,用户的信息作为函数

的返回值,实现的思路就是寻找开始、结束标志,并把它们之间的信息返回。代

码如下:

function readuser(username,filename)

dim i

dim s

dim ret

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename)=false then

set fs=nothing

readuser=""

exit function

end if

以只读方式打开文件

set f = fs.opentextfile(filename, 1)

do while f.atendofstream <> true

s = f.readline

if s = "`" & username & "`" then

s = f.readline

ret=""

do while s <> "`e`"

if ret="" then

ret = ret + s

else

ret = ret + chr(13) & chr(10)+s

end if

s = f.readline

loop

exit do

end if

loop

f.close

set f = nothing

set fs = nothing

readuser = ret

end function

下面是删除用户信息的函数,同样包括用户名和文件名两个参数。程序逐行

读取对应文件,如果其它用户的信息,则保存在一个字符串变量中,否则不进行

保存,然后用变量的内容重写该文件。代码如下:

sub deleteuser(username,filename)

dim i

dim s

dim tmp

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename)=false then

set fs=nothing

exit sub

end if

set f = fs.opentextfile(filename, 1)

tmp=""

do while f.atendofstream <> true

s = f.readline

if s <> "`" & username & "`" then

if tmp="" then

tmp = tmp + s

else

tmp = tmp + chr(13) & chr(10)+ s

end if

else

do while s <> "`e`"

s = f.readline

loop

end if

loop

f.close

set f = fs.createtextfile(filename, true)

f.writeline tmp

f.close

set f = nothing

set fs = nothing

end sub

修改用户信息函数和写用户信息函数一样,带有用户名、文件名、用户信息

三个参数,只不过该函数的用户信息是更新后的信息。程序的实现和删除用户的

过程差不多,删除用户不保存要删除用户的信息到变量,修改用户则把更新后信

息保存到变量中代替原来的信息。代码如下:

sub modifyuser(username,filename,newuserinfo)

dim i

dim s

dim tmp

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename)=false then

set fs=nothing

exit sub

end if

set f = fs.opentextfile(filename, 1)

tmp=""

do while f.atendofstream <> true

s = f.readline

if s <> "`" & username & "`" then

if tmp="" then

tmp = tmp + s

else

tmp = tmp + chr(13) & chr(10)+ s

end if

else

do while s <> "`e`"

s = f.readline

loop

if tmp="" then

tmp = tmp + "`" & username & "`"

else

tmp = tmp + chr(13) & chr(10)+ "`" & username & "`"

end if

tmp = tmp + chr(13) & chr(10)+ newuserinfo

tmp = tmp + chr(13) & chr(10) + "`e`"

end if

loop

f.close

set f = fs.createtextfile(filename, true)

f.writeline tmp

f.close

set f = nothing

set fs = nothing

end sub

还有一个函数是用来判断用户是否存在,通过在保存用户名的文件中进行定

位来实现,代码如下:

function userexist(username,filename)

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename)=false then

set fs=nothing

userexist=false

exit function

end if

set f = fs.opentextfile(filename, 1)

do while f.atendofstream <> true

s = f.readline

if s = "`" & username & "`" then

userexist = true

exit function

end if

loop

f.close

set f = nothing

set fs = nothing

userexist = false

end function

下面就是一些文件的完整代码,演示如何通过调用上面的函数来实现基

本的用户管理:用户注册、用户登陆、用户修改、用户删除。仅供参考。程

序在win2000 professional+iis调试通过。注意,文本文件都保存在当前目

录的子目录“txt”下,如果没有此目录,请手工建立,程序实现略。

*********************fun.inc***************************************

<%

dim usernmfile,userpwdfile,nmfile,genderfile,mmfile

usernmfile="txt/username.txt"

userpwdfile="txt/password.txt"

nmfile="txt/name.txt"

genderfile="txt/gender.txt"

mmfile="txt/memo.txt"

usernmfile=server.mappath(usernmfile)

userpwdfile=server.mappath(userpwdfile)

nmfile=server.mappath(nmfile)

genderfile=server.mappath(genderfile)

mmfile=server.mappath(mmfile)

////////////////////////////////////////////////////////

写用户信息到文件

sub writeuser(username,filename,userinfo)

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename) = false then

fs.createtextfile (filename)

end if

以添加方式打开文件

set f = fs.opentextfile(filename, 8)

用户信息开始标志

f.writeline ("`" & username & "`")

f.writeline (userinfo)

用户信息结束标志

f.writeline ("`e`")

f.close

set f = nothing

set fs = nothing

end sub

读取用户信息

function readuser(username,filename)

dim i

dim s

dim ret

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename)=false then

set fs=nothing

readuser=""

exit function

end if

以只读方式打开文件

set f = fs.opentextfile(filename, 1)

do while f.atendofstream <> true

s = f.readline

if s = "`" & username & "`" then

s = f.readline

ret=""

do while s <> "`e`"

if ret="" then

ret = ret + s

else

ret = ret + chr(13) & chr(10)+s

end if

s = f.readline

loop

exit do

end if

loop

f.close

set f = nothing

set fs = nothing

readuser = ret

end function

删除用户信息

sub deleteuser(username,filename)

dim i

dim s

dim tmp

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename)=false then

set fs=nothing

exit sub

end if

set f = fs.opentextfile(filename, 1)

tmp=""

do while f.atendofstream <> true

s = f.readline

if s <> "`" & username & "`" then

if tmp="" then

tmp = tmp + s

else

tmp = tmp + chr(13) & chr(10)+ s

end if

else

do while s <> "`e`"

s = f.readline

loop

end if

loop

f.close

set f = fs.createtextfile(filename, true)

f.writeline tmp

f.close

set f = nothing

set fs = nothing

end sub

修改用户信息

sub modifyuser(username,filename,newuserinfo)

dim i

dim s

dim tmp

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename)=false then

set fs=nothing

exit sub

end if

set f = fs.opentextfile(filename, 1)

tmp=""

do while f.atendofstream <> true

s = f.readline

if s <> "`" & username & "`" then

if tmp="" then

tmp = tmp + s

else

tmp = tmp + chr(13) & chr(10)+ s

end if

else

do while s <> "`e`"

s = f.readline

loop

if tmp="" then

tmp = tmp + "`" & username & "`"

else

tmp = tmp + chr(13) & chr(10)+ "`" & username & "`"

end if

tmp = tmp + chr(13) & chr(10)+ newuserinfo

tmp = tmp + chr(13) & chr(10) + "`e`"

end if

loop

f.close

set f = fs.createtextfile(filename, true)

f.writeline tmp

f.close

set f = nothing

set fs = nothing

end sub

判断用户是否已存在

function userexist(username,filename)

dim fs, f

set fs = createobject("scripting.filesystemobject")

if fs.fileexists(filename)=false then

set fs=nothing

userexist=false

exit function

end if

set f = fs.opentextfile(filename, 1)

do while f.atendofstream <> true

s = f.readline

if s = "`" & username & "`" then

userexist = true

exit function

end if

loop

f.close

set f = nothing

set fs = nothing

userexist = false

end function

%>

********************index.htm*************************************

<html>

<body>

<a href="register.htm">用户注册 </a><br>

<a href="login.htm">用户登陆 </a><br>

<a href="modify.htm">用户修改 </a><br>

<a href="delete.htm">用户删除 </a><br>

</body>

</html>

****************register.htm***************************************

<html>

<body>

用户注册

<form name="form1" method="post" action="regsubmit.asp">

<table border="0">

<tr>

<td width="28%">用户名</td>

<td width="72%">

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

</td>

</tr>

<tr>

<td width="28%">密码</td>

<td width="72%">

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

</td>

</tr>

<tr>

<td width="28%">姓名</td>

<td width="72%">

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

</td>

</tr>

<tr>

<td width="28%">性别</td>

<td width="72%">

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

</td>

</tr>

<tr>

<td width="28%">简历</td>

<td width="72%">

<textarea name="edtmm"></textarea>

</td>

</tr>

<tr>

<td width="28%"> </td>

<td width="72%">

<input type="submit" name="submit" value="提交">

</td>

</tr>

</table>

<p> </p>

</form>

</body>

</html>

***************************regsubmit.asp**************************

<!–#include file="fun.inc"–>

<%

dim usernm,userpwd,nm,gender,memo

usernm=request("edtusernm")

userpwd=request("edtuserpwd")

nm=request("edtnm")

gender=request("edtgender")

mm=request("edtmm")

if trim(usernm)="" then

response.write "用户名不能为空"

response.end

end if

判断用户是否已存在

if userexist(usernm,usernmfile) then

response.write "用户已存在"

response.end

end if

写用户信息到各个文件

writeuser usernm,usernmfile,usernm

writeuser usernm,userpwdfile,userpwd

writeuser usernm,nmfile,nm

writeuser usernm,genderfile,gender

writeuser usernm,mmfile,mm

response.write "注册成功,以下为注册信息" & "<br><br>"

response.write "用户名:" & usernm & "<br>"

response.write "密码:" & userpwd & "<br>"

response.write "姓名:" & nm & "<br>"

response.write "性别:" & gender & "<br>"

response.write "简历:" & mm

%>

<html>

<body>

</body>

</html>

****************************login.htm************************

<html>

<body>

用户登陆

<form name="form1" method="post" action="loginsubmit.asp">

<table border="0">

<tr>

<td width="28%">用户名</td>

<td width="72%">

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

</td>

</tr>

<tr>

<td width="28%">密码</td>

<td width="72%">

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

</td>

</tr>

<tr>

<td width="28%"> </td>

<td width="72%">

<input type="submit" name="submit" value="登陆">

</td>

</tr>

</table>

</form>

</body>

</html>

****************************loginsubmit.asp**********************

<!–#include file="fun.inc"–>

<%

dim usernm,userpwd

usernm=request("edtusernm")

userpwd=request("edtuserpwd")

判断用户是否已存在

if userexist(usernm,usernmfile)=false then

response.write "用户名不存在"

response.end

end if

dim savepwd

savepwd=readuser(usernm,userpwdfile)

if savepwd<>userpwd then

response.write "密码错误"

response.end

end if

response.write "登陆成功"

%>

<html>

<body>

</body>

</html>

***************************modify.htm*****************************

<html>

<body>

用户修改

<form name="form1" method="post" action="modifylist.asp">

<table border="0">

<tr>

<td width="28%">用户名</td>

<td width="72%">

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

</td>

</tr>

<tr>

<td width="28%"> </td>

<td width="72%">

<input type="submit" name="submit" value="调出信息">

</td>

</tr>

</table>

</form>

</body>

</html>

**************************modifylist.asp****************************

<!–#include file="fun.inc"–>

<%

dim usernm

usernm=request("edtusernm")

判断用户是否已存在

if userexist(usernm,usernmfile)=false then

response.write "用户名不存在"

response.end

end if

dim userpwd,nm,gender,mm

userpwd=readuser(usernm,userpwdfile)

nm=readuser(usernm,nmfile)

gender=readuser(usernm,genderfile)

mm=readuser(usernm,mmfile)

%>

<html>

<body>

用户信息修改

<form name="form1" method="post" action="modifysubmit.asp">

<table border="0">

<tr>

<td width="28%">用户名</td>

<td width="72%">

<b><font color="#0000ff"><%response.write usernm %></font></b>

<input type="hidden" name="edtusernm" value=<%=usernm %>>

</td>

</tr>

<tr>

<td width="28%">密码</td>

<td width="72%">

<input type="text" name="edtuserpwd" value=<%=userpwd %>>

</td>

</tr>

<tr>

<td width="28%">姓名</td>

<td width="72%">

<input type="text" name="edtnm" value=<%=nm %>>

</td>

</tr>

<tr>

<td width="28%">性别</td>

<td width="72%">

<input type="text" name="edtgender" value=<%=gender %>>

</td>

</tr>

<tr>

<td width="28%">简历</td>

<td width="72%">

<textarea name="edtmm"><%=mm %></textarea>

</td>

</tr>

<tr>

<td width="28%"> </td>

<td width="72%">

<input type="submit" name="submit" value="保存修改">

</td>

</tr>

</table>

<p> </p>

</form>

</body>

</html>

********************************modifysubmit.asp*******************

<!–#include file="fun.inc"–>

<%

dim usernm,userpwd,nm,gender,mm

usernm=request("edtusernm")

userpwd=request("edtuserpwd")

nm=request("edtnm")

gender=request("edtgender")

mm=request("edtmm")

if trim(usernm)="" then

response.write "用户名不能为空"

response.end

end if

更新用户信息到各个文件

modifyuser usernm,usernmfile,usernm

modifyuser usernm,userpwdfile,userpwd

modifyuser usernm,nmfile,nm

modifyuser usernm,genderfile,gender

modifyuser usernm,mmfile,mm

response.write "保存成功,以下为更新后的信息" & "<br><br>"

response.write "用户名:" & usernm & "<br>"

response.write "密码:" & userpwd & "<br>"

response.write "姓名:" & nm & "<br>"

response.write "性别:" & gender & "<br>"

response.write "简历:" & mm

%>

<html>

<body>

</body>

</html>

*************************delete.htm******************************

<html>

<body>

用户删除

<form name="form1" method="post" action="deletesubmit.asp">

<table border="0">

<tr>

<td width="28%">用户名</td>

<td width="72%">

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

</td>

</tr>

<tr>

<td width="28%"> </td>

<td width="72%">

<input type="submit" name="submit" value="删除">

</td>

</tr>

</table>

</form>

</body>

</html>

*******************************deletesubmit.asp********************

<!–#include file="fun.inc"–>

<%

dim usernm

usernm=request("edtusernm")

判断用户是否已存在

if userexist(usernm,usernmfile)=false then

response.write "用户名不存在"

response.end

end if

deleteuser usernm,usernmfile

deleteuser usernm,userpwdfile

deleteuser usernm,nmfile

deleteuser usernm,genderfile

deleteuser usernm,mmfile

response.write "删除成功"

%>

<html>

<body>

</body>

</html>

************************************the end*********************************

更多更好文章尽在“天铭心草堂http”-http://vip.6to23.com/tianmingxin

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

相关推荐

  • 暂无文章