webForumDet fria alternativet

problem

5 svar · 181 visningar · startad av DavidB

DavidBMedlem sedan jan. 20001 140 inlägg
#1

Jag har gjort ett inloggningsscript som man kan logga in på några sidor. Mit problem är registreringen när man kollar om användarnamnet redan finns. När man loggar in spelar det ingen roll om du skriver "Användarnamn" eller "användarnamn" men när du registrerar så har jag gjort en loop som kollar om användarnamnet finns men den skiljer på stora och små bokstäver. Detta gör att det kan finnas en användare som heter "Kalle" och en som heter "kalle", hur gör man så att loopen inte skiljer på stora och små bokstäver. Den ser ut följande:

SQLStmt = "SELECT * From Users"
Set RS = Connection.Execute(SQLStmt)

Do Until RS.EOF
If Request.Form("username") = RS("username") Then 
Response.redirect("loggin.asp")
End If
RS.Movenext
Loop

------------------
// David - Probably the best guy in the world

[Redigerat av DavidB den 10 aug 2000]

@ndersMedlem sedan juni 200026 914 inlägg
#2

hej david!

är det inte enklare att göra jämförelsen direkt i sql-frågan?

SQLStmt = "SELECT * From Users WHERE UCASE (username) = '" & UCASE (Request.Form("username")) & "'"

ovanstående sql-fråga hämtar allt där användarnamnet finns. får du då ingenting tillbaks så är användarnamnet ledigt. smidigt, va? ;) å kejs insensitive.

jag har förutsatt att du använder access, om du använder sql-server heter
motsvarigheten till UCASE() UPPER().

lycka till.

------------------
don't follow your friends -- inflate them

DavidBMedlem sedan jan. 20001 140 inlägg
#3

hur gör man sedan då, förstod inte riktigt. Blir det något sånt här då eller hur blir det?

If RS("username") = "" Then 
Response.redirect("loggin.asp")

------------------
// David - Probably the best guy in the world

jispirMedlem sedan maj 2001547 inlägg
#4

Prova detta det funkar för mig!
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("din databas här"))
SQL="SELECT * from login WHERE login='" & request.form("login") &"'"
set rs=connection.execute(SQL)
if not rs.eof then
response.redirect "upptaget.asp"
end if

det funkar för mig glömm inte byta ut upptaget.asp till din sida

------------------
/Jesper

DavidBMedlem sedan jan. 20001 140 inlägg
#5

Mitt jag skrev först fungerar okså bra men det skiljer på stora och små bokstäver, det är det som är felet.

------------------
// David - Probably the best guy in the world

@ndersMedlem sedan juni 200026 914 inlägg
#6

hej david!

byt ut sql-frågan i jispirs inlägg till den jag skrev igår, så blir det case insensitive. typ anders = Anders.

mvh

------------------
don't follow your friends -- inflate them

Genererad på 375 ms · cache AV · v20260730165559-full.f96bc7eb