Классическая форма запроса и переменные asp
Мне нужно немного помощи здесь. Я получил этот простой скрипт имени пользователя / пароля, чтобы включить страницу входа. Это в основном форма, запрашивающая имя пользователя / пароль и сравнивающая некоторую информацию внутри кода.
If Request.Form("FormUsername") = "username" AND Request.Form("FormPassword") = "password" Then
Я хотел бы сравнить информацию о пользователе / пароле из некоторой переменной, например, иметь второй файл с переменными:
<%
'Username Variables
Dim PCUser, PCPass
PCUser = "username"
PCPass = "password"
%>
затем включите файл на страницу входа:
<!--#include file="Users.inc"-->
И тогда сможете прочитать переменные в request.form:
If Request.Form("FormUsername") = "& PCUser &" AND Request.Form("FormPassword") = "& PCPass &" Then
Это то, что я пытался до сих пор и не работал:(Может кто-нибудь помочь мне понять, почему???
Если я сделаю response.write в конце страницы, он покажет мне значения переменных:
<%
Response.Write("user= " & PCUser & "<br />")
Response.Write("pass= " & PCPass & "<br />")
%>
заранее спасибо
ПК
2 ответа
Пытаться
If Request.Form("FormUsername") = PCUser
AND Request.Form("FormPassword") = PCPass Then
2-я попытка:
response.write "FormUsername: " & Request.Form("FormUsername")
response.write "PCUser: " & PCUser
response.write "Equals: " & (Request.Form("FormUsername") = PCUser)
Проверьте, используя вышеперечисленное как на главной странице, так и во включаемом файле.
Более простой подход может заключаться в том, чтобы поместить имя пользователя и пароль в переменную приложения, в global.asa в корне вашего сайта:
<script language=vbscript runat=server>
SUB Application_OnStart
Application.contents("username") = "username"
Application.contents("password") = "password"
END SUB
</script>
Это делает ваше имя пользователя и пароль доступными во всем приложении. На своих страницах вы можете проверить это так (без необходимости включения):
If Request.Form("FormUsername") = Application.contents("username") AND Request.Form("FormPassword") = Application.contents("password") Then
...
End if
Естественно, что для этого можно создать страницу входа в систему, и, как только пользователь войдет в систему с правильными именем пользователя и паролем, установить переменную сеанса (для каждого пользователя) и просто проверить переменную сеанса. чтобы увидеть, если кто-то вошел в систему:
GLOBAL.ASA:
<script language=vbscript runat=server>
' run when the application is started for the first time or re-started
SUB Application_OnStart
Application.contents("username") = "username"
Application.contents("password") = "password"
END SUB
' run for each user when he or she first visits the site
SUB Session_OnStart
Session.Contents("loggedIn") = False
END SUB
</script>
Ваша страница входа может установить для сеанса значение ИСТИНА, когда пользователь успешно входит в систему:
If Request.Form("FormUsername") = Application.contents("username") AND Request.Form("FormPassword") = Application.contents("password") Then
Session("loggedIn") = True
End if
В верхней части каждой страницы, которую вы хотите защитить, вы можете сделать это:
If NOT Session("loggedIn") Then
Response.redirect("/login.asp") ' redirect to your login page
End If
Этот последний фрагмент кода можно поместить во включаемый файл и добавить в начало всех страниц, которые вы хотите защитить.
Обратите внимание, что это очень элементарная система безопасности, и код не проверен.
Надеюсь это поможет