2012-09-26 3 views
2

이것은 매우 간단 할 것입니다. 그러나 고전적인 ASP 구문에 대한 경험은 거의 없습니다. 기본적으로 로그인 성명서가 있습니다. 아래 그림 :클래식 ASP (VBScript)의 ElseIF 구문

<%if session("AccountID") = "0" or session("AccountID")="" then%> 
        <% 
        If request.form("SmPress") = "Pressed" Then 
         dim SQLVerifyEmail 
         SQLVerifyEmail = "SELECT * FROM Users WHERE UserName= '"&killchars(request.form("UserName"))&"' and Password = '"&killchars(request.form("Password"))&"' AND Status = 'A' AND Deleted = 'no' " 
         set RSVerifyEmail = MyConn.execute(SQLVerifyEmail) 
         If RSVerifyEmail.EOF Then 

          response.write ("<span class=loginerror>Incorrect login details.</span><br>") 

         Else 
          LastLogin2 = "UPDATE Users SET LastLogin = Convert(datetime,'"&now()&"',103) WHERE AccountID = '"&RSVerifyEmail("AccountID")&"' " 
          MyConn.execute(LastLogin2) 
          session("admin") = RSVerifyEmail("admin") 
          session("AccountID") = RSVerifyEmail("AccountID") 
          response.redirect "profile.asp" 

         End if 
        End if 
        %> 

내가 그것을 분할하고 싶은 모든이가 계정 ID와 동일한 경우가 profile.asp 리디렉션하지만, 세션 = 관리자가 다음을 리디렉션하는 경우 프로필 - user.asp 때문에 . 나는 다음과 같은 것을 시도했지만 많은 에러가 발생했다 :

ElseIF 
          LastLogin2 = "UPDATE Users SET LastLogin = Convert(datetime,'"&now()&"',103) WHERE AccountID = '"&RSVerifyEmail("AccountID")&"' " 
          MyConn.execute(LastLogin2) 
          session("admin") = RSVerifyEmail("admin") Then 
          response.redirect "profile.asp" 

         Else 
         session("AccountID") = RSVerifyEmail("AccountID") 
         response.redirect "profile-user.asp" 
         End if 
        End if 
        %> 

누군가 내가 잘못 가고있는 곳을 제안 할 수 있습니까? 당신은 당신의 데이터베이스 관리자 프로파일에 RSVerifyEmail ("관리자") = "true"로 설정 가정

+0

가치가되지 않음을,하지만 당신은보고 싶었어 너의 ElseIf에 조건을 해제. 'ElseIf something = somethingelse THEN' 후 뭔가가 필요합니다. –

답변

2

: 이 시도 보내기 전체 응답의

<% if session("AccountID") = "0" or session("AccountID") = "" then %> 
<% 
If request.form("SmPress") = "Pressed" Then 
    dim SQLVerifyEmail 
     SQLVerifyEmail = "SELECT * FROM Users WHERE UserName= '"&killchars(request.form("UserName"))&"' and Password = '"&killchars(request.form("Password"))&"' AND Status = 'A' AND Deleted = 'no' " 

    set RSVerifyEmail = MyConn.execute(SQLVerifyEmail) 
     If RSVerifyEmail.EOF Then 
      response.write ("<span class=loginerror>Incorrect login details.</span><br>") 
     Else 
      LastLogin2 = "UPDATE Users SET LastLogin = Convert(datetime,'"&now()&"',103) WHERE AccountID = '"&RSVerifyEmail("AccountID")&"' " 
      MyConn.execute(LastLogin2) 

      ' // Set only for admin session only for admins 
      IF RSVerifyEmail("admin") = "True" Then 
       RedirectWho   = "admin" 
       session("admin") = RSVerifyEmail("admin") 
      Else 
       RedirectWho   = "user" 
      End if 
      session("AccountID") = RSVerifyEmail("AccountID") 
     End if 
    set RSVerifyEmail = Nothing 

    ' // redirect the logged in user or admin 
    If RedirectWho = "admin" Then 
     response.redirect "profile.asp" 
    ElseIf RedirectWho = "user" Then 
     response.redirect "profile-user.asp" 
    End if 
End if 
%> 
+0

그것은 오류를 발생시키지 않지만 둘 다 profile-user.asp로 리다이렉트하는 것처럼 보입니다. 관리자 계정 또는 사용자 계정으로 로그인하는지 여부. – Bohdi

+0

RSVerifyEmail ("admin")에 어떤 값이 설정되어 있습니까? 데이터베이스에 어떤 데이터 유형이 있습니까? – DevCentral

+0

위의 코드가 변경되었습니다. – DevCentral