ASP编程基本语法
ASP编程基本语句(一)
Access + asp编制网站是属于动态网站,是通过把要编制的内容写入数据库里,在通过读取数据库的内容显示出来,学习目的:学会数据库的基本操作。数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。如下图
数据库名称:data.mdb
数据表名称:lmnr
字段: id (主键) bt (文本) name (文本) content (备注)
一,掌握ACCESS数据库的连接
<%
set conn=server.createobject("adodb.connection") 'adodb数据库连接组件
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("data.mdb")
%>
大家只要修改后面的data.mdb数据库名字和路径就可以了,例如数据库放在一个data文件夹里,那么就把 data.mdb 改成 data/data.mdb 如果你页面是放在文件夹里,那么就把data.mdb 改成 ../ data/data.mdb
可以把上述代码放在 conn.asp 里 使用时用服务器端包括连接就可以了
二,记录集查询
1, 用于 筛选无,排序 id 降序,限制重复10条信息记录集查询
<%
Set rs= Server.CreateObject ("ADODB.Recordset")
sql = "Select top 10 * from lmnr ORDER BY id DESC "
rs.Open sql,conn,1,1
%>
其中: rs 是记录集名称,在一个页面有多个记录集查询,记录集名称不要一样
top 10 是限制重复显示10条信息,取消 top 10 就是不限制
lmnr 是数据表名称
DESC 是排列降序,升序 把 DESC 改为 ASC
2, 用于 筛选id,排序 无的记录集查询
<%
exec="select * from lmnr where id="&request.querystring("id")
set rs =server.createobject("adodb.recordset")
rs.open exec,conn
%>
其中: rs 是记录集名称,在一个页面有多个记录集查询,记录集名称不要一样
lmnr 是数据表名称
3, 用于显示用户级别,用户名称的记录集查询(筛选 name 阶段变量Username)
<%
Dim ColParam
ColParam = "未登录"
If (Session("Username") <> "") Then
ColParam = Session("Username")
End If
set rs =server.CreateObject("adodb.recordset")
sql="select * from lmnr WHERE name = '" + Replace(ColParam, "'", "''") + "'"
rs.open sql,conn,1,1
%>
其中: rs 是记录集名称,在一个页面有多个记录集查询,记录集名称不要一样
lmnr 是数据表名称
4, 用于 筛选id_id,排序 id 降序,的记录集查询
<%
Dim ColParam
ColParam = "1"
If (Request.QueryString("id_id") <> "") Then
ColParam = Request.QueryString("id_id")
End If
Set rs = Server.CreateObject("ADODB.Recordset")
sql= "SELECT * FROM lmnr WHERE id_id = " + Replace(ColParam, "'", "''") + " ORDER BY id DESC"
rs.open sql,conn,1,3
%>
其中: rs 是记录集名称,在一个页面有多个记录集查询,记录集名称不要一样
lmnr 是数据表名称
三,写入记录 。
写入记录由2个文件组成,,htj.ap 和 htjzx.asp。
htj.ap 是通过表单,把你要写入数据库里内容,传递给htjzx.asp 做法如下:
<form name="form1" method="post" action="htjzx.asp">
name:<input name="name" type="text" id="name">
bt:<input name="bt" type="text" id="bt">
content:<textarea name="content" id="content"></textarea>
<input type="submit" name="Submit" value="提交">
<input name="insert" type="hidden" id="insert" value="form1">
</form>
htjzx.asp 是接受htj.ap 表单传递过来的内容,添加到数据库里。做法如下:
<!--#include file="conn.asp" -->
<%
If (CStr(Request("insert")) = "form1") Then
name=request.form("name")
bt=request.form("bt")
content=request.form("content")
exec="insert into lmnr(name,bt,content)values('"+name+"','"+bt+"','"+content+"')"
conn.execute exec
conn.close
set conn=nothing
End If
response.write("<script>alert('添加成功!');location.href='qfz.asp'</script>")
%>
四,读取记录(读取10条记录,用于首页分装目录)
连接数据库
<!--#include file="conn.asp" -->
建立查询记录
<%
Set rs= Server.CreateObject ("ADODB.Recordset")
sql = "Select top 10 * from lmnr ORDER BY id DESC "
rs.Open sql,conn,1,1
%>
插入1行3列表格
在每列里依次写入调取数据表字段 name:<%= rs("name") %> bt:<%= rs("bt") %> content:<%= rs("content") %>
在行标签 <tr> 前 写入重复开始语句
<% '重复开始
if rs.EOF and rs.BOF then
response.write ("暂时还没有文章")
else
Do Until rs.EOF %>
在行标签 </tr> 后写入重复结束语句
<% '重复结束
rs.MoveNext
Loop
end if
%>
在代码最下面写入关闭连接语句
<% conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源
%>
完成后如下面
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="conn.asp" -->
<%
Set rs= Server.CreateObject ("ADODB.Recordset")
sql = "Select top 10 * from lmnr ORDER BY id DESC "
rs.Open sql,conn,1,1
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<table width="100%" border="1">
<% '重复开始
if rs.EOF and rs.BOF then
response.write ("暂时还没有文章")
else
Do Until rs.EOF %>
<tr>
<td>name:<%= rs("name") %></td>
<td>bt:<%= rs("bt") %></td>
<td>content:<%= rs("content") %></td>
</tr><% '重复结束
rs.MoveNext
Loop
end if
%>
</table>
</body>
</html>
<% conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源
%>
ASP编程基本语句(二)
一,后台管理
后台管理实质是一个读取全部记录的目录页,主要是为了有针对性的修改删除记录,一个内容表里可能有很多条记录,要显示在一个页面中,这个页面就很长,不利于浏览,因此要限制一个页面显示几条,利用翻页来实现查看全部。
建立一个 hbj.asp 文件
连接数据库
<!--#include file="conn.asp" -->
建立查询记录
<%
set rs = server.CreateObject("adodb.recordset")
sql="select * from lmnr order by id desc"
rs.CursorLocation = 3
rs.Open sql,conn,0,2,1 ' //(Yoko:'这里执行你查询SQL并获得结果记录集
%>
写入翻页脚本语句
<%
rs.PageSize = 1 '//(Yoko:这里设定每页显示的记录数
pre = true
last = true
page = trim(Request.QueryString("page"))
if len(page) = 0 then
intpage = 1
pre = false
else
if cint(page) =< 1 then
intpage = 1
pre = false
else
if cint(page) >= rs.PageCount then
intpage = rs.PageCount
last = false
else
intpage = cint(page)
end if
end if
end if
if not rs.eof then
rs.AbsolutePage = intpage
end if
%>
插入1行6列宽100%的表格,在1 2 3列里写入调取数据表字段 name:<%= rs("name") %> bt:<%= rs("bt") %> content:<%= rs("content") %>,在4列里写入连接添加语句<a href="htj.asp">添加</a>,在5列写入连接修改语句
<a href="hxg.asp?id=<%= rs("id") %>">修改</a>,在6列写入连接删除语句<a href="hsc.asp?id=<%= rs("id") %>">删除</a>
在行标签 <tr> 前 写入重复开始语句
<!--循环开始-->
<%
for i=1 to rs.PageSize
if rs.EOF or rs.BOF then exit for
%>
在行标签 </tr> 后写入重复结束语句
<!--循环体结束-->
<%
rs.movenext
next
%>
在</table> 下面写入翻页语句
<!--分页部分:-->
<table width="99%" border="1" >
<tr>
<%if rs.pagecount > 0 then%>
<td width="13%" align="left">当前是<%=intpage%>页 / 共有<%=rs.PageCount%>页</td>
<%else%>
<td width="41%" align="left">当前页0/0</td><%end if%>
<td width="46%" align="right"> <a href="hbj.asp?page=1">首页</a>|
<%if pre=true then%>
<a href="hbj.asp?page=<%=intpage -1%>">上页</a>| <%end if%>
<%if last then%>
<a href="hbj.asp?page=<%=intpage +1%>">下页</a> |<%end if%>
<a href="hbj.asp?page=<%=rs.PageCount%>">尾页</a>|转到第
<select name="sel_page" onchange="javascript:location=this.options[this.selectedIndex].value;">
<%
for i = 1 to rs.PageCount
if i = intpage then%>
<option value="hbj.asp?page=<%=i%>" selected><%=i%></option>
<%else%>
<option value="hbj.asp?page=<%=i%>"><%=i%></option>
<%
end if
next
%>
</select>页</font>
</td>
</tr>
</table>
在代码最下面写入关闭连接语句
<% conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源
%>
二.写入记录 。
写入记录由2个文件组成,,htj.asp 和 htjzx.asp。
1,htj.ap 是通过表单,把你要写入数据库里内容,传递给htjzx.asp 做法如下:
插入表单后连续插入连续插入2个文本字段,1个文本区域和1个按钮。 分别在文本域里输入 name,bt ,content,在按钮后插入隐藏域,隐藏区域 输入insert 值里输入form1 在form 的动作里输入htjzx.asp 完成后代码如下
<form name="form1" method="post" action="htjzx.asp">
name:<input name="name" type="text" id="name">
bt:<input name="bt" type="text" id="bt">
content:<textarea name="content" id="content"></textarea>
<input type="submit" name="Submit" value="提交">
<input name="insert" type="hidden" id="insert" value="form1">
</form>
2,htjzx.asp 是接受htj.ap 表单传递过来的内容,添加到数据库里。做法如下:
<!--#include file="conn.asp" -->
<%
If (CStr(Request("insert")) = "form1") Then
name=request.form("name")
bt=request.form("bt")
content=request.form("content")
exec="insert into lmnr(name,bt,content)values('"+name+"','"+bt+"','"+content+"')"
conn.execute exec
conn.close
set conn=nothing
End If
response.write("<script>alert('添加成功!');location.href='hbj.asp'</script>")
%>
三,修改记录
修改记录由2个文件组成,,hxg.asp 和 hxgzx.asp。
1,hxg.asp是通过表单,把你要修改数据库里内容,传递给hxgzx.asp 做法如下:
连接数据库
<!--#include file="conn.asp" -->
建立查询记录
<%
exec="select * from lmnr where id="&request.querystring("id")
set rs =server.createobject("adodb.recordset")
rs.open exec,conn
%>
插入表单后连续插入连续插入2个文本字段,1个文本区域和1个按钮。 分别在第1个文本字段的文本域里输入 name,初始值里输入<%= rs("name") %> ,在第2个文本字段的文本域里输入bt ,初始值里输入<%= rs("bt") %>,在第3个文本区域的文本域里输入content,初始值里输入<%= rs("content") %>,在按钮后插入隐藏域,隐藏区域输入id 值里输入<%=request.querystring("id")%> 在form 的动作里输入hxgzx.asp 完成后代码如下
<!--#include file="conn.asp" -->
<%
exec="select * from lmnr where id="&request.querystring("id")
set rs =server.createobject("adodb.recordset")
rs.open exec,conn
%>
<form name="form1" method="post" action="hxgzx.asp">
<input name="name" type="text" id="name" value="<%= rs("name") %>">
<input name="bt" type="text" id="bt" value="<%= rs("bt") %>">
<textarea name="content" id="content"><%= rs("name") %></textarea>
<input type="submit" name="Submit" value="提交">
<input type="hidden" name="id" value="<%=request.querystring("id")%>" />
</form>
2,hxgzx.asp 是接受hxg.ap 表单传递过来的内容,修改数据库里的数据。做法如下:
连接数据库
<!--#include file="conn.asp" -->
写入修改语句
<%
exec="select * from lmnr where id="&request.form("id")
set rs =server.createobject("adodb.recordset")
rs.open exec,conn,1,3
rs("name")=request.form("name")
rs("bt")=request.form("bt")
rs("content")=request.form("content")
rs.update
rs.close
set rs=nothing
conn.close
set conn=nothing
response.write("<script>alert('修改成功!');location.href='hbj.asp'</script>")
%>
四,删除记录
删除记录由2个文件组成,,hsc.asp 和 hsczx.asp。
1,hsc.asp是通过表单,把你要删除数据库里id,传递给hsczx.asp 做法如下:
连接数据库
<!--#include file="conn.asp" -->
建立查询记录
<%
exec="select * from lmnr where id="&request.querystring("id")
set rs =server.createobject("adodb.recordset")
rs.open exec,conn
%>
插入表单,在表单里输入“您确定要删除<%=rs("bt") %>吗?”后插入按钮,在按钮后插入隐藏域,隐藏区域 输入id 值里输入<%=request.querystring("id")%> 在form 的动作里输入hsczx.asp 代码最下面输入释放语句
<%
rs.Close()
Set rs = Nothing
%>
完成后代码如下
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="conn.asp" -->
<%
exec="select * from lmnr where id="&request.querystring("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<form name="form1" method="post" action="hsczx.asp">
您确定要删除<%=rs("bt") %>吗?
<input type="submit" name="Submit" value="提交">
<input name="id" type="hidden" id="id" value="<%=request.querystring("id")%>">
</form>
</body>
</html>
<%
rs.Close()
Set rs = Nothing
%>
2,hsczx.asp 是接受hsc.asp 表单传递过来的id,删除数据库里的id项。做法如下:
连接数据库
<!--#include file="conn.asp" -->
写入删除语句
<%
exec="delete * from lmnr where id="&request.form("id")
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,3
response.write("<script>alert('删除成功!');location.href='hbj.asp'</script>")
conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源。
%>
ASP编程基本语句(三)
一.目录页面
目录页面是查看一个数据表里的全部信息,和后台管理一面一样做法,不过不用连接添加,修改,删除了,改为在标题上连接查看显示内容就可以了。
建立一个 qml.asp 文件
连接数据库
<!--#include file="conn.asp" -->
建立查询记录
<%
set rs = server.CreateObject("adodb.recordset")
sql="select * from lmnr order by id desc"
rs.CursorLocation = 3
rs.Open sql,conn,0,2,1 ' //(Yoko:'这里执行你查询SQL并获得结果记录集
%>
写入翻页脚本语句
<%
rs.PageSize = 1 '//(Yoko:这里设定每页显示的记录数
pre = true
last = true
page = trim(Request.QueryString("page"))
if len(page) = 0 then
intpage = 1
pre = false
else
if cint(page) =< 1 then
intpage = 1
pre = false
else
if cint(page) >= rs.PageCount then
intpage = rs.PageCount
last = false
else
intpage = cint(page)
end if
end if
end if
if not rs.eof then
rs.AbsolutePage = intpage
end if
%>
插入1行3列宽100%的表格,在1列里写入调取数据表字段语句 name:<%= rs("name") %>
在2列里写入调取数据表字段和连接查看内容页面的
<a href="qck.asp?id=<%= rs("id") %>">bt:<%= rs("bt") %></a>
在3列里写入调取数据表字段content:<%= rs("content") %>,
在行标签 <tr> 前 写入重复开始语句
<!--循环开始-->
<%
for i=1 to rs.PageSize
if rs.EOF or rs.BOF then exit for
%>
在行标签 </tr> 后写入重复结束语句
<!--循环体结束-->
<%
rs.movenext
next
%>
在</table> 下面写入翻页语句
<!--分页部分:-->
<table width="99%" border="1" >
<tr>
<%if rs.pagecount > 0 then%>
<td width="13%" align="left">当前是<%=intpage%>页 / 共有<%=rs.PageCount%>页</td>
<%else%>
<td width="41%" align="left">当前页0/0</td><%end if%>
<td width="46%" align="right"> <a href="qml.asp?page=1">首页</a>|
<%if pre=true then%>
<a href="qml.asp?page=<%=intpage -1%>">上页</a>| <%end if%>
<%if last then%>
<a href="qml.asp?page=<%=intpage +1%>">下页</a> |<%end if%>
<a href="qml.asp?page=<%=rs.PageCount%>">尾页</a>|转到第
<select name="sel_page" onchange="javascript:location=this.options[this.selectedIndex].value;">
<%
for i = 1 to rs.PageCount
if i = intpage then%>
<option value="qml.asp?page=<%=i%>" selected><%=i%></option>
<%else%>
<option value="qml.asp?page=<%=i%>"><%=i%></option>
<%
end if
next
%>
</select>页</font>
</td>
</tr>
</table>在代码最下面写入关闭连接语句
<% conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源
%>
二,分装页面(读取10条记录,用于首页分装目录)
分装页面也是目录页,用于首页中,因为只要读取几条最新的,不做翻页,就简单了
建立 qfz.asp 文件
连接数据库
<!--#include file="conn.asp" -->
建立查询记录
<%
Set rs= Server.CreateObject ("ADODB.Recordset")
sql = "Select top 10 * from lmnr ORDER BY id DESC "
rs.Open sql,conn,1,1
%>
插入1行3列表格
在每列里依次写入调取数据表字段
name:<%= rs("name") %>
<a href="qck.asp?id=<%= rs("id") %>">bt:<%= rs("bt") %></a>
content:<%= rs("content") %>
在行标签 <tr> 前 写入重复开始语句
<% '重复开始
if rs.EOF and rs.BOF then
response.write ("暂时还没有文章")
else
Do Until rs.EOF %>
在行标签 </tr> 后写入重复结束语句
<% '重复结束
rs.MoveNext
Loop
end if
%>
在代码最下面写入关闭连接语句
<% conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源
%>
完成后如下面
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="conn.asp" -->
<%
Set rs= Server.CreateObject ("ADODB.Recordset")
sql = "Select top 10 * from lmnr ORDER BY id DESC "
rs.Open sql,conn,1,1
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<table width="100%" border="1">
<% '重复开始
if rs.EOF and rs.BOF then
response.write ("暂时还没有文章")
else
Do Until rs.EOF %>
<tr>
<td>name:<%= rs("name") %></td>
<td>bt:<%= rs("bt") %></td>
<td>content:<%= rs("content") %></td>
</tr><% '重复结束
rs.MoveNext
Loop
end if
%>
</table>
</body>
</html>
<% conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源
%>
三,读取内容页面
目录页面或分装页面都是显示很简单,要显示一个内容很多文字,或多媒体图片等,在目录页显示就会破坏页面完整性,要具体查看某一条详细信息,就用显示内容页,接受目录页传递来的 id 来显示这个id 项的全部内容
建立 qck.asp 文件
连接数据库
<!--#include file="conn.asp" -->
建立查询记录
<%
exec="select * from lmnr where id="&request.querystring("id")
set rs =server.createobject("adodb.recordset")
rs.open exec,conn
%>
插入表格后 把数据表中读取字段语句 写入单元格里就可以了
插入3行一列表格
第1行 写入name:<%= rs("name") %>,
第2行写入bt:<%= rs("bt") %>
第3行写入content:<%= rs("content") %>
在代码最下面写入关闭连接语句
<% conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源
%>
ASP编程基本语句(四)
一,用户注册
用户注册由传递和执行2个页面组成
1, 在数据库里编制数据库用户表
2, yhzc.asp 实质就是写入页面,和添加一样,就是多一个检查用户存在和密码语句
建立yhzc.asp 文件
插入表单后,插入4行1列宽 300的表格,
第1行输入 “用户名:”在后面插入文本字段 文本域输入 name
第2行输入“用户密码:”在后面插入文本字段 文本域输入 pwd,类型改为 密码
第3行输入“密码确认:”在后面插入文本字段 文本域输入 pwd2,类型改为 密码
第4行插入按钮 在form 的动作里输入yhzczx.asp 完成后代码如下
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<form name="form1" method="post" action="yhzczx.asp">
<table width="300" border="1">
<tr>
<td>用户名:
<input name="name" type="text" id="name"></td>
</tr>
<tr>
<td>用户密码:
<input name="pwd" type="password" id="pwd"></td>
</tr>
<tr>
<td>密码确认:
<input name="pwd2" type="password" id="pwd2"></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
3, 注册执行页面
建立yhzczx.asp文件、
连接数据库
写入执行代码
<%
name=request("name")
pwd=request("pwd")
pwd2= request ("pwd2")
xx=request("xx")
sex=request("sex")
if pwd<>pwd2 then
response.write("<script>alert('两次输入的密码不对');window.history.back();</script>")
response.end() '结束运行
end if
set rs=server.CreateObject("adodb.recordset")
sql="select count(0) from yhgl where name='"&name&"'"
rs.open sql,conn,1,1
if rs(0)>0 then '判断用户名是否已经注册
response.write("<script>alert('用户名已经存在');window.history.back();</script>")
response.end() '结束运行
else
conn.execute("insert into yhgl([name],[pwd]) values('"&name&"','"&pwd&"')") '添加到数据库注册完成,yhgl_pwd是 ACCESS中的保留关键字。
response.write("<script>alert('注册成功!');location.href='yhdl.asp'</script>")
end if
conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源。
%>
二,用户登录
用户登录由传递和执行2个页面组成
1,yhdl.asp
建立yhdl.asp 文件
插入表单后,插入3行1列宽 300的表格,
第1行输入 “用户名:”在后面插入文本字段 文本域输入 name
第2行输入“用户密码:”在后面插入文本字段 文本域输入 pwd,类型改为 密码
第3行插入按钮 在form 的动作里输入yhdlzx.asp 完成后代码如下
<form name="form1" method="post" action="yhdlzx.asp">
<table width="300" border="1">
<tr>
<td>用户名:
<input name="name" type="text" id="name"></td>
</tr>
<tr>
<td>用户密码:
<input name="pwd" type="password" id="pwd"></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="提交"></td>
</tr>
</table>
</form>
2,登录执行页面
建立 yhdlzx.asp 文件
写入执行语句
<!--#include file="conn.asp"-->
<%
Session("name")=request.form("name")'在 Session中保存用户名
dim username,password
name=request.form("name")'从表单传递的用户名
pwd=request.form("pwd")
'查询记录
set rs=server.CreateObject("adodb.recordset")
sql="select * from yhgl where name='"&name&"'"
rs.open sql,conn,1,1
if rs.eof then
response.write "<script>alert('登录失败,用户名不对');history.back();</script>"
response.end
else
Session("Username") = valUsername
if rs("pwd")<>pwd then
response.write "<script>alert('登录失败,密码不对');history.back();</script>"
response.end
end if
' *** Validate request to log in to this site.
LoginAction = Request.ServerVariables("URL")
If Request.QueryString<>"" Then LoginAction = LoginAction + "?" + Server.HTMLEncode(Request.QueryString)
valUsername=CStr(Request.Form("name"))
If valUsername <> "" Then
fldUserAuthorization="yhjb"
redirectLoginSuccess="qml.asp"
redirectLoginFailed="hydl.asp"
flag="ADODB.Recordset"
set rsUser = Server.CreateObject(flag)
rsUser.Source = "SELECT name, pwd"
If fldUserAuthorization <> "" Then rsUser.Source = rsUser.Source & "," & fldUserAuthorization
rsUser.Source =rsUser.Source & " FROM yhgl WHERE name='" & Replace(valUsername,"'","''") &"' AND pwd='" & Replace(Request.Form("pwd"),"'","''") & "'"
' username and password match-this is a valid user
Session("Username") = valUsername
Session.Timeout =120
If (fldUserAuthorization <> "") Then
Else
Session("UserAuthorization") = ""
End If
if CStr(Request.QueryString("accessdenied")) <> "" And false Then
redirectLoginSuccess = Request.QueryString("accessdenied")
End If
Response.Redirect(redirectLoginSuccess)
End If
rsUser.Close
Response.Redirect(redirectLoginFailed)
session("admin")=username
response.write"<script>alert('登录成功');location.href='qml.asp'</script>"
end if
conn.close '关闭连接,
set conn=nothing '释放内存 这两句很重要,不然会占用大量服务器资源
%>
几个特殊语句的应用
一,只有会员登录才能显示的语句
放在要隐藏文字或图片前面的语句 <% If ad1("name").Value <> "未登录" Then %> (这句话的意思是:如果as1这个记录集查询表里文本字段 name 不等于 未登录时 你隐藏的内容才显示
放在要隐藏文字或图片后面的语句 <% End If %>
注意ad1 是记录集查询的名称,一定要和记录集查询的名称一样
加入这个功能时,这个页面一定要有用户管理的记录集查询,把显示用户级别,用户名称的记录集查询(筛选 name 阶段变量Username)语句加入页面上。
<%
Dim ColParam
ColParam = "未登录"
If (Session("Username") <> "") Then
ColParam = Session("Username")
End If
set ad1 =server.CreateObject("adodb.recordset")
sql="select * from yhgl WHERE name = '" + Replace(ColParam, "'", "''") + "'"
ad1.open sql,conn,1,1
%>
用户管理数据表的名是yhgl 记录集查询名是ad1
二,只有是管理员才能显示的语句
放在要隐藏文字或图片前面的语句 <% If ad1("yhjb").Value = "管理员" Then %> (这句话的意思是:如果ad1这个记录集查询表里文本字段 yhjb 等于 管理员 时 你隐藏的内容才显示
放在要隐藏文字或图片后面的语句 <% End If %>
同样也得有用户管理的记录集查询,语句和什么一样,这条语句一般用于后台管理显示上。
三,有二个条件显示隐藏文字或图片的语句
放在要隐藏文字或图片前面的语句 <% If rs ("xzxz").Value = "0" or ad1("name").Value <> "未登录" Then (这句话的意思是:如果rs 这个记录集查询表里文本字段 xzxz 等于0 或 ad1这个记录集查询表里文本字段 name 不等于 未登录 时 满足一个条件 你隐藏的内容才显示)
放在要隐藏文字或图片后面的语句 <% End If %>
当然使用这个功能,这个页面一定要有名为ad1用户管理的记录集查询和一个名为rs带有 xzxz 字段的记录集查询语句加入页面上。
这个功能多数用在随时改变“限制只有登录”才能看见你隐藏的文字或图片或随时改变“不限制”任何人都能看见你隐藏的文字或图片
四,只有是管理员才能打开页面的语句
后台页面为了防止被人打开,要在代码里的<html>标签前写入下面语句
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers="管理员"
MM_authFailedURL="../ts.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
If (false Or CStr(Session("MM_UserAuthorization"))="") Or _
(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
MM_grantAccess = true
End If
End If
If Not MM_grantAccess Then
MM_qsChar = "?"
If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
MM_referrer = Request.ServerVariables("URL")
if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
Response.Redirect(MM_authFailedURL)
End If
%>
其中 ts.asp 是一个提示页面 一般用于后台管理,添加,修改,删除页面中