webForumDet fria alternativet

Tillåta HTML-kod och Smilysar i ett forum?

ASP

23 svar · 790 visningar · startad av syrolis

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

Hej alla,
Jag är total nybörjare som försöker få ihop en databasdriven sida till EuropéNytt som är en sida om kattrasen Europé. Då jag inte kan själv (även om jag försöker förstå koden bakom) så har jag använt mig av diverse gratisscript och joxat ihop dem på min blivande sida som tillfälligt ligger på http://europe.no-ip.com/dd/

Men Forumet som är där är inte vad mina användare vill ha. De vill ha ett trådat forum. Sagt och gjort, jag har letat länge...
Till slut hittade jag ett som skulle passa på http://www.manastungare.com/asp/discussionforum.asp

Jag har laddat ner forumet och testat det (Nytt Forum från Manas Tungare )men det har två "fel" som jag ser det.
1. Man kan inte använda HTML-kod i inläggen
2. jag kan inte få smileys funktioner att fungera även om jag lägger in den kodsnutten som finns i webForum eller den variant som finns hos www.gruvsjo.com.

Finns det någon vänlig själ som kan förklara varför?
Är det någon inställning i själva scriptet eller måste en funktion läggas till som stöder detta?
Svårt?

Någon som har intresse av att försöka?
Själva forumet har direktlänk för nedladdning från sidan jag angav lite högre upp.
Alternativet är att jag lägger in koderna på sidorna i detta forum men det tar upp väldigt stor plats...

Medlem sedan mars 20015 287 inlägg
#2

Välkomment till wF!

1. Man kan inte använda HTML-kod i inläggen

Kolla efter: Server.HTMLEncode i koden om skriver ut.
(Kan även ha med det andra "felet" att göra.)

Medlem sedan feb. 2003107 inlägg
#3

Här kommer kod...

Tack för välkommnandet solbulle :-D

Har hittat det du frågade efter men förstår inte vad som är "fel" eller vad som behöver ändras.

Skickar hela koden i message.asp
Har dock tagit bort koden för smileysarna eftersom jag inte fick det att fungera men kan snabbt lägga in det igen ...

<!-- #INCLUDE FILE="config.inc" -->
<HTML>
<HEAD>
<TITLE>Discussion Forum : by Manas Tungare</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="stylesheet" HREF="forum.css">
</HEAD>

<BODY BGCOLOR="#FFFFFF" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">

<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="12" BGCOLOR="#F0F0F0">
  <TR VALIGN="TOP">
    <TD ALIGN="center"><H1>Diskussionsforum hos <%= SiteTitle %></H1></TD>
  </TR>
</TABLE>
<%
If Request("MessageID") = "" Then
	' We don't have a valid MessageID, so go back to the main page
	Response.Redirect "default.asp"
End If

Dim DB, rsMessage, rsInReply, rsReplies
Set DB = Connect (ForumMDB)
Set rsMessage = DB.Execute ("SELECT * FROM Messages WHERE MessageID = " & Request ("MessageID"))

If rsMessage.EOF And rsMessage.BOF Then
	' We could not find the message with the ID requested.
	' There's some error : Either the administrator has deleted the message,
	' or the user has linked to an invalid MessageID.
	ShowError "Invalid Message Identifier. Please re-login to continue."
End If
rsMessage.MoveFirst

If rsMessage("InReplyTo") <> 0 Then
	' InReplyTo <> 0 means that this IS in reply to some message.
	' So find out the message for which this is the reply.
	Set rsInReply = DB.Execute ("SELECT * FROM Messages WHERE MessageID = " & rsMessage("InReplyTo"))
End If

' Now, find out all the messages that are in reply to this message.
Set rsReplies = DB.Execute ("SELECT * FROM Messages WHERE InReplyTo = " & rsMessage("MessageID"))
%>
<BR>
<TABLE WIDTH="90%" BORDER="1" CELLSPACING="0" CELLPADDING="8" ALIGN="CENTER">
  <TR ALIGN="LEFT" VALIGN="MIDDLE">
    <TD bgcolor="#E1E1FF" WIDTH="75%" VALIGN="MIDDLE"><B><A HREF="post.asp?InReplyTo=<%= rsMessage ("MessageID") %>"><IMG SRC="reply.gif" WIDTH="59" HEIGHT="40" ALIGN="LEFT" ALT="Svara" HSPACE="8" VSPACE="2" BORDER="0"></A><%= rsMessage("Subject") %></B></TD>
    <TD WIDTH="25%" VALIGN="MIDDLE" bgcolor="#E1E1FF"><B><IMG SRC="face.gif" WIDTH="18" HEIGHT="25" ALIGN="ABSMIDDLE" HSPACE="4"></B>Från:<BR>
      <B><%= rsMessage("PostedBy") %></B></TD>
  </TR>
  <TR ALIGN="LEFT" VALIGN="TOP">
    <TD COLSPAN="2" BGCOLOR="#FFFFFF">
      <P><IMG SRC="message.gif" WIDTH="24" HEIGHT="19" ALIGN="LEFT" HSPACE="4"><%= Replace(Server.HTMLEncode(rsMessage("Body")), vbCrLf, "<BR>" + vbCrLf) %></P>
    </TD>
  </TR>
  <% If rsMessage("InReplyTo") <> 0 Then %>
  <TR ALIGN="LEFT" VALIGN="TOP">
    <TD COLSPAN="2">Detta meddelande är svar till: <A HREF="message.asp?MessageID=<%= rsInReply("MessageID") %>"><%= rsInReply("Subject") %></A>
      av <%= rsInReply("PostedBy") %></TD>
  </TR>
  <% End If %>
  <TR ALIGN="LEFT" VALIGN="TOP">
    <TD COLSPAN="2">
      <P><B>Svar på detta inlägg:</B><BR>
        <%
	If (rsReplies.BOF And rsReplies.EOF) Then
		Response.Write "-None-"
	Else
		rsReplies.MoveFirst
		Response.Write "<UL>"
		While Not rsReplies.EOF
			Response.Write "<LI><IMG SRC=""message.gif"" WIDTH=""24"" HEIGHT=""19"" ALIGN=""absmiddle"" HSPACE=""4""><A HREF=""message.asp?MessageID=" & rsReplies("MessageID") & """>" & rsReplies("Subject") & "</A>" & " av " & rsReplies("PostedBy")
			rsReplies.MoveNext
		Wend
		Response.Write "</UL>"
	End If
	%>
    </TD>
  </TR>
</TABLE>
<BR>
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="0" CELLPADDING="6" ALIGN="CENTER">
  <TR ALIGN="CENTER" VALIGN="TOP">
    <TD COLSPAN="2" ALIGN="LEFT">
      <H6>&copy; 2000, Manas Tungare.</H6>
    </TD>
    <TD ALIGN="RIGHT" WIDTH="20%">
      <DIV ALIGN="RIGHT"><A HREF="default.asp"><IMG SRC="mt45x45.gif" BORDER="0"></A></DIV>
    </TD>
  </TR>
</TABLE>
</BODY>
</HTML>
Medlem sedan sep. 2002538 inlägg
#4

Till att börja med vill jag säga att det är bra att göra om trådars svar/trådar till text, annars kan elakingar lägga in ramar som länkar till virus eller liknande men om du fortfarande vill ha bort detta skydd ändra:

[red] <%= Replace(Server.HTMLEncode(rsMessage("Body")), vbCrLf, "<BR>" + vbCrLf) %></P>
[/red] 
[blue]Till:[/blue] 
[red] 
<%= Replace(rsMessage("Body"), vbCrLf, "<BR>" + vbCrLf) %></P>

[/red]
Medlem sedan feb. 2003107 inlägg
#5

Tack så mycket!!!

Nu fungerar HTML-koden i forumet (får väl överväga om jag ska ha det så med tanke på riskerna du beskrev - men hur göra annars?)

Men mina smilysar fungarar fortfarande inte i inläggen.
Här kommer koden jag använder mig av , den ligger direkt efter head-taggen.

<%Function Smiley(text)

text = server.HTMLEncode(text)
text = Replace(text,vbCrLf,"<br>")
text = Replace(text,":)","<img src=""smileys/glad.gif"" alt=*Glad*>")
text = Replace(text,":(","<img src=""smileys/sur.gif"" alt=*Ledsen*>")
text = Replace(text,";)","<img src=""smileys/flirtar.gif"" alt=*Flirtar*>")
text = Replace(text,":?","<img src=""smileys/confused.gif"" alt=*Förvirrad*>")
text = Replace(text,":D","<img src=""smileys/skrattar2.gif"" alt=*Skrattar*>")
text = Replace(text,":r","<img src=""smileys/1.gif"" alt=*Retas*>")
text = Replace(text,":/","<img src=""smileys/sad.gif"" alt=*Sur*>")
text = Replace(text,":o","<img src=""smileys/oj.gif"" alt=*Oj*>")
text = Replace(text,":x","<img src=""smileys/arg.gif"" alt=*Arg*>")
text = Replace(text,":s","<img src=""smileys/rodnar.gif"" alt=*Rodnar*>")
text = Replace(text,":!","<img src=""smileys/idea.gif"" alt=*Idé*>")
text = Replace(text,":k","<img src=""smileys/hearts.gif"" alt=*Pussar*>")
text = Replace(text,":8","<img src=""smileys/stir.gif"" alt=*Stirrar*>")

text = Replace(text,":z","<img src=""smileys/zzz.gif"" alt=*Sover*>")
text = Replace(text,":b","<img src=""smileys/flower.gif"" alt=*Blommor*>")
text = Replace(text,":nix","<img src=""smileys/nix.gif"" alt=*Ingen aning*>")
text = Replace(text,":g","<img src=""smileys/gaspar.gif"" alt=*Gäspar - uttråkad*>")
text = Replace(text,":sj","<img src=""smileys/sick.gif"" alt=*Sjuk*>")

Smiley = text

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

Någon som har någon idé om hur jag ska få det att fungera?
Det fungerar i mitt andra forum (gruvsjo-forum)...

Medlem sedan dec. 20003 563 inlägg
#6

Hmm. Borde funka.
Vad skriver den ut i visa källa och hur anropar du funktionen när det ska skrivas ut?

Medlem sedan mars 20015 287 inlägg
#7

I ställe för html-kod kan du ju implenetera "forumkod" med liknande taggar som när du lägger in smileys.
Du lär nog kunna hitta en del om du söker i forumet här.

Medlem sedan feb. 2003107 inlägg
#8

Visst ja, det skulle anropas också... :r

Jag kikade i koden till mitt andra forum och då fanns koden:

<%=FixaLankar(Smiley(RecSet("body")))%>

Men jag kan inte få till det i det nya forumet som inte är byggt på samma sätt...

Jag hittar raden där koden ska in men jag får det inte rätt.

<P><IMG SRC="message.gif" WIDTH="24" HEIGHT="19" ALIGN="LEFT" HSPACE="4"><%= Replace(rsMessage("Body"), vbCrLf, "<BR>" + vbCrLf) %></P>

Hjälp? (vågar snart inte fråga ;) )

Medlem sedan mars 20015 287 inlägg
#9

Kanske:

<P><IMG SRC="message.gif" WIDTH="24" HEIGHT="19" ALIGN="LEFT" HSPACE="4"><%= Smiley(Replace(rsMessage("Body"), vbCrLf, "<BR>" + vbCrLf)) %></P>
Medlem sedan feb. 2003107 inlägg
#10

Javisst fungerade det!

Nu fungerar samtliga smilysar... men HTML-koden inaktiverades.. så inga foton kan längre visas i forumet eller länkar länkas...

Måste jag välja. HTML-kod eller smilysar?

Har kikat på forumkod i (nästan) alla inlägg om detta men förstår inte mer idag. Får se en annan dag när jag smält denna informationen.

Tack alla för hjälpen.
Och har någon nån idé som skulle kunna lösa mitt problem så är det fritt fram ...

//Sylvia

Medlem sedan jan. 20032 285 inlägg
#11

/red Ojdå, strunta i meddelandet, läste fel :r

Men detta kanske funkar?

<%Function Smiley(text)

text = Replace(text,vbCrLf,"<br>")
text = Replace(text,":)","<img src=""smileys/glad.gif"" alt=*Glad*>")
text = Replace(text,":(","<img src=""smileys/sur.gif"" alt=*Ledsen*>")
text = Replace(text,";)","<img src=""smileys/flirtar.gif"" alt=*Flirtar*>")
text = Replace(text,":?","<img src=""smileys/confused.gif"" alt=*Förvirrad*>")
text = Replace(text,":D","<img src=""smileys/skrattar2.gif"" alt=*Skrattar*>")
text = Replace(text,":r","<img src=""smileys/1.gif"" alt=*Retas*>")
text = Replace(text,":/","<img src=""smileys/sad.gif"" alt=*Sur*>")
text = Replace(text,":o","<img src=""smileys/oj.gif"" alt=*Oj*>")
text = Replace(text,":x","<img src=""smileys/arg.gif"" alt=*Arg*>")
text = Replace(text,":s","<img src=""smileys/rodnar.gif"" alt=*Rodnar*>")
text = Replace(text,":!","<img src=""smileys/idea.gif"" alt=*Idé*>")
text = Replace(text,":k","<img src=""smileys/hearts.gif"" alt=*Pussar*>")
text = Replace(text,":8","<img src=""smileys/stir.gif"" alt=*Stirrar*>")

text = Replace(text,":z","<img src=""smileys/zzz.gif"" alt=*Sover*>")
text = Replace(text,":b","<img src=""smileys/flower.gif"" alt=*Blommor*>")
text = Replace(text,":nix","<img src=""smileys/nix.gif"" alt=*Ingen aning*>")
text = Replace(text,":g","<img src=""smileys/gaspar.gif"" alt=*Gäspar - uttråkad*>")
text = Replace(text,":sj","<img src=""smileys/sick.gif"" alt=*Sjuk*>")

Smiley = text

End Function
Function FixaTecken(str)
FixaTecken = Replace(Trim(str),"'","''")
End function%>
Medlem sedan feb. 2003107 inlägg
#12

:e :e :e :e

Nuu funkar det!!!

Tack!
Vad skulle jag göra utan er ;)

Bara en petitess, när man bara skriver i en länk tex https://www.dobermann.ws så blir det vanlig text

går det att omvandla till en länk automatiskt utan att besökaren behöver skriva <a href="http://www.dobermann.ws" target="_blank">https://www.dobermann.ws</a>

Inte nödvändigt men skulle underlätta :-)

Eller man kanske skulle ha något fält där man skriver i ev länkadress eller bildadress när man skickar sitt inlägg...
Jag får fundera vidare på det... databasen är lite för komplicerad för att bara lägga till ett fält tror jag så det får väl förbli som det är i så fall.

Medlem sedan jan. 20032 285 inlägg
#13

Det där om att göra länkar till länkar automatiskt: lägg till detta till funktionen

Set RegExp = New Regexp
RegExp.Global = true
RegExp.IgnoreCase = true
RegExp.Pattern = "(http:\/\/)?((www\.){1}(.*)(\.[A-Za-z_0-9]*))"
Smiley = RegExp.Replace(text,"<a href=""http://$2"">$2</a>")
Set RegExp = Nothing

Kanske funkar, vet ej.

Medlem sedan feb. 2003107 inlägg
#14

Tyvärr,

Jag får felmeddelande:

Error Type:
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined: 'RegExp'

Medlem sedan jan. 20032 285 inlägg
#15

Testa att skriva "Dim RegExp" över det andra?

Medlem sedan juni 200032 967 inlägg
#16

Om du har Option Explicit satt på asp-sidan så måste du definiera alla variabler (som RegExp ex.) som du ska använda.

Mvh,

Medlem sedan feb. 2003107 inlägg
#17

Sebbe: Då har jag satt Dim RegExp och fick sätta Dim Text också eftersom jag fick samma felmeddelande på detta som ovan.

Men nu har jag ett nytt felmeddelande:
Error Type:
Microsoft VBScript runtime (0x800A01F5)
Illegal assignment: 'Smiley'

@nders: jag hittar inget om Option Explicit...

Medlem sedan jan. 20032 285 inlägg
#18

La du verkligen den där kodsnutten innuti Smiley funktionen? För då borde det funka med "text" eftersom det är "värdes-variabeln" i funktionen.

Medlem sedan feb. 2003107 inlägg
#19

uj, nej det gjorde jag inte :r men nu ligger den där och fyller ingen funktion?

Inga felmeddelanden dock men heller inga automatiska länkar om man skriver i https://www.europenytt.com direkt i sitt inlägg (utan a href-taggar)

Det är ju ingen panik om jag inte kan få det att fungera men användarna av forumet kan inte någon HTML-kod och inte många har tillgång till typ Frontpage för att generera någon.

Jag får väl helt enkelt göra en enkel skola om detta och där jag beskriver hur Smileysarna ska skrivas för att synas också.

Medlem sedan jan. 20032 285 inlägg
#20

Kanske detta funkar?

Set RegExp = New Regexp
RegExp.Global = true
RegExp.IgnoreCase = true
RegExp.Pattern = "(http:\/\/)?((www\.){1}(.*)(\.[A-Za-z_0-9]*))"
text = RegExp.Replace(text,"<a href=""http://$2"">$2</a>")
Set RegExp = Nothing
Smiley = text

Inte för att jag förstår hur det ska kunna göra någon skillnad, men kanske? :)

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