Jag har laddat ner och testat ett script från ASPSidann scriptarkiv.
Men jag får det inte att fungera som det ska.
Det är ett forum, jag kan posta och se länkar till trådarna.
Men jag kan inte läsa trådarna.
Koden får sidan där tråden skall synas ser ut så här:
<%
Option Explicit
Dim objConn 'as object
Dim strConn 'as string
Dim strSQL 'as string
Dim rstThread 'as recordset
Dim rstSubThreads 'as recordset
Dim lngThreadID 'as long
'Kontrollera om det är ett giltigt anrop till sidan.
if not IsNumeric(Request.QueryString("threadID")) or Request.QueryString("threadID") = "" then
'Ogiltigt anrop. Skicka tillbaka till startsidan.
Response.Redirect("default.asp")
else
'Giltigt anrop.
lngThreadID = Request.QueryString("threadID")
end if
'Skapa databas-anslutningen
Set objConn = Server.CreateObject("ADODB.Connection")
'forum.mdb skall bytas ut mot vad din databas-fil heter.
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("forum.mdb")
objConn.Open strConn
'Skapa SQL-strängen för att hämta den aktuella tråden.
strSQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail FROM tblForum WHERE threadID=" & lngThreadID
'Skapa och öppna ett recordset
Set rstThread = objConn.Execute(strSQL)
%>
<html>
<body>
<table border="0">
<tr>
<td>
<b>Rubrik</b>
</td>
<td>
<b>Datum</b>
</td>
<td>
<b>Vem?</b>
</td>
</tr>
<tr>
<td colspan="2">
<b><%=rstForum(2)%></b><i><%=rstThread(1)%></i>
</td>
</tr>
<tr>
<td>
<%=Replace(rstThread(4), vbCrLf, "<br>")%>
</td>
</tr>
<tr>
<td>
Inlägget gjord av: <a href="<%=rstThread(5)%>"><%=rstThread(3)%></a></b>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><a href="form.asp?replyTo=<%=rstThread(0)%>">Svara på detta inlägg</a></td>
</tr>
<%
'Skapa en ny sql-sträng för att få ut alla svar till tråden.
strSQL = strSQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail FROM tblForum WHERE threadParent=" & rstThread(0)
'Öppna ett nytt recordset
Set rstSubThreads = objConn.Execute(strSQL)
if (rstSubThreads.EOF or rstSubThreads.BOF) then
%>
<tr>
<td>Det finns inga svar till det här inlägget.</td>
</tr>
<%
else
do while not rstSubThreads.EOF
%>
<tr>
<td><hr noshade size="1"> </td>
</tr>
<tr>
<td colspan="2">
<b><%=rstSubThreads(2)%></b> & nbsp;<i><%=rstSubThreads(1)%></i>
</td>
</tr>
<tr>
<td>
<%=Replace(rstSubThreads(4), vbCrLf, "<br>")%>
</td>
</tr>
<tr>
<td>
Inlägget gjord av: <a href="<%=rstSubThreads(5)%>"><%=rstSubThreads(3)%></a></b>
</td>
</tr>
<tr>
<td> </td>
</tr>
<%
rstSubThreads.MoveNext
loop
%>
</table>
</body>
</html>
<%
End If
'Stäng databasen
objConn.Close
SetobjConn = nothing
%>
Och det här felmeddelandet får jag:
Microsoft VBScript runtime error '800a01f4'
Variable is undefined: 'rstForum'
/themad/db/readThread.asp, line 47
'Skapa en ny sql-sträng för att få ut alla svar till tråden.
strSQL = strSQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail FROM tblForum WHERE threadParent=" & rstThread(0)
'Öppna ett nytt recordset
Set rstSubThreads = objConn.Execute(strSQL)
mot
'Skapa en ny sql-sträng för att få ut alla svar till tråden.
strSQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail FROM tblForum WHERE threadParent=" & rstThread(0)
'Öppna ett nytt recordset
Set rstSubThreads = objConn.Execute(strSQL)
Rubrik Datum Vem?
dasdsadd
adadasddddad
Inlägget gjord av: dsadasdasdas
Svara på detta inlägg
Det finns inga svar till det här inlägget.
Microsoft VBScript runtime error '800a01f4'
Variable is undefined: 'SetobjConn'
/themad/db/readThread.asp, line 115
Jaja tack för uppmuntran :)
Men nu har jag påörjat mitt forum projekt på nytt.
Allt är bra förutom denna kod:
<%
Dim lngThreadID
Dim rstThread
if not IsNumeric(Request.QueryString("threadID")) or Request.QueryString("threadID") = "" then
strThread = Request.Querystring("threadID")
Response.Redirect("default.asp")
else
lngThreadID = Request.QueryString("threadID")
end if
Set db = Server.CreateObject("ADODB.Connection")
db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("forum.mdb")
SQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail, threadParent FROM tblForum WHERE threadID=" & lngThreadID
Set rs = db.Execute(SQL)
%>
<br>
<a href="form.asp?replyTo=<%=rs("threadID")%>">Svara på detta inlägg</a>
<br>
<br>
<html>
<%=rs("threadHeadline")%>
<br>
<%=rs("threadDateTime")%>
<br>
<%=Replace(threadText, vbCrLf, "<br>")%>
<br>
<a href="<%=rs("threadPosterEmail")%>"><%=rs("threadPoster")%></a>
<br>
<br>
<br>
<%
SQL = "SELECT threadID, threadDateTime, threadHeadline, threadPoster, threadText, threadPosterEmail, threadParent FROM tblForum WHERE threadParent=" & threadParent(0)
Set rs = db.Execute(SQL)
if (rs.EOF or rs.BOF) then
%>
Inga svar!
<%
else
do while not rs.EOF
%>
<%=rs("threadHeadline")%>
<br>
<%=rs("threadDateTime")%>
<br>
<%=Replace(threadText, vbCrLf, "<br>")%>
<br>
<a href="<%=rs("threadPosterEmail")%>"><%=rs("threadPoster")%></a>
<br>
<br>
<%
rs.MoveNext
loop
%>
<%
db.Close
Set db = nothing
end if
%>
Detta är alltså sidan som inläggen i varje tråd skall listas.
Men den vill inte lista svaren.
Felmeddelandet jag får är:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'threadParent'
/themad/db/Forum/readThread.asp, line 35
Jag har genom att ändra i koden lyckats skriva ut svaren.
Resultatet blev dock att svaren från alla trådar skrevs ut.
Någon lösning?