dim strSQL strSQL = "INSERT INTO brugere ([brugernavn],[password],[fornavn],[efternavn],[email]) VALUES ('" & Request.Form("brugernavn") & "','" & Request.Form("password") & "','" & Request.Form("fornavn") & "','" & Request.Form("efternavn") & "','" & Request.Form("email") & "')" SET rs = cn.Execute (strSQL) If rs.BOF Then Response.Write "<h1 align = center>Bruger optaget!</H1>" End If
cn.Close Set cn = Nothing %> <META HTTP-EQUIV="Refresh" CONTENT="2;URL=default.asp"> <h1 align = "Center"><h1>Du er nu bruger</h1></h1>
Den skriver:
ADODB.Recordset fejl '800a0e78'
Den handling, programmet anmodede om, er ikke tilladt, hvis objektet er lukket.
/hp/opret data.asp, linje 14
Formålet med dette script er at den skal gå ind i min db og checke om der er nogen af felterne der svarer til det inde i database og derefter skrive "BRUGER OPTAGET!"...
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.
<BODY BGCOLOR = "lightgreen"> <% SQL = "SELECT * FROM brugere WHERE [brugernavn]='" & Request.Form("brugernavn") & "';" Set rs = cn.Execute(strSQL) IF rs.EOF Then' brugernavne findes ikke rs.Close
dim cn, cnstr set cn = Server.CreateObject("ADODB.Connection") cnstr="Provider=Microsoft.Jet.OLEDB.4.0;" cnstr = cnstr & "Data source=/WINDOWS/Skrivebord/hp/brugere.mdb" cn.Connectionstring = cnstr cn.Open
cn.Close Set cn = Nothing %> <META HTTP-EQUIV="Refresh" CONTENT="2;URL=default.asp"> <h1 align = "Center"><h1>Du er nu bruger</h1></h1> <% ELSE ' brugernavnet findes allerede
strSQL = "SELECT * FROM brugere WHERE [brugernavn]='" & Request.Form("brugernavn") & "';" SET rs = cn.Execute(strSQL) ' Vi vælger alle rækker i tabellen som er lig med det indtastede brugernavn ind i et recordset
IF (rs.BOF OR rs.EOF) THEN
' Der blev ikke fundet nogle records i tabellen ' altså findes brugernavnet ikke ' Vi kører din sql insert SQL = "INSERT INTO brugere ([brugernavn],[password],[fornavn],[efternavn],[email]) VALUES ('" & Request.Form("brugernavn") & "','" & Request.Form("password") & "','" & Request.Form("fornavn") & "','" & Request.Form("efternavn") & "','" & Request.Form("email") & "')" cn.Execute(strSQL) ' Her er det ikke nødvendigt at bruge et recordset, da vi ikke skal hente noget
Response.Write "<META HTTP-EQUIV=""Refresh"" CONTENT=""2;URL=default.asp"">" & vbCrLf &_ "<h1 align = ""Center""><h1>Du er nu bruger</h1></h1>"
ELSE
' brugernavnet findes allerede i tabellen Response.Write "<h1 align = center>Bruger optaget!</H1>"
Nu er problemet jo bare; nu skriver den ikke til databasen! Hvad kan der nu være galt? Den skriver "Du er nu bruger" men den skriver ikke til databasen; Hvad kan det dog skyldes?
Jeg har ændret 2 ting. Indsat linien <% Option Explicit %> aller først i scriptet. (ville have fanget denne fejl) Og så har jeg ændret variablen SQL i starten af din insert til strSQL
strSQL = "SELECT * FROM brugere WHERE [brugernavn]='" & Request.Form("brugernavn") & "';" SET rs = cn.Execute(strSQL) ' Vi vælger alle rækker i tabellen som er lig med det indtastede brugernavn ind i et recordset
IF (rs.BOF OR rs.EOF) THEN
' Der blev ikke fundet nogle records i tabellen ' altså findes brugernavnet ikke ' Vi kører din sql insert SQL = "INSERT INTO brugere ([brugernavn],[password],[fornavn],[efternavn],[email]) VALUES ('" & Request.Form("brugernavn") & "','" & Request.Form("password") & "','" & Request.Form("fornavn") & "','" & Request.Form("efternavn") & "','" & Request.Form("email") & "')" cn.Execute(SQL) ' Her er det ikke nødvendigt at bruge et recordset, da vi ikke skal hente noget
Response.Write "<META HTTP-EQUIV=""Refresh"" CONTENT=""2;URL=default.asp"">" & vbCrLf &_ "<h1 align = ""Center""><h1>Du er nu bruger</h1></h1>"
ELSE
' brugernavnet findes allerede i tabellen Response.Write "<h1 align = center>Bruger optaget!</H1>"
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.