Avatar billede gatez Nybegynder
18. maj 2003 - 20:32 Der er 11 kommentarer og
1 løsning

Brugernavn kun 1 gang

Hvordan laver jeg dette script om sådan at hvis en bruger prøver at oprette et brugernavn som allerade er i databasen så skal der komme en fejl ?

Her er min kode:

<%
Response.Buffer = True

brugernavn = Request("brugernavn")
fornavn = Request("fornavn")
password = Request("password")
efternavn = Request("efternavn")
postnummer = Request("postnummer")
land = Request("land")
email = Request("email")

Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../Database/bodykits.dk/brugersystem.mdb") & ";UID=admin;PWD=;"

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From bruger"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
%>
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then       
               
                if brugernavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal vælge et brugernavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
                             
                if fornavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal skrive dit fornavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if efternavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal skrive dit efternavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if password = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal vælge et password!. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if postnummer= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal angive dit postnummer!. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if land= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal angive hvilket land du bor i. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if email= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal indtaste en e-mail adresse. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
                   
                    if fornavn <> "" AND land <> "" AND brugernavn <> "" AND password <> "" AND efternavn <> "" AND email <> "" AND postnummer <> "" then
                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                    rs("fornavn") = Request.form("fornavn")
                      rs("password") = Request.form("password")
                      rs("efternavn") = Request.form("efternavn")
                      rs("website") = Request.form("website")
                      rs("email") = Request.form("email")
                      rs("land") = Request.form("land")
                      rs("postnummer") = Request.form("postnummer")
                      rs("alder") = Request.form("alder")
                      rs("profiltekst") = Request.form("profiltekst")
                      rs("vip") = "Nej"
                      rs("hits") = "0"
                    rs.update
                    Response.Redirect("login.asp?besked=Din bruger er nu oprettet og klar til at logge ind.")
                    end if
                    end if
%>
Avatar billede arne_v Ekspert
18. maj 2003 - 20:35 #1
Hvis du i databasen enten lader brugernavn være primær nøgle eller
laver et uniks index på brugermavn, så vil du få en fejl ved duplikat.

[jeg er ikke ASP kyndig så jeg kan ikke sige dig hvordan du fanger det i ASP]
Avatar billede gatez Nybegynder
18. maj 2003 - 20:36 #2
Jeg vil helst have det i asp... Men ellers tak...
Avatar billede -master-d- Nybegynder
18. maj 2003 - 20:37 #3
Brug den her :

<%
Response.Buffer = True

brugernavn = Request("brugernavn")
fornavn = Request("fornavn")
password = Request("password")
efternavn = Request("efternavn")
postnummer = Request("postnummer")
land = Request("land")
email = Request("email")

Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../Database/bodykits.dk/brugersystem.mdb") & ";UID=admin;PWD=;"

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From bruger"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
%>
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then       
strSQL2 = "Select * From bruger Where Brugernavn = '"& Request.form("brugernavn") &"'"
rs2.Open strSQL2, Conn, adOpenKeyset, adLockOptimistic
If rs2.bof or rs2.eof then         
                if brugernavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal vælge et brugernavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
                             
                if fornavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal skrive dit fornavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if efternavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal skrive dit efternavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if password = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal vælge et password!. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if postnummer= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal angive dit postnummer!. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if land= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal angive hvilket land du bor i. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if email= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal indtaste en e-mail adresse. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
                   
                    if fornavn <> "" AND land <> "" AND brugernavn <> "" AND password <> "" AND efternavn <> "" AND email <> "" AND postnummer <> "" then
                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                    rs("fornavn") = Request.form("fornavn")
                      rs("password") = Request.form("password")
                      rs("efternavn") = Request.form("efternavn")
                      rs("website") = Request.form("website")
                      rs("email") = Request.form("email")
                      rs("land") = Request.form("land")
                      rs("postnummer") = Request.form("postnummer")
                      rs("alder") = Request.form("alder")
                      rs("profiltekst") = Request.form("profiltekst")
                      rs("vip") = "Nej"
                      rs("hits") = "0"
                    rs.update
                    Response.Redirect("login.asp?besked=Din bruger er nu oprettet og klar til at logge ind.")
                    end if
            end if
                    end if
%>
Avatar billede Slettet bruger
18. maj 2003 - 20:40 #4
Du kunne sætte et check ind først:
Lav en select i databasen:
strSQL = "Select * From bruger where bruger = '" & brugernavn & "'"
rsBruger.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
If not rsBruger.EOF then
Response.Write "Brugernavnet findes allerede i databasen.
end if
Avatar billede eagleeye Praktikant
18. maj 2003 - 20:40 #5
Det er nemere at bruge dette, du bruger alderrede et recordset og kan lige så godt udnytte det:


    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From bruger WHERE brugernavn = '" & brugernavn & "'"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
    if NOT rs.EOF then
      Response.write "Brugernavnet findes, brug et andet."
    else
%>

  'DET KODE DU HAR NU SOMN LIGGER I DATABASEN

<%
  end if
%>
Avatar billede gatez Nybegynder
18. maj 2003 - 20:40 #6
Hejsa Master-D
Jeg for desværre denne fejl:

Microsoft VBScript runtime error '800a01a8'

Object required: 'rs2'

/adduser-gem.asp, line 23
Avatar billede Slettet bruger
18. maj 2003 - 20:41 #7
Hmm mine fingre er ikke så hurtig på tastaturet mere :-)
Avatar billede arne_v Ekspert
18. maj 2003 - 20:44 #8
Det var heller ikke et svar.

Fordelen ved at lave det i databasen er at det altid virker.

Alle forsøg med:

hvis brugernavn ikke eksisterer så opret bruger

duer ikke i en mange-bruger kontekst.

Principielt kan testet om brugeren eksisterer returnere nej og
så kan en anden session oprette brugeren inden den første bruger
får oprettet brugeren.

Der findes måder at løse det på ved at LOCK'e tabel, men det er
langt nemmere med primær nøgle eller unik index og så bare
en fejl-håndtering i databasen.
Avatar billede gatez Nybegynder
18. maj 2003 - 20:46 #9
Jeg kan slet ikke få det til at virke..... Er der ikke en der kan skrive hele kode som jeg så bare skal sætte ind ? Jeg alle mulige mærklige fejl når jeg selv prøver :-)
Avatar billede eagleeye Praktikant
18. maj 2003 - 20:49 #10
<%
Response.Buffer = True

brugernavn = Request("brugernavn")
fornavn = Request("fornavn")
password = Request("password")
efternavn = Request("efternavn")
postnummer = Request("postnummer")
land = Request("land")
email = Request("email")

Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../Database/bodykits.dk/brugersystem.mdb") & ";UID=admin;PWD=;"

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From bruger WHERE brugernavn = '" & brugernavn & "'"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
    if NOT rs.EOF then
      Response.write "Brugernavnet findes, brug et andet."
    else
%>
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then       
               
                if brugernavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal vælge et brugernavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
                             
                if fornavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal skrive dit fornavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if efternavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal skrive dit efternavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if password = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal vælge et password!. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if postnummer= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal angive dit postnummer!. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if land= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal angive hvilket land du bor i. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if email= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal indtaste en e-mail adresse. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
                   
                    if fornavn <> "" AND land <> "" AND brugernavn <> "" AND password <> "" AND efternavn <> "" AND email <> "" AND postnummer <> "" then
                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                    rs("fornavn") = Request.form("fornavn")
                      rs("password") = Request.form("password")
                      rs("efternavn") = Request.form("efternavn")
                      rs("website") = Request.form("website")
                      rs("email") = Request.form("email")
                      rs("land") = Request.form("land")
                      rs("postnummer") = Request.form("postnummer")
                      rs("alder") = Request.form("alder")
                      rs("profiltekst") = Request.form("profiltekst")
                      rs("vip") = "Nej"
                      rs("hits") = "0"
                    rs.update
                    Response.Redirect("login.asp?besked=Din bruger er nu oprettet og klar til at logge ind.")
                    end if
                    end if
  end if    'Tjek på: NOT rs.EOF
%>
Avatar billede Slettet bruger
18. maj 2003 - 20:50 #11
<%
Response.Buffer = True

brugernavn = Request("brugernavn")
fornavn = Request("fornavn")
password = Request("password")
efternavn = Request("efternavn")
postnummer = Request("postnummer")
land = Request("land")
email = Request("email")

Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../Database/bodykits.dk/brugersystem.mdb") & ";UID=admin;PWD=;"

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From bruger"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
%>
<% if Request.ServerVariables("REQUEST_METHOD") = "POST" then       
strSQL2 = "Select * From bruger Where Brugernavn = '"& Request.form("brugernavn") &"'"
  Set rs2 = Server.CreateObject("ADODB.RecordSet")
  rs2.Open strSQL2, Conn, adOpenKeyset, adLockOptimistic
If rs2.bof or rs2.eof then         
                if brugernavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal vælge et brugernavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
                             
                if fornavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal skrive dit fornavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if efternavn = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal skrive dit efternavn. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if password = "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal vælge et password!. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if postnummer= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal angive dit postnummer!. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if land= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal angive hvilket land du bor i. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
               
                if email= "" then
                    Response.Write("<span class='skrift'><font face='Verdana' color='#FF3300'><center><b>Du skal indtaste en e-mail adresse. Gå venligst tilbage og prøv igen. Tak!</b><br></font></span><br><br></center>")
                end if
                   
                    if fornavn <> "" AND land <> "" AND brugernavn <> "" AND password <> "" AND efternavn <> "" AND email <> "" AND postnummer <> "" then
                    rs.AddNew
                    rs("brugernavn") = Request.form("brugernavn")
                    rs("fornavn") = Request.form("fornavn")
                      rs("password") = Request.form("password")
                      rs("efternavn") = Request.form("efternavn")
                      rs("website") = Request.form("website")
                      rs("email") = Request.form("email")
                      rs("land") = Request.form("land")
                      rs("postnummer") = Request.form("postnummer")
                      rs("alder") = Request.form("alder")
                      rs("profiltekst") = Request.form("profiltekst")
                      rs("vip") = "Nej"
                      rs("hits") = "0"
                    rs.update
                    Response.Redirect("login.asp?besked=Din bruger er nu oprettet og klar til at logge ind.")
                    end if
            end if
                    end if
%>
Avatar billede gatez Nybegynder
18. maj 2003 - 20:53 #12
Takker eagleeye det virker nu... Takker!

Det virker som om du kender godt til asp... Jeg har et andet spørgsmål på:http://www.eksperten.dk/spm/354153
Om du kan svar der ? Tak!
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