Avatar billede fun22 Nybegynder
13. oktober 2002 - 12:44 Der er 8 kommentarer og
1 løsning

Komplet kode til oprettelse af bruger.

Er der ikke en venlig sjæl der gider at lave en kode til at oprette brugere i en access database? Databasen hedder logins, og har en tabel der hedder users. I den tabel er der tre felter uid (brugernavn) pwd (password) email (ja gæt en gang). Det skal være sådan at brugeren får en meddelelse hvis brugernavnet er optaget, og hvis der er nogle felter der mangler at blive udfyldt. Nu har jeg prøvet med så mang forskldige slags oprettelses systemmer men har ikke kunnet få nogen af dem til at virke. Enten så siger den at brugernavnet er optaget selvom det ikke er eller også virker den funktion slet ikke. På forhånd tak!
Avatar billede eagleeye Praktikant
13. oktober 2002 - 13:02 #1
Jeg gider ikke lave det men jeg kan vise det jeg har tilrette til dit spørgsmål så godt som muligt, så kan du selv rette det helt til..:


Her er indtastnings form'en:


<table border="1">
<form method="post" action="opret.asp" name="newmember">
  <tr><td colspan="2">Jeg vil gerne oprettes som bruger.</td>
  <tr><td>Brugernavn</td><td><input type="text" name="username"></td></tr>
  <tr><td>Password:</td><td><input name="passowrd"></td></tr>
  <tr><td>Email:</td><td><input type="text" name="email"></td></tr> 
  <tr><td colspan="2" align="center"><input type="submit" value="Tilmeld" name="Action"></td></tr>
</form>
</table> 


Her er koden som oprette brugeren i databasen..:

<HTML>
<head>
<META HTTP-EQUIV=Refresh CONTENT="5; URL=login.asp">
</head>
<body><center>
<%
function fixString(strInput)
  if len(strInput) > 0 then
    outString = replace(strInput,"'","")
    fixString = outString
  else
    fixString = strInput
  end if
end function

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "Data Source="&server.MapPath("login.mdb")&";Provider=Microsoft.Jet.OLEDB.4.0;"

  Set rs = Server.CreateObject("ADODB.RecordSet")

  brugernavn = fixString(Request.Form("username"))
  password = fixString(Request.Form("passowrd"))
  email = fixString(Request.Form("email"))
 
  err = 0 'Antager der ingen fejl er.
  if len(brugernavn) = 0 then
    err = 1
    Response.Write "Ingen brugernavn angivet prøv igen.<br>"
  end if
  if len(pawword) = 0 then
    err = 1
    Response.Write "Ingen password angivet prøv igen.<br>"
  end if
  if InStr(email,"@") = 0 or InStr(email,".") = 0 or len(email) < 6 then
    err = 1
    Response.Write "Ingen email adresse angivet prøv igen.<br>"
  end if
 
  if err = 0 then
    strSQL= "SELECT * FROM users WHERE brugernavn = '" & brugernavn & "' OR email = '" & email & "';"
    Set rs = Conn.Execute (strSQL)

    if (rs.EOF AND rs.BOF) then
      'OPRET BRUGERTEET
   
      strSQL = "INSERT INTO users (brugernavn, pwd, email) "
      strSQL = strSQL & "VALUES ("
      strSQL = strSQL & "'" & brugernavn & "',"
      strSQL = strSQL & "'" & password & "',"
      strSQL = strSQL & "'" & email & "'"
      strSQL = strSQL & ");"
   
      conn.execute(strSQL)
   
      Response.Write "Du er nu oprettet som bruger"
    else
      Response.Write "Brugernavnet er taget eller der er en bruger med samme email adresse, prøv et andet."
    end if
  end if 'Err = 0
 
  Conn.Close
else
  Response.Redirect("login.asp")
end if
%>
<br><br>
Du vil automatisk bliver stillet om til login siden inden for 5 sekuner.
</center>
</body>
</HTML>
Avatar billede fun22 Nybegynder
13. oktober 2002 - 15:53 #2
kun en fejl. Den omdiagere til login.asp med det samme. Jeg får ikke changsen for at indtaste noget.
Avatar billede hossein Nybegynder
13. oktober 2002 - 21:03 #3
Avatar billede the_bma_man Nybegynder
14. oktober 2002 - 09:28 #4
Og du er kommet ind på siden, via en anden side, hvor du har udfyldt en formular med de omtalte felter?
Avatar billede fun22 Nybegynder
14. oktober 2002 - 13:45 #5
nej jeg har felterne og koden på samme side som hedder opret.asp
Avatar billede eagleeye Praktikant
14. oktober 2002 - 16:50 #6
det hele skal ligges samme i en fil sådan her og kalde den opret.asp



<HTML>
<head>
</head>
<body><center>
<%
function fixString(strInput)
  if len(strInput) > 0 then
    outString = replace(strInput,"'","")
    fixString = outString
  else
    fixString = strInput
  end if
end function

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open "Data Source="&server.MapPath("login.mdb")&";Provider=Microsoft.Jet.OLEDB.4.0;"

  Set rs = Server.CreateObject("ADODB.RecordSet")

  brugernavn = fixString(Request.Form("username"))
  password = fixString(Request.Form("passowrd"))
  email = fixString(Request.Form("email"))
 
  err = 0 'Antager der ingen fejl er.
  if len(brugernavn) = 0 then
    err = 1
    Response.Write "Ingen brugernavn angivet prøv igen.<br>"
  end if
  if len(pawword) = 0 then
    err = 1
    Response.Write "Ingen password angivet prøv igen.<br>"
  end if
  if InStr(email,"@") = 0 or InStr(email,".") = 0 or len(email) < 6 then
    err = 1
    Response.Write "Ingen email adresse angivet prøv igen.<br>"
  end if
 
  if err = 0 then
    strSQL= "SELECT * FROM users WHERE brugernavn = '" & brugernavn & "' OR email = '" & email & "';"
    Set rs = Conn.Execute (strSQL)

    if (rs.EOF AND rs.BOF) then
      'OPRET BRUGERTEET
   
      strSQL = "INSERT INTO users (brugernavn, pwd, email) "
      strSQL = strSQL & "VALUES ("
      strSQL = strSQL & "'" & brugernavn & "',"
      strSQL = strSQL & "'" & password & "',"
      strSQL = strSQL & "'" & email & "'"
      strSQL = strSQL & ");"
   
      conn.execute(strSQL)
   
      Response.Write "Du er nu oprettet som bruger"
    else
      Response.Write "Brugernavnet er taget eller der er en bruger med samme email adresse, prøv et andet."
    end if
  end if 'Err = 0
 
  Conn.Close
else
<%
<table border="1">
<form method="post" action="opret.asp" name="newmember">
  <tr><td colspan="2">Jeg vil gerne oprettes som bruger.</td>
  <tr><td>Brugernavn</td><td><input type="text" name="username"></td></tr>
  <tr><td>Password:</td><td><input name="passowrd"></td></tr>
  <tr><td>Email:</td><td><input type="text" name="email"></td></tr> 
  <tr><td colspan="2" align="center"><input type="submit" value="Tilmeld" name="Action"></td></tr>
</form>
</table> 
%>
end if
%>
</center>
</body>
</HTML>
Avatar billede fun22 Nybegynder
14. oktober 2002 - 19:05 #7
den siger at der ikke er indtastet noget brugernavn selvom der er. nanvene på tekstfeltet brugernavn og oppe i tjek funktionen er den samme
Avatar billede eagleeye Praktikant
14. oktober 2002 - 19:17 #8
Jeg kan se en fejl ved den som tjekker for passwordet..:

  if len(pawword) = 0 then      '<------------- SKAL VÆRE len(password)
    err = 1
    Response.Write "Ingen password angivet prøv igen.<br>"
  end if
Avatar billede fun22 Nybegynder
14. oktober 2002 - 19:33 #9
har fundet ud af det, og det virker tak for hjælpen
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