Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema con form login

    Salve, sono nuovo e mastico ancora poco ASP.
    Ho un form login che al momento della convalida dei dati dovrebbe generare dei codici.
    Se effettuo il login mi dice che l'utente è attivo però non mi fa accedere alle pagine successive.
    il form login è il seguente
    codice:
    <form method="POST" action="accesso.asp">
          <input name="register" type="hidden" value="1">
          <input name="area" type="hidden" value="<%=area%>">
            <table border="0" width="122">
              <tr>
                <td width="121">
                  <font face="Comic Sans MS" size="2">User ID</font><br>
                  <input type="text" name="newusername" size="15">
                </td>
              </tr>
              <tr>
                <td width="121">
                <font size="2" face="Comic Sans MS">Password</font><br>
                  <input type="password" name="newpassword" size="15">
                </td>
              </tr>
              <tr>
                <td width="121">
                  <input type="submit" value="Entra" name="B1"><br>
                  <font face="Comic Sans MS" size="2">
                  &nbsp;<a href="javascript:openit()">Password Dimenticata?</a>
                  </font>
                </td>
              </tr>
            </table>
          </form>
    e poi dovrebbe creare i codici cod_user e cod_password con una di queste contenute nel file funcs.asp:
    codice:
    FUNCTION checkattivo( byVal username, byVal password, byRef Conn )
      sqlString = "SELECT user_id, user_data_termine, user_order_id, user_attivo, user_data_creazione_file, user_codice_transazione FROM users " &_
        "WHERE user_username='" & username & "' " &_
        "AND user_password='" & password & "' "
      SET RS = Conn.Execute( sqlString )
      IF not RS.EOF THEN
         if rs("user_attivo") = -1 then
              data_di_sistema_ricavata = elabora_codice_user
              data_di_creazione_ricavata = elabora_codice_pass
              ' Verifica data di creazione file di configurazione
              if not isnull(rs("user_data_creazione_file")) then
                 if rs("user_data_creazione_file") <> data_di_creazione_ricavata then
                    confermaaccesso "Non è possibile effettuare l'accesso alle lezioni da questa postazione!"
                 end if
              else
                  sqlString = "UPDATE users SET " &_
                  "user_data_creazione_file = '" + data_di_creazione_ricavata & "' " &_
                  "WHERE user_username='" & username & "' " &_
                  "AND user_password='" & password & "' "
                  conn.Execute sqlString
              end if
              '
              'backpage = Request.ServerVariables( "SCRIPT_NAME" )
              'errorForm "Data di sistema:"+ data_di_sistema_ricavata + "Data di creazione:"+ data_di_creazione_ricavata, backpage
              '
              ' Verifica che non sia stato effettuato un accesso con le stesse impostazioni
              ip = Request.ServerVariables("REMOTE_ADDR")
              sqlString_accessi = "SELECT accessi_id, accessi_username, accessi_cod_username, accessi_codice FROM accessi " &_
                "WHERE accessi_id=" & rs("user_id") &_
                "AND accessi_username='" & username & "' " &_
                "AND accessi_cod_username='" & elabora_codice_user & "' "
              SET RS_accessi = Conn.Execute( sqlString_accessi )
              IF not RS_accessi.EOF THEN
                 if not isnull(RS_accessi("accessi_codice")) then
                    confermaaccesso "Non è possibile effettuare l'accesso alle lezioni da questa postazione! Duplicazione di accesso!"  '+ "Valore: " + ip + " "+ RS_accessi("accessi_codice")
                     if RS_accessi("accessi_codice") <> ip then
                        confermaaccesso "Non è possibile effettuare l'accesso alle lezioni da questa postazione! Duplicazione di accesso!"
                     end if
                 else
                     confermaaccesso "Non è possibile effettuare l'accesso alle lezioni da questa postazione! Duplicazione di accesso!"
                 end if
              else
              ' Add New Access to Database
                    sqlString_accessi = "INSERT INTO accessi ( " &_
                    "accessi_id, " &_
                    "accessi_username, " &_
                    "accessi_cod_username, " &_
                    "accessi_codice " &_
                    ") VALUES ( " &_
                    rs("user_id") & ", " &_
                    " '" & username & "', " &_
                    " '" & elabora_codice_user & "', " &_
                    " '" & ip & "' " &_
                    ")"
                    Conn.Execute sqlString_accessi
              end if
              if not isnull(rs("user_data_termine")) then
                 if rs("user_data_termine") < NOW() then
                     sqlString = "UPDATE users SET " &_
                      "user_attivo = 0, user_data_attivazione = null, user_data_termine = null, user_order_id = 0 " &_
                      "WHERE user_username='" & username & "' " &_
                      "AND user_password='" & password & "' "
                      conn.Execute sqlString
                      checkattivo = - 1
                      confermaaccesso "Il tuo Username non è più attivo! Per l'attivazione dovrai effettuare un nuovo versamento della quota annuale!"
                 else
                   checkattivo = 0
                    'addCookie "username", username
                    'addCookie "password", password
                 end if
                 ' inserimento valore transazione
                 cod_password = Mid(cod_password, 4, 6) + Mid(cod_username, 5, 6)
                  sqlString = "UPDATE users SET " &_
                  "user_codice_transazione = '" + cod_password & "' " &_
                  "WHERE user_username='" & username & "' " &_
                  "AND user_password='" & password & "' "
                  conn.Execute sqlString
              else
                checkattivo = - 1
              end if
         elseif rs("user_attivo") = 0 then
              checkattivo = -1
              if rs("user_order_id") > 0 then
                 confermaaccesso "Il tuo Username non è attivo! Ti verrà comunicata l'attivazione con una e-mail!"
              end if
         end if
      elseif rs.eof then
          checkattivo = - 1
      END IF
    END FUNCTION
    Come faccio a far generare questi codici (per poter accedere al resto dei contenuti?
    O meglio come faccio a reindirizzare i dati del login a quella funzione?

    Grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma la funzione cosa dovrebbe fare oltre a controllare?
    Se l'utente ha checkattivo = 0 cosa vorresti fare? Attivare un cookie o una session da testare nelle pagine successive?
    La funzione dovrebbe restituire il valore che ha "checkattivo".
    Lo testi nella pagina che fa il controllo della User e Password inserite. Se è uguale a 0 fai il redirect nella pagina protetta.

    Roby

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.