logon asp

Tags:    asp

Jeg har et problem som går på at jeg er ved at lave en funktion som opretter en ny bruger, jeg vil så checke om navnet er bruget men kan ikke få det til at virke.
Her er koden så håber der er nogen som kan hjælpe...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title>Mit dokument</title>
</head>
<body>
<form method="POST" action="default.asp" style="margin: 0px;" id = "logon">
<input type="text" name="Navn" value = "Fornavn" size="10">
<input type="text" name="Login" value = "Login" size="10">
<input type="text" name="Password" value = "Password" size ="10">
<input type="submit" value="Opret" name="Action"></form>
<%
navn = Request.Form("Navn")
login = Request.Form("Login")
password = Request.Form("Password")
godkendt = 0
If Request.Form("Action") = "Opret" Then

' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("login_2000.mdb")
Conn.Open DSN
' SQL forespørgsel
strSQL = "Select * from personer"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
Do
if navn = rs("navn") then

godkendt = 0
response.write "inde i godkendt = 0"
Do
rs.movenext

Loop until not rs.eof
else

godkendt = 1
response.write "inde i godkendt = 1"
end if
rs.movenext
Loop while not rs.EOF
Conn.Close
Set Conn = Nothing



if godkendt = 1 then
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("login_2000.mdb")
Conn.Open DSN,1,3


response.write "inde i loopen"
'Opretter ny bruger

' if Navn <> "" and navn <> "Fornavn" and login <> "" and login <> "Login" and password <> "" and password <> "Password" then
strSQL = "Insert into personer(Navn,login,password) values(' " & navn & "','" & login & "','" & password & "')"
' SQL sætning eksekveres
Conn.Execute(strSQL)
' end if
Conn.Close
Set Conn = Nothing
godkendt = 0
end if
' Luk databaseforbindelse

end if
%>
</body>
</html>



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Hej Morten,

Fold kodeboks ind/udKode 


Jeg har lavet nogle småændringer for at give scriptet en bedre performance og for at gøre det lidt mere overskueligt.

Når du skal tjekke om en bruger med samme navn allerede eksistere, er det bedre at gøre det i SQL sætningen.

Fold kodeboks ind/udKode 


Det der sker er at SQL returnerer antallet af rækker hvor navnet er det samme som det brugeren har indtastet. Hvis tallet (Counter) er højere end 0 eksistere brugeren.

Hvis du får denne fejl: "Operation must use an updateable query", er det fordi webserveres bruger IUSR_XXX ikke har skrive adgang til filen. Se følgende link for at løse problemet http://support.microsoft.com/kb/q175168/

Du er meget velkommen til at skrive hvis du har nogen problemer.

Kenneth



Har du en msn adr. eller noget



hvis du laver den der linje om hvordan tjekker jeg som om det er okay altså der skal laves en funktion som tjekker om bruger eller navnet er i database? Jeg er lige begyndt så er ikke helt med på det her?



Hvis det er SQL sætningen du mener skriver du:

Fold kodeboks ind/udKode 


Den SQL sætning tjekker om en bruger med samme navn og login eksistere.

Hvis brugeren eksistere vil oRs("Counter") være 1
Hvis brugeren ikke eksistere vil oRs("Counter") være 0



t