我做了一个密码登录的页面,密码验证了,想在下一个页面判断用户是否是正常登录的,需要判断session,但我在登录页面一加上:session("user_id")=user_id就报错,请问到底是怎么回事?
先定義session
username=replace(trim(request("username")),"","")
session("username")=username
調用session
username=session("username")
后再做判斷.這樣就沒有問題了.
调用从提交表单传递过来的变量值要用request,以上应改为:
session("user_id") = request("username")
在密码验证页面:
dim name
dim pass
name = trim(Request("name"))
pass = trim(Request("pass"))
sql = .....
set
rs1 .open
if rs1.recordcount = 0 then
Response.write"no user"
Response.end
end
session("name") = name
然后在做一个页面:check.asp
<%
if Len(session("Name") = 0 then
Response.Redirect "login.asp"
else
Response.write "当前用户是"&session("name")
end if
%>
然后在每个文件里包含check.asp,就行了
你必须在主页面把他登陆的ID和密码保存到COOKIES中去
如:
Response.Cookies("Id") = Id
Response.Cookies("Password") = Password
Response.Cookies("Passed") = "Passed"
下个页面要验证的话,直接输入
If Not Request.Cookies("Passed")="Passed" Then
Response.Redirect "相关页面"
Response.End
End If
I、给你一个例子:
1、先让用户登录到查询页面;
2、然后再让用户查询数据和浏览数据。
这样做保证能查询的用户都是你的会员什么的。
II、下面想你提供一个验证用户的代码:
<% dim user,password,users,passwords %>
<% user=Request.form("username")
password=Request.form("password")
%>
<%
user=trim(request("username"))
password=cstr(Request("password"))
set rs=server.createobject("adodb.recordset")
sql="select * from 用户表 where id="&request("user")
rs.open sql,conn,1,1
if not(rs.bof and rs.eof) then
if password=rs("password") and user=rs("username") then
session("user_id")=true
response.redirect "Login.asp" ‘登录到Login.asp页面
else
Response.Redirect "error/error06.asp"
end if
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
%>
然后在每一个需要保护的页面都加上
<%
if session("user_id")="" then
response.redirect "返回用户登录输入界面"
end fi
%>
这是本人写的一段代码
dim Uname
dim Pass
dim SRight
Uname=Request.Form("UserName")
Pass=Request.Form("PassWord")
Uright=Request.Form("SRight")
If Uname="" or Len(Uname)>10 Then
Response.write "用户名不能为空或大于10位"
Response.Redirect("index.htm")
End if
Set myconn=server.createobject("ADODB.Connection")
myconn.Open "Driver={Microsoft access driver (*.mdb)}"&";PWD=123;dbq=" & server.Mappath("student.mdb")
SQLQuery="Select * From users Where name=" & Uname & " and right=" & Uright & ""
Set rsMyReco=Server.CreateObject("ADODB.RecordSet")
rsMyReco.Open SQLQuery,myconn,1,2
%>
<%
If rsMyReco.Eof Then
rsMyReco.Close
MyConn.Close
Set rsMyReco=Nothing
Set MyConn=Nothing
%>
<Font Size="2">登录失败!<BR>
<A Href="index.htm">返回</A></Font>
</Body>
</Html>
<%
ELSE
IF (Pass<>rsMyReco("pass")) THEN
rsMyReco.Close
MyConn.Close
Set rsMyReco=Nothing
Set MyConn=Nothing
%>
<Html>
<Body>
<Font Size="2">密码不正确,请重新进入!<BR>
<A Href="index.htm">返回</A></Font>
</Body>
</Html>
<%
else
Session("username")=Uname
Session("upass")=Pass
Session("uright")=Uright
session.timeout=3
rsMyReco.Close
MyConn.Close
Set rsReco=Nothing
Set MyConn=Nothing
select case Uright
case "超级用户"
Response.Redirect ("main.asp")
case "普通用户"
Response.Redirect("main1.asp")
end select
END IF
END IF
Response.Redirect("index.htm")
%>
session("user_id")=user_id报错,
不知道报的是什么错,
多半是user_id有问题
你看看user_id的值是多少
你用session("user_id") ="1222222211"
试试,