14. oktober 2002 - 11:45
Der er
23 kommentarer
Hvordan gør jeg det?
Hej jeg prøver på at lave en adm. til en nyhedsdel, hvor jeg kan opret, rette og slette. Jeg har prøvet med flere af de funktioner man kan finde på nette, men det flader altid ud i at, jeg for en masse fejl. (nok fordi jeg ikke forstår programmeringssproget). Er der nogen der kan hjælpe mig med noget der kan komme til at virke?
Annonceindlæg fra Infor
14. oktober 2002 - 12:11
#1
14. oktober 2002 - 12:30
#2
Tak! Jeg vil forsøge om jeg kan gennemskue det
14. oktober 2002 - 12:31
#3
:)
15. oktober 2002 - 00:20
#4
Nu har jeg prøvet at fumle mig frem til noget og kan nu oprette, men får denne fejl når jeg vil slette: Microsoft VBScript runtime error '800a01a8' Object required: '' /admin/administrator/ret_main.asp, line 18 og koden ser sådan ud: <!--------#include file="../pro-lag.inc"-----> <!-- #INCLUDE FILE="../brugercheck.inc" --> <% 'Option Explicit Dim Conn, DSN, sltid, strSQL, rs Response.Buffer=True %> <% Set Connect = Server.CreateObject("ADODB.Connection") connString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../log/adm.mdb") Connect.Open connString %> <% sltid = Request.Querystring("sltid") If sltid <> "" Then strSQL = "Delete From tabel Where ID = " & Request.Querystring("sltid") Conn.Execute(strSQL) Response.Redirect ("ret_main.asp") Response.Write ("Den valgte menu er nu slettet!") Else end if %> <html> <head> <title>Ret menukortet - ret.asp</title> <LINK href="../style_test.css" type=text/css rel=stylesheet> <script language="JavaScript"> function erdusikker() { sikker = confirm('Er du helt sikker??? Du kan ikke fortryde dit valg!'); if(sikker == true) { return true; } else { return false; } } </script> </head> <body BACKGROUND="../IMAGES/T.GIF" bgproperties="fixed" topmargin="15"> <% If Request.QueryString("Id") = "tom" Then %> <% ElseIf Request.QueryString("Id") = "" Then %> <br><br> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber3"> <tr> <td width="150" style="border-bottom: 1px solid #000000" > </td> <td width="500" style="border-bottom: 1px solid #000000" ><font face="verdana" size="2">Administration i det valgte område = <font color="#FF0000">Frokost menu</font></font></td> </tr></table> </center> </div> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber2"> <tr> <td width="150" valign="top"><!---#include file="menu_includ.asp"---></td> <td width="500" valign="top"> <FORM method="get" name="navn" action="ret_main.asp"> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber3"> <tr> <td width="26" bgcolor="#FFCC66"><p align="center"><b><font face="Verdana" size="1">| RET |</font></b></td> <td width="32" bgcolor="#FFCC66"><p align="center"><b><font face="Verdana" size="1"> SLET |</font></b></td> <td width="325" bgcolor="#FFCC66"><b><font face="Verdana" size="1">TEKST</font></b></td> <td width="55" bgcolor="#FFCC66"><b><font face="Verdana" size="1">| PRIS</font></b></td> <td width="81" bgcolor="#FFCC66"><b><font face="Verdana" size="1">| ÆNDRING</font></b></td> </tr> <% Set rs = Connect.Execute("SELECT * FROM " & Request.QueryString("tabel")) Do While Not rs.EOF %> <tr> <td width="26"><font face="Verdana" size="1" color="#FFFFFF"><p align="center"><a href="ret.asp?id=<%=rs("ID")%>"><img name="p2" border="0" src="ret.gif" onMouseover="changeImg('ret1.gif', 'p2')" onMouseout="changeImg('ret.gif', 'p2')"></a></font></td> <td width="32"><font face="Verdana" size="1" color="#FFFFFF"><p align="center"><%Response.Write "<a href='ret_main.asp?sltid=" & rs("ID") & "' onclick='return(erdusikker())')><img border=0 src=delete.gif></a>"%></font></td> <td width="325" valign="top"><b><font face="Verdana" size="1" color="#000000"><%=rs("Navn")%></b><br><%Response.Write rs("Tekst")%></font></td> <td width="55" valign="bottom"><font face="Verdana" size="1" color="#000000">kr. <%=rs("Pris")%>,-</font></td> <td width="81" valign="bottom"><font face="Verdana" size="1" color="#000000"><p align="center"><%=rs("Dato")%></font></td> </tr> <tr> <td width="519" colspan="5"> <p align="center"><font style="font-size: 6pt"></font></p><hr color="#FFCC66" width="91%" size="1"></td> </tr> <% rs.MoveNext loop End if ' End if %> </table> </FORM> </td> </tr> </table> </center> </div> </body> </html> Er der nogen der kan gennemskue det???????
15. oktober 2002 - 00:21
#5
Linie 18 = Conn.Execute(strSQL)
15. oktober 2002 - 08:29
#6
Du skriver: Conn.Execute(strSQL) Men lidt tidligere definerer du din connection til at hedde connect: Set Connect = Server.CreateObject("ADODB.Connection") Prøv at rette det til connect.execute(strSQL) - eller kald din connection for conn.
15. oktober 2002 - 09:36
#7
Det hjalp at rette til conn. Nu kan jeg slette, men får så denne fejl: Response object error 'ASP 0156 : 80004005' Header Error /admin/administrator/ret_main.asp, line 19 The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content. Linie 19 = Response.Redirect ("ret_main2.asp")
15. oktober 2002 - 09:53
#8
Linie 19 = Response.Redirect ("ret_main.asp")
15. oktober 2002 - 09:59
#9
Dine to includes skriver ikke noget ud, vel? I det, du laver din første response.write eller bare noget html, bliver http-headerne skrevet - og du kommer så med noget tekst efterfølgende. Og når først dette er sket, kan du ikke rette i http-headerne mere. Og det er faktisk lige akkurrat det, der sker, når man laver en response.redirect. Så prøv at checke, at du ikke har dannet output endnu.
15. oktober 2002 - 10:07
#10
Jeg har lige prøvet om jeg kunne få rettefunktionen til at virke efter at jeg har rettet til conn., men også her får jeg fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement. /admin/administrator/ret.asp, line 109 linie 9 = Conn.Execute(strSQL) Hele siden ser sådan ud: <!--------#include file="../pro-lag.inc"-----> <% 'Option Explicit Dim Conn, DSN, retid, strSQL, rs, strGammelNyhed, frmRetid, strNyhed, strNavn, VisNyheder Response.Buffer=Valid %> <% Set Conn = Server.CreateObject("ADODB.Connection") connString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../log/safarinews.mdb") Conn.Open connString %> <html> <head> <title>Ret Menu</title> </head> <body background="../images/t.gif" topmargin="15"> <br><br> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber3"> <tr> <td width="150" style="border-bottom: 1px solid #000000" > </td> <td width="500" style="border-bottom: 1px solid #000000" ><font face="verdana" size="2">Administration i det valgte område = <font color="#FF0000">Nyheder</font></font></td> </tr></table> </center> </div> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber2"> <tr> <td width="150" valign="top"><!---#include file="menu_includ.asp"---></td> <td width="500"> <% If Request.Querystring("retid") <> "" Then retid = Request.Querystring("retid") strSQL ="Select * From News Where ID =" & retid Set rs = Conn.Execute("SELECT * FROM " & Request.QueryString("tabel")) do while not rs.eof %> <FORM method="get" name="rettet" action="rettet.asp"> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="500" id="AutoNumber1"> <tr> <td width="100%" align="left"> </td> </tr> </table> </center> </div> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" width="500" height="106" bordercolor="#111111" > <tr> <td width="100" height="25" ><font face="verdana" size="2"><b> Ændret den:</b></font></td> <td width="400" height="25" colspan="2" ><INPUT name="Dato" size="40" value="<%=rs("Date")%>"></td> </tr> <tr> <td width="100" height="25" ><font face="verdana" size="2"><b> Overskrift:</b></font></td> <td width="400" height="25" colspan="2" ><INPUT name="Navn" size="40" value="<%=rs("Subject")%>"></td> </tr> <tr> <td width="100" height="25" valign="top" ><font face="verdana" size="2"><b> Tekst:</b></font></td> <td width="400" height="25" colspan="2" ><textarea rows="4" cols="30" name="Tekst"><%=rs("Text")%></textarea></td> </tr> <tr> <td width="100" height="25" ><font face="verdana" size="2"><b> </b></font></td> <td width="156" height="25" > <align="center"> <INPUT type="submit" value="UPDATE" style="font-family: Verdana; font-size: 8pt"></td> <td width="244" height="25" > </td> </tr> <tr> <td width="100"> <align="center"> <input type="hidden" NAME="frmRetid" value="<%Response.Write Request.Querystring("retid")%>"> </td> </tr> </table> </center> </div> <INPUT type="hidden" value="UPDATE"></td> </FORM><% rs.MoveNext loop Elseif Request.Querystring("retid") = "" Then frmRetid = Request.Form("frmRetid") strDate = Replace(Request.Form("Date"), vbcrlf, "<br>") strSubject = Replace(strSubject, "'", "''") strText = Replace(Request.Form("Text"), "'", "''") strSQL = "Update News Set Date='" & strDate & "', Subject= '" & strSubject & "', Text= '" & strText & "' Where ID=" & frmRetid Conn.Execute(strSQL) Response.Redirect ("rettet.asp") End if %> <center> <p> <b><a href="ret_main.asp" target="_self"></a></b> </p> </center> </td> </tr> </table> </center> </div> </body> </html>
15. oktober 2002 - 10:15
#11
Prøv lige at checke dine variabler - at de rent faktisk indeholder data. Det tror jeg ikke de gør. Du bruger method=get på din form. Det gør, at du skal bruge request.querystring og ikke request.form. Ellers prøv at rette method=get til method=post
15. oktober 2002 - 10:47
#12
jeg får samme fejl om jeg retter method=get til post eller bruger request.querystring ???
15. oktober 2002 - 11:13
#13
Så prøv lige at udskrive din SQL inden du kører det response.write(strSQL) Der må være en fejl i sql'en
15. oktober 2002 - 13:58
#14
Når jeg ligger: response.write(strSQL) ind får jeg denne oplysning: Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement. /admin/administrator/ret.asp, line 109
15. oktober 2002 - 14:37
#15
Så prøv evt. at udkommentere den conn.Execute mens du debugger
15. oktober 2002 - 15:31
#16
hvis jeg udkommentere: Conn.Execute(strSQL) får jeg en blank side uden fejlbeskrivelse
15. oktober 2002 - 15:46
#17
og su har sat en response.write strSQL ind, lige over der, hvor du har udkommenteret din conn.execute(strSQL)? Hvis ja - så prøve lige at udskrifte din response.buffers = Valid med response.buffers = false
15. oktober 2002 - 16:11
#18
Nu har jeg rettet response.buffers=Valid til False og har odkommenteret Conn.Execute(strSQL) og indsat response.write(strSQL) lige ovenover. og får nu denne besked Update News Set Date='', Subject= '', Text= '' Where ID= Response object error 'ASP 0156 : 80004005' Header Error /admin/administrator/ret.asp, line 111 The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content linie 111= Response.Redirect ("ret_main.asp")
15. oktober 2002 - 16:12
#19
Hvis jeg udkommentere linie 111 for jeg denne besked: Update News Set Date='', Subject= '', Text= '' Where ID=
16. oktober 2002 - 16:33
#20
Pg det tyder jo også kraftigt på, at du ikke har fat i nogen værdier. Prøv selv lige at se på din sql-sætning - hvordan skal den kunne forstå det? :-)
16. oktober 2002 - 17:11
#21
Jeg har lavet nogle rettelser, men lige lidt hjælper det. Hvis der er nogen der kan se fejlen i denne side: ret.asp <!-- #INCLUDE FILE="../brugercheck.inc" --> <!--------#include file="../pro-lag.inc"-----> <% 'Option Explicit Dim Conn, DSN, retid, strSQL, rs, frmRetid, strDate, strSubject, strText Response.Buffer=false %> <% Set Conn = Server.CreateObject("ADODB.Connection") connString = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../log/safarinews.mdb") Conn.Open connString %> <html> <head> <title>Ret Menu</title> </head> <body background="../images/t.gif" topmargin="15"> <br><br> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber3"> <tr> <td width="150" style="border-bottom: 1px solid #000000" > </td> <td width="500" style="border-bottom: 1px solid #000000" ><font face="verdana" size="2">Administration i det valgte område = <font color="#FF0000">Nyheder</font></font></td> </tr></table> </center> </div> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber2"> <tr> <td width="150" valign="top"><!---#include file="menu_includ.asp"---></td> <td width="500"> <% If Request.Querystring("retid") <> "" Then retid = Request.Querystring("retid") strSQL ="Select * From News Where ID =" & retid Set rs = Conn.Execute(strSQL) do while not rs.eof %> <FORM method="post" name="ret" action="ret_main.asp"> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="500" id="AutoNumber1"> <tr> <td width="100%" align="left"> </td> </tr> </table> </center> </div> <div align="center"> <center> <table border="0" cellpadding="0" cellspacing="0" width="500" height="106" bordercolor="#111111" > <tr> <td width="100" height="25" ><font face="verdana" size="2"><b> Ændret den:</b></font></td> <td width="400" height="25" colspan="2" ><INPUT name="Dato" size="40" value="<%Response.Write rs("Date")%>"></td> </tr> <tr> <td width="100" height="25" ><font face="verdana" size="2"><b> Overskrift:</b></font></td> <td width="400" height="25" colspan="2" ><INPUT name="Overskrift" size="40" value="<%Response.Write rs("Subject")%>"></td> </tr> <tr> <td width="100" height="25" valign="top" ><font face="verdana" size="2"><b> Tekst:</b></font></td> <td width="400" height="25" colspan="2" ><textarea rows="4" cols="30" name="Tekst"><%Response.Write rs("Text")%></textarea></td> </tr> <tr> <td width="100" height="25" ><font face="verdana" size="2"><b> </b></font></td> <td width="156" height="25" > <align="center"> <input type="hidden" NAME="frmRetid" value="<%Response.Write Request.Querystring("retid")%>"> <INPUT type="submit" value="UPDATE" style="font-family: Verdana; font-size: 8pt"></td> <td width="244" height="25" > </td> </tr> <tr> <td width="100"> <align="center"> </td> </tr> </table> </center> </div> </td> </FORM> <% rs.MoveNext loop Elseif Request.Querystring("retid") = "" Then frmRetid = Request.Form("frmRetid") strDato = Replace(Request.Form("Date"), vbcrlf, "<br>") strDato = Replace(strdato, "'", "''") strOverskrift = Replace(Request.Form("overskrift"), "'", "''") strTekst = Replace(Request.Form("tekst"), "'", "''") strSQL = "Update News Set Dato='" & strDate & "', Overskrift= '" & strSubject & "', Tekst= '" & strText & "' Where ID=" & frmRetid 'response.write(strSQL) Conn.Execute(strSQL) Response.Redirect ("ret_main.asp") End if %> </td> </tr> </table> </center> </div> </body> </html>
16. oktober 2002 - 17:19
#22
Fejlen er stadi den samme: Update News Set Date='', Subject= '', Text= '' Where ID=
20. oktober 2002 - 03:04
#23
Så er det stadig fordi, din linie med fx. strDato = Replace(Request.Form("Date"), vbcrlf, "<br>") ikke returnerer noget. Så er strDato = "" og det giver kuk i dit select/update statement.
Kurser inden for grundlæggende programmering