Классическая форма регистрации сообщений asp больше не работает - PullRequest
0 голосов
/ 12 декабря 2018

Работая на веб-сайте classic asp Я заметил поведение, которое доставляет немало хлопот некоторым пользователям.Каким-то образом после публикации формы входа в систему какой-то пароль больше не используется, появляется ошибка (104) reset connection by peer, пытающаяся получить доступ к main.asp.

Вот странная вещь, которую вы, ребята, можете помочь мне выяснить:

После многих часов попыток найти подсказку, мы вернули все это в рабочее состояние, просто изменив HTML name atribute с name="pwdSenha" на name="pwdTestSenha", а затем на следующий день после того, как все началось снова, поэтому мы изменили названиееще раз, теперь все снова работает нормально, но я думаю, только до завтра.

Есть объяснение того, что происходит?

Вот упрощенный код:

<form class="modal-content animate" id="frmLogin" name="frmLogin" method="post" action="../functions/aut_user.asp">
  <div class="container">
    <label><b>Login</b></label>
    <input type="text" placeholder="Entre com Login" name="txtLogin" maxlength="45" required>    
    <label><b>Senha</b></label>
    <input type="password" placeholder="Entre com a Senha" name="pwdSenha" maxlength="15">        
    <button id="bntLoginEntrar" type="submit">Entrar</button>
  </div>  
</form>

Класс Аутентификации

<%
if funConectaBD() and Session("USER_ID") = "" then
  Dim strLogin, strSenha
  strLogin = fAspas(Request.Form("txtLogin"))
  strSenha = "IS NULL"
  if Trim(Request.Form("pwdSenha")) <> "" then
    strSenha = "= '" & Cript(Request.Form("pwdSenha")) & "'"
  end if
  if strLogin <> "" then
    'on error resume next
    Dim adoRSLogin
    Set adoRSLogin = Server.CreateObject("ADODB.Recordset")
    adoRSLogin.ActiveConnection = bdConn

    Dim strSQL
    if Session("USER_CHANGE_PASS") <> "S" then      
        strSQL = "SELECT * " &_
                 "FROM users us" &_
                 "WHERE us.login = '" & strLogin & "' AND us.senha " & strSenha & " AND us.ativo = 'S';"
    else
        strSQL = "SELECT " &_
                 "FROM usuario us " &_
                 "WHERE us.login = '" & strLogin & "' AND us.ativo = 'S';"
    end if
    'Response.Write(strSQL & "<br/>")
    'Response.End()
    adoRSLogin.Open(strSQL)
    if not adoRSLogin.EOF then
        Session("USER_ID") = adoRSLogin("numero")
        Session("FUNC_ID") = adoRSLogin("funcionario")
        Session("USER_NAME") = adoRSLogin("nome")
        Session("FUNC_NAME") = ""
        Session("USER_LOGIN") = adoRSLogin("login")
        Session("USER_EMAIL") = adoRSLogin("email")
        Session("USER_PHONE") = adoRSLogin("telefone")
        if adoRSLogin("adm") = "S" then
            Session("USER_ADM") = TRUE
        else
            Session("USER_ADM") = FALSE
        end if
        Session("UNIT_ID") = adoRSLogin("unidade_numero")
        Session("UNIT_NAME") = adoRSLogin("unidade_nome")                       
        strSQL = "CALL inclui_conexao(" & Session("UNIT_ID") & "," & Session("USER_ID") & ",NOW(),NULL);"
        'Response.Write(strSQL & "<br/>")
        'Response.End
        bdConn.execute(strSQL)
        'on error goto 0        
    end if
    strSQL = empty
    set adoRSLogin = nothing
  end if
end if
%>
...