webForumDet fria alternativet

Fel på forumkod

ASP

2 svar · 180 visningar · startad av joakimweb

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

Jag använder en forumkod till mitt forum där www.lank.com och http://www.lank.com blir automatiskt länkar.
Men den hänger liksom upp sig, det kan bli <a href="http://<a href=" typ, går det att göra så att inte en och samma länk kollas på både http & www som start?

Eftersom http://www. innehåller www så blir den länk 2 gånger...

<%
	Function make_link(txt)

	' Initiering i början
	txt = Replace(Server.HTMLEncode(RecSet("Inlagg")),vbCrlf,"<br>")
	sPos		= inStr(lCase(txt),"http://")	' Hämtar positionen för första länken

	' Fyll denna array med tecken som avslutar en länk << HÄR KAN DU ÄNDRA OM DU VILL >>
	stoppa		= Array(";",","," ","!","<",">")

	Do While sPos <> 0 AND sPos < len(txt)
		
		' Initiering av grejer i lopen
		startLink = sPos			' Länkens startpos
		tmpChar	  = ""				' Nollställ
		tmpLink	  = ""				' Nollställ
		stop_it	  = "FALSE"

		' Plocka ut namnet på länken
		Do Until sPos > len(txt)+1 OR stop_it = "TRUE"
			tmpLink = tmpLink & tmpChar
			tmpChar = Mid(txt,sPos,1)
			endLink = sPos - 1
			sPos = sPos + 1
			For X = 0 To Ubound(stoppa)	' Kollar om tmpChar är ogiltig
				If tmpChar = stoppa(X) Then stop_it = "TRUE"
			Next
		Loop

		vanster = Left(txt,startLink-1)		' Texten till vänster om länken
		hoger	= Right(txt,len(txt)-endLink)	' Texten till höger om länken
		
		' Sätt ihop den nya texten, med länk!
		txt 	=  vanster & "<a href='" & tmpLink & "' target = '_blank'>"_
			& tmpLink & "</a>" & hoger

		' Leta fram nästa länk
		jumpTo 	= endLink + 33 + len(tmpLink)
		sPos	= inStr(jumpTo,lCase(txt),"http://")

	Loop

	sPos		= inStr(lCase(txt),"www.")	' Hämtar positionen för första länken

	' Fyll denna array med tecken som avslutar en länk << HÄR KAN DU ÄNDRA OM DU VILL >>
	stoppa		= Array(";",","," ","!","<",">")

	Do While sPos <> 0 AND sPos < len(txt)
		
		' Initiering av grejer i lopen
		startLink = sPos			' Länkens startpos
		tmpChar	  = ""				' Nollställ
		tmpLink	  = ""				' Nollställ
		stop_it	  = "FALSE"

		' Plocka ut namnet på länken
		Do Until sPos > len(txt)+1 OR stop_it = "TRUE"
			tmpLink = tmpLink & tmpChar
			tmpChar = Mid(txt,sPos,1)
			endLink = sPos - 1
			sPos = sPos + 1
			For X = 0 To Ubound(stoppa)	' Kollar om tmpChar är ogiltig
				If tmpChar = stoppa(X) Then stop_it = "TRUE"
			Next
		Loop

		vanster = Left(txt,startLink-1)		' Texten till vänster om länken
		hoger	= Right(txt,len(txt)-endLink)	' Texten till höger om länken
		
		' Sätt ihop den nya texten, med länk!

		IF NOT inStr(lCase(vanster),"http://") then
		txt 	=  vanster & "<a href='http://" & tmpLink & "' target = '_blank'>"_
			& tmpLink & "</a>" & hoger
		END IF

		' Leta fram nästa länk
		jumpTo 	= endLink + 33 + len(tmpLink)
		sPos	= inStr(jumpTo,lCase(txt),"www.")

	Loop

	' Tillåten HTML kod
	txt = Replace(txt,"[farg]","<font color='red'>")
	txt = Replace(txt,"[/farg]","</font>")
	txt = Replace(txt,"[f]","<b>")
	txt = Replace(txt,"[/f]","</b>")
	txt = Replace(txt,"[k]","<i>")
	txt = Replace(txt,"[/k]","</i>")
	txt = Replace(txt,"[b]","<b>")
	txt = Replace(txt,"[/b]","</b>")
	txt = Replace(txt,"","")

	make_link = txt

End Function
%>

Tacksam för svar!

------------------
/Joakim
www.joakimweb.com

Medlem sedan maj 2001431 inlägg
#2

tja du skulle kanske kunna ändra om koden så att den 2:a kollen tittar efter:
" <A HREF="http://www."" TARGET=_blank>www."</A> istället för "www.".
På så vis blir inte http://www. länkad igen.

sPos = inStr(lCase(txt)," <A HREF="http://www.")" TARGET=_blank>www.")</A>  ' Hämtar positionen för första länken

sedan behöver du kanske juster lite av de efterföljande stränghanteringsfunktionerna.

------------------
En eller annan godbit från pannan

[Redigerat av Herman den 13 feb 2002]

Medlem sedan feb. 2002141 inlägg
#3

Jag testade att göra det, men då laddades sidan extremt segt...

finns det inget annat sätt?
typ att "baka ihop" så att både http:// kollas och www. om inte http:// finns med?

Hoppas någon kan lösa det...

------------------
/Joakim
www.joakimweb.com

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