Session 登录经典asp后显示用户特定的数据

Session 登录经典asp后显示用户特定的数据,session,asp-classic,database-connection,Session,Asp Classic,Database Connection,我有我的项目的代码,我希望用户被定向到他们的帐户页面,其中显示特定于他们的数据。他们的供应商名单。我意识到我需要创建一个会话变量,但我不知道在我的代码中放在哪里,也不知道在帐户页面中指定用户的代码。有人能帮忙吗?这是我的密码 <% 'Connection String Dim Conn 'Query to be executed Dim SQLQuery 'Recordset Dim rs 'StudentNo Of Logged in user Dim UserName 'Passwor

我有我的项目的代码,我希望用户被定向到他们的帐户页面,其中显示特定于他们的数据。他们的供应商名单。我意识到我需要创建一个会话变量,但我不知道在我的代码中放在哪里,也不知道在帐户页面中指定用户的代码。有人能帮忙吗?这是我的密码

<%
'Connection String
Dim Conn
'Query to be executed
Dim SQLQuery
'Recordset
Dim rs
'StudentNo Of Logged in user
Dim UserName
'Password of User
Dim Password

'Getting information from submitted form
UserName = request.form("username")
Password = request.form("password")
RememberMe = request.form("rememberme")

'If not blank Username password submitted
if UserName <> "" or Password <> "" then  

'Creating connection Object    
set Conn=server.createobject("ADODB.Connection")

'Creating Recordset Object    
set rs = Server.CreateObject("ADODB.Recordset")    

'Initialising Provider String    
connStr = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("database.mdb")&";"   


'Opening Connection to Database    
Conn.open  connStr        
'Query to be executed    
SQLQuery = "select * from customers_tbl where c_email = '"&UserName&"' AND c_password = '"&Password&"'"   
'Retrieving recordset by executing SQL   
set rs=Conn.execute(SQLQuery)    
'If no records retrieved    
if rs.BOF and rs.EOF then        
Response.Redirect "customerlogin.htm?username=" & UserName    
else         
'If remember me selected        
if RememberMe = "ON" then
'Writing cookies permanently            
Response.Cookies("UserName")=UserName            
Response.Cookies("Password")=Password            
Response.Cookies("UserName").Expires = Now() + 365            
Response.Cookies("Password").Expires = Now() + 365            
Response.Redirect "customeraccount.htm"
else
'writing cookies temporarily            
    Response.Cookies("UserName")=UserName            
    Response.Cookies("Password")=Password            
    Response.Redirect "customeraccount.htm"
end if        
'Closing all database connections        
Conn.Close       
rs.close          
set rs = nothing        
set Conn = nothing    
end if
else    
'Invalid User    
Response.Redirect "customerlogin.htm?UserName=blank"
end if
%>

假设Customers表的主键名为CustomerId,那么您可以使用

if rs.BOF and rs.EOF then        
Response.Redirect "customerlogin.htm?username=" & UserName    
else
Session("CustomerId") = rs("customerid") 
然后在customeraccount页面上,您可以进行查询

SQLQuery = "select * from customers_tbl where customerid = "&Session("CustomerId")
关于您的代码,我注意到两件事

首先,您似乎有扩展名为.htm而不是.asp的asp页面。您可能已经更改了相关的IIS设置,以便它将.htm页面视为ASP而不是平面html

其次,您使用的是ODBC连接字符串。这将工作,但OLEDB驱动程序被认为是更快-例如

connstr = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=""& Server.MapPath("database.mdb")