Avatar billede madssaw2000 Nybegynder
27. februar 2001 - 15:42 Der er 7 kommentarer og
2 løsninger

Oprettelse i database

Jeg sidder med et login-system som virker fint..nick, email og password gemmes...

Mit problem ligger i at gøre \"nick\" (navnet) unikt. Jeg mangler en kode som tjekker \"nick\"-kolonnen og sender besked tilbage om at der findes en anden med det navn, uden at oprette.
Avatar billede slash Nybegynder
27. februar 2001 - 15:44 #1
inden du inserter nyt brugerdata, laver du en lille diskret select på eksisterende nicks --> findes det indtastede redirecter du til opret siden og beder om at angive et andet nick ellers gem!
Avatar billede slash Nybegynder
27. februar 2001 - 15:46 #2
sql = \"select nick from nickdb where nick=\'\"&request.form(\"nickname\")&\"\'\"
set res = conn.execute(sql)

n = res.eof
if n >= 0 then
  ***nick findes
  response.redirect
else
  update
end if
Avatar billede madssaw2000 Nybegynder
27. februar 2001 - 15:46 #3
du får lige koden:
Vi har gjort et lille forsøg, som er udkommanderet igen.

<%

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"log/db.mdb\") & \";UID=admin;PWD=;\"

\'    strSQL1 = \"SELECT nick FROM users WHERE nick=\'\" & Request.form(\"bnavn\") & \"\'\"
\'    if Conn.Execute (strSQL1) <> \"\" then
\'response \"fejl\"
\'else


    Set rs = Server.CreateObject(\"ADODB.RecordSet\")
    strSQL = \"Select * From users\"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

      rs.AddNew
      rs(\"nick\") = Request.form(\"bnavn\")
      rs(\"password\") = Request.form(\"pas\")
      rs(\"fornavn\") = Request.form(\"rnavn\")
      rs(\"email\") = Request.form(\"email\")
      rs.Update

    rs.Close
    Set rs = Nothing

Conn.Close
set Conn = Nothing

\'end if

%>
Avatar billede nute Nybegynder
27. februar 2001 - 15:47 #4
sql = \"SELECT COUNT(*) as count FROM [usertable] WHERE LOWER(username) = LOWER(\'\" & request(\"username\") & \"\')\"

rs = connection.execute(sql)

if( rs(\"count\") <> \"0\" ) then
  response.redirect \"userexists.asp\"
end if
Avatar billede slash Nybegynder
27. februar 2001 - 15:49 #5
med dit kode:

strSQL1 = \"SELECT nick FROM users WHERE nick=\'\" & Request.form(\"bnavn\") & \"\'\"
set res = Conn.Execute (strSQL1)
n = res.eof
if n >= 0 then
  Response.redirect \"login.asp?mode=1\"
else
***** din update
Avatar billede nute Nybegynder
27. februar 2001 - 15:51 #6
grunnen til at jeg benytter \'LOWER\' er for å forsikre meg om at tegnrekkefølgen i username ikke eksisterer. bare litt extra safety ;)

ellers er jeg også enig med slash sitt forslag...

/nute
Avatar billede madssaw2000 Nybegynder
27. februar 2001 - 15:59 #7
I var lige gode om det :-)
Avatar billede slash Nybegynder
27. februar 2001 - 16:00 #8
glad for at kunne hjælpe ;-)
Avatar billede nute Nybegynder
27. februar 2001 - 16:01 #9
anytime... :)
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