webForumDet fria alternativet

Senaste inläggslänk -fel

ASP

9 svar · 265 visningar · startad av syrolis

Medlem sedan feb. 2003107 inlägg
Frågan#1

Hejsan!

Jag skapade ett "senaste inlägg" kodsnutt till framsidan och det fungerar så tillvida att jag ser senaste inlägget.
Men när man trycker på inläggslänken så borde man komma direkt till det aktuella inlägget.

Inte som nu till default.asp -filen där de olika forumen visas (finns flera olika forum som har olika inriktningar)

Vad har jag missat/missuppfattat?

 <%If RS("MessageID") = 0 Then%>
    <a href="message.asp?visa=las&id=<%=RS("id")%>&rubrik=<%=RS("rubrik")%>"><%=Left(RS("inlagg"),75)%></a>
    <%Else%><a href="nyttforum/message.asp?visa=las&id=<%=RS("MessageID")%>&rubrik=<%=RS("Subject")%>"><%=Left(RS("body"),100)%></a>
    <%End If%>

Det finns i databastabellerna ett ForumID som är olika för varje forum.
Filen forum.asp visar alla inläggen i det forumet
Filen message.asp visar valt inlägg

// Sylvia

Medlem sedan mars 20015 287 inlägg
#2

Den där koden länkar ju till: nyttforum/message.asp eller till message.asp beroende på innehållet i ditt rs.

Hur det kommer sig att du hamnar på default.asp undrar jag med. Har du en redirect i message.asp?
(Btw ska det länkas till "olika" message.asp?)

Medlem sedan feb. 2003107 inlägg
#3

Det finns bara en message.asp
Jag lade till nyttforum/ framför message.asp där jag missat det.

Sidan "senast.asp" inkluderas på framsidan och innehållet i den är som följande:

<head>
<LINK REL="stylesheet" HREF="forum.css">
</head>

<table border="1" cellpadding="1" cellspacing="1" align="center" width="180"> 
<%Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("nyttforum/forum.mdb")
Set RS=Conn.Execute("Select Top 1 * From Messages Order By Date desc")

If RS.EOF Then%>
<tr><td>Tomt</td></tr>
<%Else%>
<tr>
   <td>
<font verdana=2><b>Det senaste Foruminlägget</b><br>
<img border="0" src="nyttforum/dot175.gif" width="175" height="10"></font>
<%=RS("date")%></td>
</tr>
<tr>
   <td><b><%=RS("subject")%></b></td>
</tr>
<tr>
   <td>
    <%If RS("MessageID") = 0 Then%>
    <a href="nyttforum/message.asp?visa=las&id=<%=RS("id")%>&rubrik=<%=RS("rubrik")%>"><%=Left(RS("inlagg"),75)%></a>
    <%Else%><a href="nyttforum/message.asp?visa=las&id=<%=RS("MessageID")%>&rubrik=<%=RS("Subject")%>"><%=Left(RS("body"),100)%></a>
    <%End If%>
   </td>
</tr>
<tr>
   <td>
<img border="0" src="nyttforum/dot175.gif" width="175" height="10">

Postat av: <%If RS("Email") <> "" Then%><a href="mailto:<%=RS("email")%>"><%=RS("PostedBy")%></a><%Else%><%=RS("PostedBy")%><%End If%></td>
</tr>
<%End If

RS.Close
Set RS=Nothing%>
</table>

Jag har med "mycket möda och stort besvär" eftersom jag är osäker på hur man kodar ASP fått ihop den koden efter att ha tittat på andra koder.

Och hur jag kan hamna i nyttforum/default.asp kan jag inte heller förstå just nu.

Medlem sedan feb. 2003107 inlägg
#4

det är alltså koden från senast.asp som avses ovan och den är inkluderad i right.asp som är framsidan.

Medlem sedan mars 20015 287 inlägg
#5

Ok... det är nog message.asp som är intressantast i sammanhanget nu.

r/ Fast iofs, ska inte querystringsvariabeln id heta messageID?

Medlem sedan feb. 2003107 inlägg
#6

Du hade rätt solbulle!

Jag har en redirect i message.asp

 
If Request("MessageID") = "" Then
	' We don't have a valid MessageID, so go back to the main page
	Response.Redirect "default.asp"
End If

Men det bör jag väl ha?

Vad jag förstår så är inte koden riktigt korrekt i senast.asp och det blir ett felaktigt ID så inte rätt forum hittas och man skickas då tillbaka till nyttforum/default.asp

Hur får jag in rätt forum i länken?

Databasen heter forum och den har två tabeller :Forums och Messages
I båda tabellerna finns ForumID och varje forum har en siffra

Medlem sedan mars 20015 287 inlägg
#7
<%If RS("MessageID") = 0 Then%>
    <a href="message.asp?visa=las&id=<%=RS("id")%>&rubrik=<%=RS("rubrik")%>"><%=Left(RS("inlagg"),75)%></a>
    <%Else%><a href="nyttforum/message.asp?visa=las&MessageID=<%=RS("MessageID")%>&rubrik=<%=RS("Subject")%>"><%=Left(RS("body"),100)%></a>
    <%End If%>

Ändrat ID till MessageID, men jag fattar inte riktigt vad den där If-satsen egentligen ska åstadkomma, om RS("MessageID") = 0 skriver du ut RS("id") mm och länkar till message.asp.
Annars om det inte är tomt, då länkar du till RS("MessageID") samt skriver ut lite andra fält!?! mfl skillnader.

Medlem sedan feb. 2003107 inlägg
#8

Den lilla ändringen som du gjorde i koden ovan gjorde susen. Nu kommer man direkt till inlägget.

Jag vet inte varför if-satsen fungerar men jag har provat att plocka bort antingen den första eller den andra if-satsen och då försvinner själva länken till inlägget(1:a delen av inlägget) och bara rubriken syns på framsidan.

Min databas stämmer bara med andra if-satsen när det gäller MessageID, Subject och body.

Medlem sedan feb. 2003107 inlägg
#9

Eftersom inte if-satsen hade något syfte (du förklarade den bra) så raderade jag den helt.

Lät endast

 
<a href="nyttforum/message.asp?visa=las&MessageID=<%=RS("MessageID")%>&rubrik=<%=RS("Subject")%>"><%=Left(RS("body"),100)%></a>

vara kvar och nu fungerar det som det är tänkt utan if-sats som tydligen inte gjorde någon som helst nytta!

Tack solbulle för att du har tålamod med en total nybörjare

:)

Medlem sedan mars 20015 287 inlägg
#10

bra att det löste sig. :)

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)