Avatar billede Slettet bruger
06. juni 2001 - 12:44 Der er 11 kommentarer og
1 løsning

Forskel på store og små bogstaver

Hejsa!

Jeg har et login-system, som kører ud fra en database.

Der er bare et problem: når man logger ind, er det lige meget om man bruger store eller små tegn i sine login-oplysninger, og det vil jeg ikke have!
Avatar billede slash Nybegynder
06. juni 2001 - 12:46 #1
så kan du sætte din db op til at være case-sensitiv (i hvert fald ved sql-servere) :O)
Avatar billede netsrac Praktikant
06. juni 2001 - 12:46 #2
Avatar billede jonas_html.dk Nybegynder
06. juni 2001 - 12:46 #3
Så brug LCase(strTekst) eller UCase(strTekst) til at gøre brugerens indtastninger uafhængige af om der anvendes store/små bogstaver.

Mvh
Jonas
Avatar billede Slettet bruger
06. juni 2001 - 12:48 #4
Jeg vil bare have det, så hvis ens brugernavn er Philip i databasen, får man fejl hvis man prøver at logge ind med philip
Avatar billede netsrac Praktikant
06. juni 2001 - 12:48 #5
Så kig på mit link...
Avatar billede Slettet bruger
06. juni 2001 - 12:49 #6
En funktion der omregner en streng til ASCII, og en anden der regner den tilbage til almindelig karakterer så man vil kunne benytte f.eks case sensitive password beskyttelse med en database.

>>> JEG FATTER JO IKKE HVAD MANDEN SKRIVER!
Avatar billede Slettet bruger
06. juni 2001 - 12:50 #7
Hvad er ASCII ? ? ? ?
Avatar billede netsrac Praktikant
06. juni 2001 - 12:53 #8
Så download den og kig på kildekoden, der skal jo nok være et eksempel med...
Avatar billede jonas_html.dk Nybegynder
06. juni 2001 - 13:01 #9
philip >> Ups, jeg vendte den lige på hovedet :-)

Prøv at poste koden til det system du benytter nu - jeg tror det er ret simpelt at lave om.

Jonas

Avatar billede Slettet bruger
06. juni 2001 - 13:08 #10
<%
SET RS = Server.CreateObject(\"ADODB.Connection\")
rs.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"brugere.mdb\")

If Request(\"mode\") = \"Check\" then

Function unQuote(strTekst)
  strTekst = Trim(strTekst)
  unQuote = Replace(strTekst,\"%\",\"53\")
End Function

    \' Gemmer formfelterne i Variabler
        strUsername = unQuote(request(\"username\"))
        strPassword = unQuote(request(\"password\"))

  Sql = \"Select Count(*) as Found from brugerne where (username = \'\" & strUsername  & \"\') and (password =\'\" & strPassword  & \"\')\"
  Set LO = RS.Execute(Sql)
  if LO(\"Found\") = 0 then
    Session(\"login\") = 0
    error = \"Du blev ikke godkendt af systemet\"
  else
  strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"brugere.mdb\")
  Set myConn = Server.CreateObject(\"ADODB.Connection\")
  myConn.Open strDSN
  strSQL = \"SELECT * FROM brugerne where (username = \'\" & Request(\"username\") & \"\') and (password =\'\" & Request(\"password\") & \"\')\"
  Set ez = myConn.Execute(strSQL)
    Session(\"ID\") = \"1\"
    EZ.Close
    RS.Close
    Conn.Close
  end if
end if
%>
Avatar billede jonas_html.dk Nybegynder
06. juni 2001 - 14:27 #11
Arhhh - det var sgu ikke som jeg lige troede. Men her er koden i en lettere omskrevet form. Jeg har ikke testet det af - men det skulle gerne funke.

Alternativet er \"Option Compare Binary\" direkte i Access. I den forbindelse fandt jeg et relevant spm og svar fra en FAQ:

Q:Bryan Allen writes that he often uses phonetic fonts where upper case characters correspond to specific sounds, so he needs to do a case-sensitive search in Access.

A:The solution is to use Option Compare Binary in the Declarations section of the module, rather than the default Option Compare Database.  The Binary selection treats upper-case and lower-case letters as separate characters.

Og det skulle du så kunne gøre på denne måde:
http://2fix.bvu.edu/help/apps/access/EA46GZT7T.ASP
Ellers er min kode her:

<%
SET RS = Server.CreateObject(\"ADODB.Connection\")
rs.Open \"Driver={Microsoft Access Driver (*.mdb)}; DBQ=\" & Server.MapPath(\"brugere.mdb\")

If Request(\"mode\") = \"Check\" then

Function unQuote(strTekst)
  strTekst = Trim(strTekst)
  unQuote = Replace(strTekst,\"%\",\"53\")
End Function

\' Gemmer formfelterne i Variabler
strUsername = unQuote(request(\"username\"))
strPassword = unQuote(request(\"password\"))

Session(\"login\") = 0
error = \"Du blev ikke godkendt af systemet\"

Sql = \"Select username, password from brugerne\"
Set LO = RS.Execute(Sql)

Set strDBUsername = LO(\"username\")
Set strDBPassword = LO(\"password\")

Do
  If (strDBUsername = strUsername) And (strDBPassword = strPassword)  Then
    Session(\"ID\") = \"1\"
    error = \"\"
    Exit Do
  End If
  LO.MoveNext
  Loop while not LO.eof

  RS.Close
End if
%>
Avatar billede Slettet bruger
02. juli 2001 - 19:23 #12
Netrac > Den kan jeg ikke bruge!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester