19. maj 2002 - 16:44Der er
19 kommentarer og 2 løsninger
Tjek brugernavn i databasen
Når en bruger opretter et brugernavn, vil jeg gerne have tjekket at der ikke er to brugere der har det samme brugernavn. Men hvordan undersøger jeg det??
Jeg har forestillet mig at brugeren godt må have samme brugernavn så længe at koden er forskelllig.
Formfeltet hedder "brugernavn" hvor brugeren skriver sit brugernavn, og "kode" hvor der skrives password.
Her er mine koder hvor der skrives til databasen, men valideringen skal vel ske før??
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det hurtigste er at søge efter en record med det pågældende brugernavn:
set rs = conn.execute("select brugernavn from tabellen where brugernavn = '" & request("brugernavn") & "'")
Så tjekker du for end of file - hvis den er end of file findes brugernavnet ikke, og så kan du godt oprette en ny bruger med det brugernavn - ellers kan du ikke:
if rs.eof then
'opret bruger koden her
else
response.write "Sorry pal, brugernavnet er allerede taget"
<% 'opretter forbindelse til databasen medlem Set Rs = Server.CreateObject ("ADODB.Connection") set rec = server.createobject("ADODB.recordset") Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../cinemax/db/medlem.mdb") Rec.open "bruger", Rs, 2, 3
While Not rec.EOF If rec("brugernavn") = Request.QueryString("brugernavn") Response.Write("Brugeren findes i forvenen!") Else 'brugers oplysninger lægges i databasen Rec.Addnew Rec("brugernavn") = Request ("brugernavn") Rec("kode") = Request ("kode")
medions: hvorfor åbner du hele tabellen og looper gennem hele recordsettet - du kan bare bruge "SELECT id FROM tabelnavn WHERE brugernavn = '"& request("brugernavn") &"'" - så undgår du at sætte maskinen til at lave en masse ekstra arbejde!
Husk at skrive dit rigtige tabelnavn i begge sqlstrengene!
<% 'henter variabler ind strBrugernavn = replace(request("brugernavn"),"'","''") strKode = replace(request("kode"),"'","''")
'instantierer og åbner connection set cn = server.createobject("adodb.connection") cn.open "Provider=Microsoft.Jet.OleDb.4.0;Data Source="&server.MapPath("../cinemax/db/medlem.mdb")
'tjekker om brugernavn er taget set rs = cn.execute("SELECT brugernavn FROM tabelnavn WHERE brugernavn = '"&strBrugernavn&"'")
if rs.eof then 'brugernavn er ikke taget, så opretter bruger cn.execute("INSERT INTO tabelnavn (brugernavn, kode) VALUES ('"&strBrugernavn&"','"&strKode&"')") response.write "Bruger oprettet!" else 'brugernavn er allerede taget, så viser fejlbesked response.write "Brugernavnet er allerede taget - vælg et andet og prøv igen!" end if
'lukker connection og rydder op cn.close set rs = nothing set cn = nothing %>
<% 'opretter forbindelse til databasen medlem Set Rs = Server.CreateObject ("ADODB.Connection") set rec = server.createobject("ADODB.recordset") Rs.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("../cinemax/db/medlem.mdb") Rec.open "bruger", Rs, 2, 3
'Her tjekkes om brugernavnet allerede eksistere set rs = conn.execute("select brugernavn from bruger where brugernavn = '" & request("brugernavn") & "'") if rs.eof then
'brugers oplysninger lægges i databasen Rec.Addnew
Jeg ved:) at det virker nu, men når brugernavnet aller eksistere så skriver den:
response.write "Brugernavnet er allerede taget osv." - men jeg vil gerne have den til at gå tilbage til formfeltet hvor der fx. skal stå med rød skrift ud for Brugernavn, - "Vælg et nyt brugernavn..
Er der en der ved hvad jeg skal gøre for at få Redirect, så jeg skal skrive hvad fejlen er på siden, og ikke via en alert??
Synes godt om
Ny brugerNybegynder
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.