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

时间:2013-03-25 22:59:03

标签: 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
'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
%>

1 个答案:

答案 0 :(得分:0)

假设您的Customers表的主键名为CustomerId,那么您可能会有类似

的内容
if rs.BOF and rs.EOF then        
Response.Redirect "customerlogin.htm?username=" & UserName    
else
Session("CustomerId") = rs("customerid") 

然后在您的customecounts页面上,您可以查询

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")
相关问题