Avatar billede eyes Nybegynder
08. oktober 2002 - 21:13 Der er 8 kommentarer og
2 løsninger

Bruger oprettelse

Jeg skal have lavet noget brugeroprettelse i ASP som kører sammen med Access DB her er lidt kode :

------------------------------------------

<% @language=javascript %>

<%
//læs opl fra form

bnavn = Request("brugernavn");
pwrd = Request("pasword");


//åbn DBforbindelse
    conn = Server.CreateObject("ADODB.Connection");
      DBPath = "DBQ=" + Server.mappath("bruger.mdb");
      conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; " + DBPath);

// lås appl
Application.Lock;

//find største BrugerId og læg 1 til

rs = conn.Execute("SELECT MAX(BrugerId)AS x FROM Bruger");
if(!rs.EOF){
    BrugerId = rs.Fields("x");
    BrugerId = BrugerId + 1;
}

//Indsætte den nye bruger i DB:

conn.Execute("INSERT INTO Bruger VALUES ("+Brugernavn+",'"+pasword+"','"+BrugerId+"')");

// lås appl op
Application.Unlock;

// bekræftelse af oprettelse

rsx = conn.Execute("SELECT * FROM Bruger WHERE BrugerId ="+BrugerId);

%>

Du er nu blevet oprettet med flg oplysninger: <BR>
<%=rsx.Fields("BrugerId")%><BR>
<%=rsx.Fields("bnavn")%><BR>
<%=rsx.Fields("pwrd")%><BR>
<%
//luk DBforbindelse
conn.Close();

%> <a href="loginside.htm">Tilbage til login side</a>

------------------------------------------

Jeg får fejlen

Microsoft JScript runtime

error '800a1391'

'Brugernavn' is undefined

/asp/kundeopret.asp, line 28



linie 28 er
conn.Execute("INSERT INTO Bruger VALUES ("+Brugernavn+",'"+pasword+"','"+BrugerId+"')");




Har lagt siden her
http://www.eye-web.dk/asp/kundeopret.htm
Avatar billede medions Nybegynder
08. oktober 2002 - 21:20 #1
Det er fordi du er nødt til at angive hvilke kolonner i skal sættes ind i.. fx.

conn.Execute("INSERT INTO Bruger (Brugernavne, paswords, Userids)  VALUES ('" & Brugernavn & "','" & pasword & "','" & BrugerId & "')");

//>Rune
Avatar billede the_bma_man Nybegynder
08. oktober 2002 - 21:55 #2
Det er ikke nødvendigt at angive kolonnerne, hvis han indsætter i _alle_ kolonner - og i den rigtigt rækkefølge.

MEN - i starten sættes bnavn=request("brugernavn")
Senere - i INSERTen - bruges brugernavn - dette er en ikke defineret størrelse. Du skal her enten bruge request("brugernavn")  - eller variablen bnavn, som du jo har assignet til brugernavnet.
Avatar billede eyes Nybegynder
08. oktober 2002 - 22:13 #3
login.asp ser sådan her ud

<% @language=javascript %>
<%
bnavn = Request.Form("brugernavn");
pwd = Request.Form("pasword");
   
//skabe forbindelse til databasen uden ODBC

conn = Server.CreateObject("ADODB.Connection");
DBPath = "DBQ=" + Server.mappath("bruger.mdb");
conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; " + DBPath);

// check om bruger  findes

rs = conn.Execute("SELECT * FROM BRUGER WHERE Brugernavn = '"+bnavn+"' AND Pasword = '"+pwd+"'");
if(!rs.EOF){
   
    Response.redirect("hovedside.htm");
}
else
    Response.redirect("forkert.htm");
   
conn.Close();   
%>


og Loginside.htm

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<form name="form" method="post" action="login.asp">
  <table width="200" border="0">
    <tr>
      <td><font size="3">Login side</font></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>Brugernavn</td>
      <td>
        <input type="text" name="brugernavn">
      </td>
    </tr>
    <tr>
      <td>Pasword</td>
      <td>
        <input type="text" name="pasword">
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>
        <input type="submit" name="Login" value="Login">
      </td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>Opret en ny bruger <a href="kundeopret.htm">her</a></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
  </table>
<p>&nbsp;</p></form>
</body>
</html>
Avatar billede eyes Nybegynder
08. oktober 2002 - 22:15 #4
Kolonnerne i DB kommer i denne rækkefølge

| Brugernavn | Pasword | BrugerId |

hvor BrugerId er primær nøgle
Avatar billede the_bma_man Nybegynder
08. oktober 2002 - 22:17 #5
Du skal stadig bruge bnavn og ikke brugernavn i din select.
Avatar billede eyes Nybegynder
08. oktober 2002 - 22:26 #6
dette giver stadig fejl

conn.Execute("INSERT INTO Bruger VALUES ("+bnavn+",'"+pwrd+"','"+BrugerId+"')");
Avatar billede the_bma_man Nybegynder
09. oktober 2002 - 13:20 #7
strSQL = "INSERT INTO bruger VALUES('" & bnavn & "', '" & pwrd & "'," & BrugerId & ")"
conn.Execute strSQL
Avatar billede eyes Nybegynder
09. oktober 2002 - 15:26 #8
får fejlen

Microsoft JScript compilation error '800a03ec'

Expected ';'

/asp/kundeopret.asp, line 29

conn.Execute strSQL
-------------^

Har prøvet at lave ; efter den nederste og øverste, men det hjælper ikke
Avatar billede medions Nybegynder
09. oktober 2002 - 15:32 #9
strSQL = "INSERT INTO bruger VALUES('" & bnavn & "', '" & pwrd & "'," & BrugerId & ");"
Conn.Execute(strSQL)

//>Rune
Avatar billede eyes Nybegynder
09. oktober 2002 - 15:52 #10
Det virker med lidt omrokering

conn.Execute("INSERT INTO bruger VALUES('" + bnavn + "', '" + pwrd + "'," + BrugerId + ")");
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