Avatar billede mskjoldp Novice
16. november 2004 - 15:11 Der er 11 kommentarer og
1 løsning

login med brug af æ og ø og å og i både bruger og pass

Hej E

ASP kode på en IIS 5.0 med Access DB.

Jeg opretter en bruger med brugernavnet MØT, ingen problemer, men i DB'en står der: MØT
Lad os sige at vi sætter pass til: møt (det samme, bare med småt)

At oprette en bruger og se brugeren er ikke noget problem.. men når brugeren skal logge ind, opstår problemet da der skrives MØT i login feltet, hvilket ikke er det samme som der står i DB'en...

Så hvordan får jeg MØT i loginfeltet til at blive til MØT under sammenligningen med DB'en?

Koden er nu:
If mode = "login" Then
Dim nick, pass, checked, password, ordvar

'Hvis brugeren har submittet login formen
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
'Tjecker om felterner er udfydlt
nick = Trim(Replace(Request.Form("nick"),"'","''" ))
pass = Trim(Replace(Request.Form("adgangskode"),"'","''" ))
checked = Request.Form("huskmig")

If checked <> "" Then
Response.Cookies("piloter")("huskmig") = "True"
End if

If nick <> "" AND pass <> "" Then
Set rs = Conn.Execute("SELECT * FROM bruger WHERE nick='" & nick & "' AND BrugerKode='" & pass & "'")
'Tjecker om brugeren eksisterer

If rs.Eof Or rs.Bof Then
Response.Write("<font color='red'><b>Brugernavnet eksisterer ikke</font></b><br>")
Else
'tjecker om passwordsne matcher hinanden

If rs("BrugerKode") = pass AND rs("nick") = nick Then
'har brugeren valgt at benytte husk mig?
bla bla bla bla....
Else
Response.Write("<font color='red'><b>Adgangskoden er forkert<br></b></font>")
End if

Conn.Execute("UPDATE bruger SET autologin = True WHERE nick='" & nick & "'")
End if

rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
Else
Response.Write("<font color='red'><b>Du har ikke udfyldt felterne</b></font><br>")
End if

End if
End if


/Skjold
Avatar billede mskjoldp Novice
16. november 2004 - 15:12 #1
Det skal lige nævnes at overskriften er præget af Ekspertens kriterier for overskrifter.

Den oprindelige overskrift lyder: Login med brug af æ, ø og å, i både bruger og pass
Avatar billede fennec Nybegynder
16. november 2004 - 15:20 #2
du kan bruge server.HTMLencode() funktionen. Den omdanner alle special tegn til kode (f.eks &#216;) det gælder også æ, ø og å

Set rs = Conn.Execute("SELECT * FROM bruger WHERE nick='" & server.HTMLEncode(nick) & "' AND BrugerKode='" & server.HTMLEncode(pass) & "'")
Avatar billede ldanielsen Nybegynder
16. november 2004 - 15:22 #3
Det der er problemet er at der ikke kommer de korrekte danske bogstaver ind i databasen. Hvordan gemmer du tingene i db'en?
Avatar billede netro Nybegynder
16. november 2004 - 15:25 #4
Det vil jeg også gerne vide. Har en fæl mistanke om, at du anvender HTMLencode på værdierne, inden de indsættes i tabellen.
Avatar billede netro Nybegynder
16. november 2004 - 15:28 #5
Hvordan vil du i øvrigt genkende brugeren ved autologin, når du kun sætter cookie-værdien til sand?
Avatar billede mskjoldp Novice
16. november 2004 - 16:42 #6
netro.. jeg har skåret i koden for kun at henvise til problemet med æ, ø og å .. mit login er mere omfattende en de koder vist her... hvis du vil se dem så nævn det...

fennec.. Jeg prøver lige med server.HTMLencode() funktionen og ser om det løser problemet...

Idanielsen.... koden som sætter værien ind i DB'en er:
            <tr>
              <td width="22%" height="22">&nbsp;</td>
              <td width="78%" bgcolor="#FFFFFF" height="22"><form method="POST" action="piloter.asp?mode=login">
                <input type="text" name="nick" size="10"></td>
            </tr>
            <tr>
              <td width="22%" height="22"></td>
              <td width="78%" bgcolor="#FFFFFF" height="22"><input type="password" name="adgangskode" size="10"></td>
            </tr>
            <tr>
              <td width="22%" height="26">&nbsp;</td>
              <td width="78%" bgcolor="#FFFFFF" height="26"><input type="submit" value="Login" name="submit"></form></td>
            </tr>



mode="login" er de koder der først er vist herover...

Hjalp det Jer til vidre fotståelse?
/Skjold
Avatar billede mskjoldp Novice
16. november 2004 - 16:45 #7
sry Idanielsen.. her den kode der sætter bruger/pass i DB'en:

                Set rs = Server.CreateObject("ADODB.Recordset")
                    strSQL = "SELECT * FROM bruger WHERE Bid=" & hvilken
                        rs.Open strSQL, Conn, 1, 3
                            If Request.ServerVariables("REQUEST_METHOD") = "POST" Then
                                If Not rs.Eof Then
                                    rs("BrugerNavn") = Server.HTMLEncode(Request("navn"))
                                    rs("nick") = Server.HTMLEncode(Request("nick"))
                                    rs("BrugerKode") = Server.HTMLEncode(Request("adgangskode"))
                                    rs("BrugerKode2") = Server.HTMLEncode(Request("adgangskode2"))
                                    rs("BrugerAlder") = Server.HTMLEncode(Request("alder"))
                                    rs("BrugerEmail") = Server.HTMLEncode(Request("email"))
                                    rs("BrugerAdresse") = Server.HTMLEncode(Request("adresse"))
                                    rs("BrugerPostnr") = Server.HTMLEncode(Request("postnr"))
                                    rs("BrugerBy") = Server.HTMLEncode(Request("city"))
                                    rs("BrugerLand") = Server.HTMLEncode(Request("land"))
                                    rs("BrugerTelefon") = Server.HTMLEncode(Request("telefon"))
                                    rs("BrugerMobil") = Server.HTMLEncode(Request("mobil"))
                                    rs("BrugerHjemmeside") = Server.HTMLEncode(Request("hjemmeside"))
                                    rs("BrugerMotto") = Server.HTMLEncode(Request("motto"))
                                    rs("BrugerKlasse") = Server.HTMLEncode(Request("klasse"))
                                    rs("BrugerLokation") = Server.HTMLEncode(Request("lokation"))
                                    rs("admin") = Server.HTMLEncode(Request("admin"))
                                    'rs("visnick") = Server.HTMLEncode(Request("showname")) mulighed taget ud af drift
                                    rs.Update
                                successB = "True"
                                Else
                                fejlkode = "True"
                                End if
                            End if %>
Avatar billede mskjoldp Novice
16. november 2004 - 16:56 #8
Det ser ud til at fennec viste vejen.. så takker fennec

btw er du i hæren/flyvevåbnet?

/Skjold
Avatar billede netro Nybegynder
16. november 2004 - 17:01 #9
Du bør ikke bruge Server.HTMLencode ved indsættelse. Gem altid originalen og formatér så alt det, du vil, når du vil hente den fra databasen igen(!)

rs("BrugerNavn") = Request("navn")

Response.Write Server.HTMLEncode(rs("BrugerNavn"))

Ang. login - nej, du behøver ikke at vise det. Jeg ville blot nævne det, hvis du ikke var opmærksom på det.
Avatar billede mskjoldp Novice
16. november 2004 - 22:31 #10
modtaget
Avatar billede netro Nybegynder
16. november 2004 - 22:36 #11
??
Avatar billede mskjoldp Novice
17. november 2004 - 12:38 #12
netro, jeg har forstået det du skrev, tak for det = modtaget :)
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