Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    306

    Clausole Where non effettua confronto binario

    Sto provando ad effettuare degli accessi in determinate aree con password e mi accorgo che quando eseguo la query in questo modo con la clausola where:

    sql = "SELECT * FROM personale WHERE user='" &nome_ut&_
    "' AND PASSWORD='" &pass& "'"

    ...sia per l'utente che password, mi permette l'accesso sia se li scrivo con lettere piccole e sia con lettere maiuscole, praticamente mi fa un confronto testo e a me serve binario, in modo da differenziare le lettere grandi da quelle piccole.

  2. #2
    l'ho scritta un po più ordinata, provala

    sql = "SELECT * FROM personale WHERE user = '" & nome_ut & "' AND PASSWORD = '" & pass & "'"

    sei sicuro sui tipi di dato? entrambi testo?

    comunque vedi questo articolo:

    http://www.aspcenter.net/articoli/148.asp

    fa un tipo di query differente che magari ti torna utile

    ciao!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    306
    Si, utente e password sono alfanumerici, solo che non fa differenza tra lettere grandi e piccole, ora dò un'occhiata all'articolo...

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    306
    Ho letto l'articolo, molto interessante, e ho sviluppato la query così come è spiegato, ora però si è verificato un altro problema, cioè mi riconosce solo i caratteri piccoli, con le lettere grandi non mi fa loggare, ti posto lo script:

    <%Dim username, password, re, referer, url
    url = session("url") ' recupera il valore della pagina richiesta dal file protezione.asp
    referer = Request.form("referer")
    username = Request.Form("user")
    password = Request.Form("psw")
    Set re = New RegExp
    re.Pattern = "^[a-z0-9]+$"
    If re.Test(username) = False Or re.Test(password) = False Then
    session("err") = "speciali"
    session("referer") = referer
    Response.redirect "login.asp"
    end if
    if Len(username) < 6 Or Len(password) < 6 Then
    session("err") = "lunghezza"
    session("referer") = referer
    Response.redirect "login.asp"
    end if
    Dim sc, cn, rs, sql
    sc = "dsn=login_personale.dsn"

    Set cn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")
    cn.Open sc
    sql = "SELECT * FROM personale "
    sql = sql & "WHERE user = '" & username & "'"
    rs.Open sql, cn, 2
    If rs("password") = password Then
    Session("utente") = ucase(rs("user"))
    session("err") = ""
    session("referer") = ""
    session("settore") = rs("settore")
    Session("login") = true 'viene passato questo valore alla pagina protezione.asp
    Application.Lock
    Application("collegati") = Application("registrati") + 1
    Application.UnLock
    Response.redirect url
    Else
    session("err") = "false"
    session("referer") = referer
    Response.redirect "login.asp"
    End If
    session("url") = ""
    rs.Close
    cn.Close
    Set rs = Nothing
    Set cn = Nothing

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    306
    Oppss..Ho risolto, dipendeva dalla espressione regolare, che includeva solo le lettere piccole...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.