它,我使用的是經典ASP,用戶和管理員可以登錄使用相同的形式做了一個簡單的登錄表單經典ASP嵌套。如果其他條件不執行
在我已經創建了一個所謂的「狀態」用數據類型BIT(即「0」或「1」)值字段數據庫中的「用戶」表被接受。每個新註冊用戶的默認值爲「0」。
我已經通過一個查詢,如果狀態爲「0」,那麼特定的用戶或管理員應該重定向到Authentication.asp頁面,他將回答一些問題並點擊SUBMIT將設置數據庫中的狀態值到「1」。 「1」表示用戶或管理員填寫了認證表單,可以將其重定向到所需的頁面,而不是將其重定向到Authentication.asp頁面。 爲此,我使用了If-elseif-else語句。我多次重新檢查過,似乎if-else語句中沒有遺漏任何東西。但即使我手動輸入「1」作爲數據庫狀態列中的狀態,我總是被重定向到認證頁面。這是我的代碼。
Session("Username")=request.form("user_name")
if request.Form("sub_but") <> "" then
sql = "SELECT * FROM Users WHERE UserName='"&request.form("user_name")&"' AND Password='"&request.form("pwd")&"'"
rs.open sql, con, 1, 2
if rs.EOF then
response.Write("<script language='javascript'>{attention_emp();}</script>")
else
if(rs("status")=1 & rs("login_type")="admin") then
Response.Redirect ("admin.asp")
elseif(rs("status")=1 & rs("login_type")="emp") then
response.Redirect("leave.asp")
else
response.Redirect("auth.asp")
end if
end if
rs.close
end if
我真的希望你會檢查SQL注入攻擊你提交的表單變量(如果沒有其他至少代替單引號),如果這是一個公共網站(或確實有惡意的內部用戶)。 – Mirko