Avatar billede weiland Nybegynder
24. september 2002 - 09:51 Der er 9 kommentarer og
1 løsning

KapiTalEr skal betyde noget!

Folk skal angive passwords for at logge sig på min hjemmeside.
Fx har Bruger1 passwordet "iyHR98j", men han kunne lige så godt skrive "iyhr98j", for jeg ved ikke, hvordan man undersøger forskellen på STORE og små bogstaver.

Hvordan skal nedenstående SQL ændres, så der bliver tjekket for kapitaler?

SQL = "SELECT * FROM Players WHERE (PlayerID = "& PlayerID &") AND (Password = '"& Password &"')"
Avatar billede half_d Nybegynder
24. september 2002 - 09:57 #1
Hvilken typer database er det?
MSSQl, MySQL, Accesse?
Avatar billede weiland Nybegynder
24. september 2002 - 10:01 #2
Det er Access
Avatar billede half_d Nybegynder
24. september 2002 - 10:09 #3
Så vidt jeg ved er Access case insensitive pr. standard opsætning.
Det kan man vist ændre ved at ændre windows opsætning for case, men det er at fucke lidt rundt og jeg har ingen idé hvordan man gør. (Jeg er Mac mand)
Men her er et link til noget spændende :
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q95605

// Halfdan
Avatar billede cyb Nybegynder
24. september 2002 - 10:36 #4
Du er helt forkert på den. Det er meget nemmere at nøjes med at udvælge passwordet og sammeligne det i koden, så behøver du slet ikke slås med cases.
Avatar billede cyb Nybegynder
24. september 2002 - 10:37 #5
SQL = "SELECT Password FROM Players WHERE (PlayerID = "& PlayerID &")"
if (rs("Password") = password) then
  Session("login") = true
else
  Session("login") = false
end if
Avatar billede weiland Nybegynder
24. september 2002 - 10:47 #6
cyb: Betyder din fremgangsmåde, at "iHJ6Yui" accepteres, men "ihj6yui" afvises?
Avatar billede cyb Nybegynder
24. september 2002 - 10:51 #7
Jep :-)
Avatar billede weiland Nybegynder
24. september 2002 - 11:06 #8
Hmm, det virker!
Jeg forstår umiddelbart ikke, hvad der er forskellen på min oprindelige SQL-sætning og så din løsning....

Hvad er forskellen?
Avatar billede cyb Nybegynder
24. september 2002 - 11:39 #9
I din oprindelige sql lod du databasen tjekke om passwordet var rigtigt. Dette duer ikke da databasen ikke laver casesentitive tekstsammenligning, men ved at trække passwordet ud (som vil være i rigtig case - da databasen gemmer og hendter tekststrenge i korekt case) og lade ASP tjekke om passwordtet er rigtigt vil du have kontrolen over sammenligningen.
Jeg viste hvordan det kunne gøres med casesensetiv - ASP sammenligner tekststrenge med hensyntagen til store og små bogstaver. Men du kunne i princippet også skrive :
if (lCase(rs("Password")) = lCase(password)) then
hvis du ville have det skulle være uden casesensetivt.

- Cyb
Avatar billede weiland Nybegynder
24. september 2002 - 11:44 #10
OK, så blev jeg så meget klogere :-)
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