webForumDet fria alternativet

Infoga kod i ett forum?

PHP

3 svar · 235 visningar · startad av Niklasson

Medlem sedan nov. 2000857 inlägg
Frågan#1

[ Redigerat hela inlägget 2001-05-12 00:58 ]

Jag har ett litet dilemma. Jag har nämligen hittat en typ av bugg!
Jag skriver ett forum och använder mig av denna kod innan inlägget skrivs in i databasen:

$text = str_replace("<", "<", $text);
$text = str_replace(">", ">", $text);
$text = str_replace('"', """, $text);

Kanske inget märkvärdigt med det, men eftersom jag vill att folk skall kunna länka och skapa fet text osv. så har jag lagt in följande:

$text = str_replace("[b]", "<b>", $text);
$text = str_replace("[/b]", "</b>", $text);
$text = str_replace("[i]", "<i>", $text);
$text = str_replace("[/i]", "</i>", $text);
$text = str_replace("[u]", "<u>", $text);
$text = str_replace("[/u]", "</u>", $text);
$text = eregi_replace("\\[url\\]www.([^\\[]*)\\[/url\\]", "<a href=\"http://www.\\1\" target=_blank>\\1</a>", $text);
$text = eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>\\1</a>", $text);
$text = eregi_replace("\\[url=([^\\[]*)\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>\\2</a>", $text);
$text = eregi_replace("\\[epost\\]([^\\[]*)\\[/epost\\]", "<a href=\"mailto:\\1\">\\1</a>", $text);
$text = eregi_replace("citat\\]", "citat]", $text);
$text = str_replace("[citat]\r\n", "<blockquote>citat:<hr><font size=\"1\" color=\"#660000\">", $text);
$text = str_replace("[citat]", "<blockquote>citat:<hr><font size=\"1\" color=\"#660000\">", $text);
$text = str_replace("[/citat]\r\n", "</font><hr></blockquote>", $text);
$text = str_replace("[/citat]", "</font><hr></blockquote>", $text);

Nu kommer problemet! Titta hur forumet publicerade detta!!! Helt fel!

Eftersom forumet översätter [+b+] till <b> så gör den det även i denna kod-sträng. Likadant händer med de andra [ ]-kommandona..

Vad jag vet så finns det inget specialtecken som ersätter [ och ]. Finns det något annat sätt att lösa detta problemet?

[Redigerat av Niklasson den 12 maj 2001]

Medlem sedan okt. 20001 285 inlägg
#2

//function fixa_kod ($inlagg) {
$inlagg = nl2br($inlagg);
// UBB kod
$inlagg = str_replace("","<img src=\"/bilder/ikoner/point.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace("","<b>",$inlagg);
$inlagg = str_replace("
","</b>",$inlagg);
$inlagg = str_replace("","<i>",$inlagg);
$inlagg = str_replace("
","</i>",$inlagg);
$inlagg=eregi_replace("\\*)\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\">\\2</a>",$inlagg);
$inlagg=eregi_replace("\\[icq=([^\\[]*)\\]([^\\[]*)\\[/icq\\]","<a href=\"http://wwp.icq.com/scripts/Search.dll?to=\\\\1\\"\>\\\\2\</a\>",$inlagg);
$inlagg=eregi_replace("\\*)\\]([^\\[]*)\\[/color\\]","<font color=\\1>\\2</font>",$inlagg);
$inlagg=eregi_replace("\\*)\\]([^\\[]*)\\[/email\\]","<a href=\"mailto:\\1\">\\2</a>",$inlagg);
$inlagg=eregi_replace("quote\\]","quote]",$inlagg);
$inlagg=str_replace("

\r\n","<blockquote><smallfont>Quote:</smallfont><hr>",$inlagg);
$inlagg=str_replace("

","<blockquote><smallfont>Quote:</smallfont><hr>",$inlagg);
$inlagg=str_replace("

\r\n","<hr></blockquote>",$inlagg);
$inlagg=str_replace("

","<hr></blockquote>",$inlagg);

$inlagg = str_replace(":)","<img src=\"bilder/ikoner/smile.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(":-)","<img src=\"bilder/ikoner/smile.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(":E","<img src=\"bilder/ikoner/teeth.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(":p","<img src=\"bilder/ikoner/tongue.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(">:(","<img src=\"/bilder/ikoner/angry.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(":(","<img src=\"bilder/ikoner/sad.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(";(","<img src=\"bilder/ikoner/cry.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(":-(","<img src=\"bilder/ikoner/sad.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(":\\","<img src=\"bilder/ikoner/hmm.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(":o","<img src=\"bilder/ikoner/embaressed.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(";)","<img src=\"bilder/ikoner/wink.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(";-)","<img src=\"bilder/ikoner/wink.gif\" border=\"0\" alt=\"\">",$inlagg);
$inlagg = str_replace(":Y","<img src=\"bilder/ikoner/pants.gif\" border=\"0\" alt=\"\">",$inlagg);

//return $inlagg;
//}

------------------
" The code is out there "

Medlem sedan nov. 2000857 inlägg
#3

hmmm... :l

Den koden hade jag ju redan :q :)

------------------
http://www.niklasson.net/

Medlem sedan okt. 20001 285 inlägg
#4

Ooops.. hade lite bråttom.. "sprang" igenom ditt inlägg utan att kolla noga vad du ville :) ...

------------------
" The code is out there "

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