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.)
23 svar · 790 visningar · startad av syrolis
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...
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.)
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>© 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>
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]
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)...
Hmm. Borde funka.
Vad skriver den ut i visa källa och hur anropar du funktionen när det ska skrivas ut?
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.
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 ;) )
Kanske:
<P><IMG SRC="message.gif" WIDTH="24" HEIGHT="19" ALIGN="LEFT" HSPACE="4"><%= Smiley(Replace(rsMessage("Body"), vbCrLf, "<BR>" + vbCrLf)) %></P>
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
/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%>
: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.
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.
Tyvärr,
Jag får felmeddelande:
Error Type:
Microsoft VBScript runtime (0x800A01F4)
Variable is undefined: 'RegExp'
Testa att skriva "Dim RegExp" över det andra?
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,
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...
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.
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å.
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? :)