Avatar billede totalpc Seniormester
02. november 2007 - 12:39 Der er 4 kommentarer og
1 løsning

Kodeord skal være casesentiv

Hej
Jeg har en medlemsregistreringssite.
Her logger man ind og kan ændre sit eget kodeord osv. Det virker fint, men er pt ikke casesentivt. Hvis jeg gerne vil lave kodeordtjek case sentiv hvad kræver det så? Data gemmes i en accessbase.

Jeg tjekker et login sådan her:

strSQL = "Select * from medlem where medlemsnr = '" & strmedlemsnr & "' and kodeord = '" & strKodeord & "'"

Og en ændring af kodeord sådan her:

if Request.form("kodeord") <> Request.form("kodeord2") then
  Response.Redirect "opret_medlem.asp?msg=" & Server.URLEncode ("Kodeord stemmer ikke overens.")
end if

Hvordan laver jeg de tjek case sentitive?
Avatar billede nielle Nybegynder
02. november 2007 - 12:50 #1
De er da allerede case-sensitive.

Er du sikker på at du ikke ønsker at gøre dem cas-insenitive?
Avatar billede fennec Nybegynder
02. november 2007 - 12:50 #2
ASP er case sensitive, men det er Access ikke.

Det nemmeste er et lave din første select, også sammenligne i ASP bagefter, hvis den finder et resultat:

set rs = conn.execute("Select * from medlem where medlemsnr = '" & strmedlemsnr & "' and kodeord = '" & strKodeord & "'")
if rs.eof then
  'Bruger findes ikke
else
  if rs("medlemsnr") = strmedlemsnr and rs("kodeord") = strKodeord then
    'Kode passer også case sensitive
  else
    'Kode passer ikke case sensitive
  end if
end if
Avatar billede totalpc Seniormester
02. november 2007 - 13:43 #3
Smid et svar fennec. Lige hvad jeg skulle bruge og en forklaring på hvorfor den ikke allerede er case sensitiv!
Avatar billede fennec Nybegynder
05. november 2007 - 08:22 #4
.o) <-- One Eyed Jack
Avatar billede fennec Nybegynder
05. november 2007 - 08:34 #5
Havde du brugt en anden database (f.eks Ms-SQL eller MySQL) kunne du bare have sat databasen, tabellen eller helt på kolonne niveau til at køre en case sensitive "Collate".

Et par links:
http://dev.mysql.com/doc/refman/5.0/en/charset.html
http://dev.mysql.com/doc/refman/5.0/en/charset-mysql.html

Bemærk at navnene på dem f.eks er:
latin1_danish_ci

"ci" betyder case insensitive, så ændre du det til "cs" så er den case sensitive.

Colaten kan også bestemmes midlertidig i en sellect:
http://dev.mysql.com/doc/refman/5.0/en/charset-collate.html

Din sql kunne så være:
set rs = conn.execute("Select * from medlem where medlemsnr COLLATE latin1_danish_cs  = '" & strmedlemsnr & "' and kodeord COLLATE latin1_danish_cs = '" & strKodeord & "'")

Så ved du det, hvis du engang begynder at arbejde med mere advanceret databaser.
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