webForumDet fria alternativet

Liten modifikaton av ett forum, vad ska ändras?

ASP

3 svar · 192 visningar · startad av Fredrik.an

Medlem sedan sep. 2001162 inlägg
Frågan#1

Tjenare alla, jag har laddat ner ett vanligt litet forum från gruvsjo.com
Nu är det så att jag ska modifiera det lite, jag själv ska enbart lägga in vissa trådar och jag vill ha dem i en speciell årdning, eller bara i den ordningen som blir när jag lägger in dem. Sen när någon svarar ska den inte hoppa högst upp, vad ska jag ändra för att föhindra det?

index.asp

<!--
************************************************
Webforum v3
?sa Gruvsjˆ © 2001 
www.gruvsjo.com  
Asa@gruvsjo.com
	
Fri att anv‰nda om ni lÂter copyrightkoden st kvar!
************************************************
-->

<!--#Include file="link.asp"-->

<html>
<head>
<title>Webforum v.3</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script src="js.js"></script>
</head>

<body onLoad="<%=mess%>">

<%db = Server.MapPath("db/forum.mdb")        'Sˆkv‰gen till databasen

Function FixaTecken(str)
  FixaTecken  = Replace(Trim(str),"'","''")
End function

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db

If Request.Querystring("visa") = "" Then%>

<table border="0" width="450" cellpadding="0" cellspacing="0" align="center">
  <tr>
    <td colspan="5"><a href="index.asp?visa=sok">Sˆk i forumet</a></td>
  </tr>
  <tr>
    <td colspan="5"><img src="bilder/dot2.gif"></td>
  </tr>
<tr>
 <td width="15">&nbsp;</td>
 <td width="200"><b>Rubrik</b></td>
 <td width="90"><b>Postat av</b></td>
 <td align="center" width="30"><b>Svar</b></td>
 <td align="right" width="115"><b>Senaste inl‰gget</b></td>
</tr>
  <tr>
    <td colspan="5"><img src="bilder/dot2.gif"></td>
  </tr>

<%Set RecSet    = Server.CreateObject("ADODB.Recordset")

Const fps1 = 25                                     ' ANTAL INLƒGG PER SIDA
If Request.QueryString("page") = "" then 
page = 1 
Else 
page = Request.QueryString("page") 
End If 

RecSet.CursorLocation = 3
RecSet.CacheSize = fps1

SQL = "SELECT * From forum WHERE SvarsId=0 Order By Senast DESC"
RecSet.Open SQL, Conn

If RecSet.EOF Then%>
  <tr>
    <td colspan="5"><i>Inget har skrivit i forumet.</i></td>
  </tr>
<%Else
RecSet.MoveFirst 
RecSet.PageSize = fps1 

TotalPages = RecSet.PageCount 
RecSet.AbsolutePage = page 

X = 0 
Do While Not RecSet.EOF And X < RecSet.PageSize%>

<tr bgcolor="">
 <td><b><%If RecSet("senast") > date - 1 Then Response.Write " »" End If%></b></td>
 <td><b><a href="index.asp?visa=las&id=<%=RecSet("id")%>&rubrik=<%=RecSet("rubrik")%>" onfocus="this.blur()"><%=Left(RecSet("Rubrik"),25)%></a></b></td>
 <td><%=RecSet("Namn")%> &nbsp;</td>
 <td align="center"><%=RecSet("Svar")%></td>
 <td align="right"><%If RecSet("Svar") > 0 Then%><%=RecSet("Senast")%><%Else%><%=RecSet("datum")%><%End If%></td>
</tr>

<%X = X + 1 
RecSet.MoveNext
Loop

RecSet.Close
Set RecSet = nothing

End If%>
  <tr>
    <td colspan="5"><img src="bilder/dot2.gif"></td>
  </tr>
  <tr>
     <td valign="top" colspan="5">
          <%For Pages = 1 To TotalPages 
              If (Int(Pages)) = (Int(page)) Then%><b><%=Pages%></b> <%Else%><a href="index.asp?action=ja&page=<%=Pages%>" onfocus="this.blur()"><b><%=Pages%></b></a> <%End If
          Next%> 
     </td>
   </tr> 
<%If TotalPages => 1 Then%>
  <tr>
    <td colspan="5"><img src="bilder/dot2.gif"></td>
  </tr>
<%End If%>
  <tr>
    <td colspan="5"><b>Skriv ett meddelande!</b></td>
  </tr>
  <tr>
    <td colspan="5"><img src="bilder/dot2.gif"></td>
  </tr>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="450" align="center">
   <form name="add" action="index.asp?laggtill=ja" method="post" onSubmit="return forumin()">
    <tr> 
      <td width="60"><b>Ditt namn:</td><td><input type="text" name="namn" size="35" value="<%=Request.Cookies("namn")%>"></td>
  </tr>
    <tr>
      <td width="60"><b>Din e-mail:</b></td><td><input type="text" name="email" size="35" value="<%=Request.Cookies("email")%>"> valfritt</td>
  </tr>
    <tr>
      <td width="60"><b>Rubrik:</td><td><input type="text" name="rubrik" size="35"></td>
    </tr>
    <tr> 
      <td height="19" valign="top" colspan="2"> <b>Inl‰gg:</b><br>
        <textarea name="inlagg" cols="80" rows="10"></textarea>
      </td>
    </tr>
    <tr> 
      <td valign="top" colspan="2"><img src="bilder/dot2.gif"></td>
    </tr>
    <tr> 
      <td><input type="submit" value="Posta inl‰gg"></td>
      <td align="center"><a href="admin.asp">Admin</a> &nbsp; <a href="javascript:kod('kod.asp');">Forumkod</a></td>
    </tr>
    </form>
</table>
  
<%End If
If Request.Querystring("visa") = "las" Then

Set RecSet    = Server.CreateObject("ADODB.Recordset")

SQL = "SELECT * From forum WHERE id=" & Request.Querystring("id")
RecSet.Open SQL, Conn%>

<table width="450" cellpadding="0" cellspacing="0" border="0" align="center">
  <tr>
    <td align="right"><b><a href="index.asp" onfocus="this.blur()">Tillbaka</a></b></td>
  </tr>
  <tr>
    <td><img src="bilder/dot2.gif"></td>
  </tr>
  <tr height="15">
    <td><b><%=RecSet("Rubrik")%></b></td>
  </tr>
  <tr>
    <td><%=FixaLankar(Server.HTMLEncode(RecSet("inlagg")))%></td>
  </tr>
  <tr>
    <td height="15">
    <b><%If RecSet("Email") <> "" Then%><a href="mailto:<%=RecSet("Email")%>" onfocus="this.blur()"><%=RecSet("Namn")%></a><%Else%><%=RecSet("Namn")%><%End If%></b> - <%=FormatDateTime(RecSet("Datum"),0)%></td>
  </tr>
  <tr>
    <td><img src="bilder/dot2.gif"></td>
  </tr>
  <tr>
    <td><b>Svar p detta inl‰gg:</b></td>
  </tr>
  <tr>
    <td><img src="bilder/dot2.gif"></td>
  </tr>

<%Svar=RecSet("Svar")

RecSet.Close
Set RecSet = nothing

Set RecSet    = Server.CreateObject("ADODB.Recordset")

Const fps2 = 5                                     ' ANTAL SVARSINLƒGG PER SIDA
If Request.QueryString("page") = "" then 
page = 1 
Else 
page = Request.QueryString("page") 
End If 

RecSet.CursorLocation = 3
RecSet.CacheSize = fps2 

SQL = "SELECT * From forum WHERE svarsid=" & Request.Querystring("id") & " Order By datum desc"
RecSet.Open SQL, Conn

If Svar = 0 Then%>

  <tr>
    <td><i>Inget svar p detta inl‰gg.</i></td>
  </tr>
  <tr>
    <td><img src="bilder/dot2.gif"></td>
  </tr>

<%Else

RecSet.MoveFirst 
RecSet.PageSize = fps2 

TotalPages = RecSet.PageCount 
RecSet.AbsolutePage = page 

X = 0 
Do While Not RecSet.EOF And X < RecSet.PageSize%>

  <tr height="15">
    <td><b><%=RecSet("Rubrik")%></b></td>
  </tr>
  <tr>
    <td><%=FixaLankar(Server.HTMLEncode(RecSet("inlagg")))%></td>
  </tr>
  <tr>
    <td height="15">
    <b><%If RecSet("Email") <> "" Then%><a href="mailto:<%=RecSet("Email")%>" onfocus="this.blur()"><%=RecSet("Namn")%></a><%Else%><%=RecSet("Namn")%><%End If%></b> - <%=FormatDateTime(RecSet("Datum"),0)%></td>
  </tr>
  <tr>
    <td><img src="bilder/dot2.gif"></td>
  </tr>

<%X = X + 1 
RecSet.MoveNext
Loop

RecSet.Close
Set RecSet = nothing

End If%>

  <tr>
     <td valign="top" colspan="4">
          <%For Pages = 1 To TotalPages 
              If (Int(Pages)) = (Int(page)) Then%><b><%=Pages%></b> <%Else%><a href="index.asp?visa=las&id=<% =Request.QueryString("id") %>&page=<%=Pages%>" onfocus="this.blur()"><b><%=Pages%></b></a> <%End If
          Next%>
     </td>
   </tr>
<%If TotalPages => 1 Then%>
  <tr>
    <td colspan="5"><img src="bilder/dot2.gif"></td>
  </tr>
<%End If%>
  <tr>
    <td><b>Skriv ett svar!</b></td>
  </tr>
  <tr>
    <td colspan="5"><img src="bilder/dot2.gif"></td>
  </tr>
</table>

<table border="0" cellpadding="0" cellspacing="0" width="450" align="center">
  <form action="index.asp?laggtill=ja&id=<%=Request.QueryString("id") %>" method="post" name="svar" onSubmit="return forumsvar()">
    <tr> 
      <td width="60"><b>Ditt namn:</td><td><input type="text" name="namn" size="35" value="<%=Request.Cookies("namn")%>"></td>
  </tr>
    <tr>
      <td width="60"><b>Din e-mail:</b></td><td><input type="text" name="email" size="35" value="<%=Request.Cookies("email")%>"> valfritt</td>
  </tr>
    <tr>
      <td width="60"><b>Rubrik:</td><td><input type="text" name="rubrik" size="35" value="<%If Left(Request.Querystring("rubrik"),6) = "Svar: " Then%><%=Request.Querystring("rubrik")%><%Else%>Svar: <%=Request.Querystring("rubrik")%><%End If%>"></td>
    </tr>
     <input type="hidden" name="id" value="<% =Request.QueryString("id") %>">
    <tr> 
      <td height="19" valign="top" colspan="2"> <b>Inl‰gg:</b><br>
        <textarea name="inlagg" cols="80" rows="10"></textarea>
      </td>
    </tr>
    <tr> 
      <td valign="top" colspan="2"><img src="bilder/dot2.gif"></td>
    </tr>
    <tr> 
      <td><input type="submit" value="Posta svar"></td>
      <td align="center"><a href="admin.asp">Admin</a> &nbsp; <a href="javascript:kod('kod.asp');">Forumkod</a></td>
    </tr>
  </form>
</table>

<%End If%>

på grund av teckenspärren fortsätter det i näst ainlägg...

Medlem sedan sep. 2001162 inlägg
#2

fortsättning på index.asp

<%If Request.QueryString("laggtill") = "ja" Then

Response.Cookies("namn") = Trim(Request.Form("namn"))
Response.Cookies("email") = Trim(Request.Form("email"))
Response.Cookies("namn").Expires = date + 7
Response.Cookies("email").Expires = date + 7
 
Rubrik      = Request.Form("Rubrik")
Inlagg      = FixaTecken(Request.Form("inlagg"))
Namn       = Request.Form("namn")
Email        = Request.Form("email")
SvarsId    = Request.QueryString("id")

If Request.QueryString("id") = "" Then 

Conn.Execute("Insert Into forum(Rubrik, Inlagg, Namn, Email) Values('"& Rubrik &"','"& Inlagg &"','"& Namn &"','"&Email &"')")

Response.Redirect "index.asp"

Else

Conn.Execute("Insert Into forum(Rubrik, Inlagg, Namn, Email, SvarsId) Values('"& Rubrik &"','"& Inlagg &"','"& Namn &"','"&Email &"','"& SvarsId &"')")
Conn.Execute("UPDATE forum SET senast=now WHERE id=" & SvarsId)

If SvarsId <> 0 Then
  Conn.Execute("UPDATE forum SET Svar=Svar+1 WHERE id=" & SvarsId)
End If

Response.Redirect "index.asp?visa=las&id=" &Request.QueryString("id") & "&rubrik=" &Request.Form("rubrik")

End If

End If
If Request.QueryString("visa") = "sok" Then%>
<!-- #include file="sok.asp" -->
<%End If%>

</body>
</html>

sen finns det en fil som heter senast.asp oxå, den kanske kan vara något...

senast.asp

<table border="0" 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("db/forum.mdb")
Set RS=Conn.Execute("Select Top 1 * From forum Order By datum desc")

If RS.EOF Then%>
<tr><td>Tomt</td></tr>
<%Else%>
<tr>
   <td><%=RS("datum")%></td>
</tr>
<tr>
   <td><b><%=RS("rubrik")%></b></td>
</tr>
<tr>
   <td>
    <%If RS("SvarsID") = 0 Then%>
    <a href="index.asp?visa=las&id=<%=RS("id")%>&rubrik=<%=RS("rubrik")%>"><%=Left(RS("inlagg"),100)%></a>
    <%Else%><a href="index.asp?visa=las&id=<%=RS("svarsid")%>&rubrik=<%=RS("rubrik")%>"><%=Left(RS("inlagg"),100)%></a>
    <%End If%>
   </td>
</tr>
<tr>
   <td>Postat av: <%If RS("Email") <> "" Then%><a href="mailto:<%=RS("email")%>"><%=RS("namn")%></a><%Else%><%=RS("namn")%><%End If%></td>
</tr>
<%End If

RS.Close
Set RS=Nothing%>
</table>
Medlem sedan apr. 20031 660 inlägg
#3

HEJ!

Att få trådarna i den ordning som blir när du lägger in dem ändrar du enklast genom att ändra till ORDER BY idnummer när du listar ut trådarna, då posterna läggs in med en räknare.

Medlem sedan sep. 2001162 inlägg
#4

J.N. skrev:

HEJ!

Att få trådarna i den ordning som blir när du lägger in dem ändrar du enklast genom att ändra till ORDER BY idnummer när du listar ut trådarna, då posterna läggs in med en räknare.

Ja så enkelt var det ju :) Tack!

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)