Avatar billede ch007 Nybegynder
02. januar 2004 - 18:32 Der er 22 kommentarer og
1 løsning

Link i forum

Jeg vil gerne have udskiftet mine www-adresser i mit forum til "rigtige links" - altså hvis folk i mit forum henviser til www.webside.dk skal det udskiftes til: <a href='www.webside.dk</a>..." target="_blank">http://www.webside.dk>www.webside.dk</a>...

Jeg har kigget følgende to steder:

1: http://www.eksperten.dk/spm/372886

2: http://www.eksperten.dk/spm/151861

Jeg kan ikke få nogle af dem til at virke...

1: Den siger fejl i følgende linie:
Set objRegExpHTTP1 = New RegExp

2: Den siger fejl i følgende linie:
strBuf = \"\"
(ved den første \)

Jeg ved ingenting om funktioner i asp - så jeg forstår ikke koden...
Avatar billede ch007 Nybegynder
02. januar 2004 - 18:35 #1
Hvis der er en der ligger inde med et andet script som virker er det også ok...
Avatar billede eagleeye Praktikant
02. januar 2004 - 18:38 #2
Du skal havde en function som kan lave links i tekst om til klikbare links:

Der har været en konkurrence på www.netkoders.dk og vinder script er her:
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=9&id=859&tech_id=1

Runner ups:
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=9&id=860&tech_id=1


Jeg bruger selv denne som laver www adresse samt email adresse om til trykbare links.



Function LinkString2(strInput)
Set objRegExpHTTP1 = New RegExp
objRegExpHTTP1.Global = True
objRegExpHTTP1.IgnoreCase = True

objRegExpHTTP1.Pattern = "(http|ftp|https)(:\/\/[\w]+)(.[\w]+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"
strOutput = objRegExpHTTP1.Replace(strInput, "<a href='$1$2$3$4' target='_blank'>$1$2$3$4</a>")

objRegExpHTTP1.Pattern = "(^|[^\/])(www)(.[\w]+)([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?"
strOutput = objRegExpHTTP1.Replace(strOutput, " $1<a href='http://$2$3$4' target='_blank'>$2$3$4</a>")

set objRegExpHTTP1 = Nothing

LinkString2 = strOutput
End Function
Avatar billede ch007 Nybegynder
02. januar 2004 - 18:41 #3
eagleeye >> Min henvisning nr. 1 er netop til et spg du har svaret på, men den giver følgende fejl (også din "nye" kode) i linien:

/forum_skriv.asp, line 190

Set objRegExpHTTP1 = New RegExp
---------------------^
Avatar billede ch007 Nybegynder
02. januar 2004 - 18:43 #4
Jeg henter beskeden i forumet med følgende:

Tekst = (Replace(Request.Form("FormForumBesked"),vbCrLf,"<br>"))

Så ligger beskeden i Tekst med <BR> istedet for linieskift...

Hvordan få jeg den tekst over i din funktion og gemt i tekst igen så jeg kan smide den i databasen...
Avatar billede eagleeye Praktikant
02. januar 2004 - 18:44 #5
;) så misforstod jeg lige det du skrev men mit svar kan nu stadig bruges.

Hvilken Server køre du ASP koden på`?
Avatar billede eagleeye Praktikant
02. januar 2004 - 18:46 #6
Som før nævnt har der været en konkurrence og vinderen blev dette script:
http://www.netcoders.dk/sources.asp?mode=view_source&cat_id=9&id=859&tech_id=1

Som ikke bruger regular expression til at finde og lave link, men udelukket streng funktioner så det kan køre på Chili!ASP som ikke har RegExp objektet med endnu.
Avatar billede ch007 Nybegynder
02. januar 2004 - 18:47 #7
Det kan være jeg skal prøve det... Jeg kan køre Chili!ASP - Jeg er på B-one
Avatar billede eagleeye Praktikant
02. januar 2004 - 18:49 #8
Ja så vil jeg anbefale at du kigger på netcoders scriptet.
Avatar billede eagleeye Praktikant
02. januar 2004 - 18:58 #9
Angående:

2: Den siger fejl i følgende linie:
strBuf = \"\"

Så kommer der i gamle spørgsmål et \ foran " og forant '. Pga. en fejl ved teksten i kommentare som blev indført, det medførte at der kom den \ foran nogle tegn..

Så man skal selv rette:
strBuf = \"\"

Til:
strBuf = ""
Avatar billede ch007 Nybegynder
02. januar 2004 - 19:00 #10
Okay - gentager jeg er nybegynder så jeg spørger lige forsigtigt om følgende:

Funktionen starter med:
Function autoHighlight(Lin)

Og når jeg bruger:

Tekst = (Replace(Request.Form("FormForumBesked"),vbCrLf,"<br>"))

Er det så korrekt at jeg har sat Lin = Tekst og efter funktionen har jeg sat

Tekst = autoHighlight

?? Nej -> For den kommer med fejl! Okay, jeg forstår det ikke :-(
Avatar billede eagleeye Praktikant
02. januar 2004 - 19:00 #11
hmm det var en anden fejl som blev rettet og ikke "indført". Men det betyder at der er en \ foran " og '
Avatar billede eagleeye Praktikant
02. januar 2004 - 19:02 #12
Lin er en variable til funtiontion, så du kan gøre såan her:

Tekst = (Replace(Request.Form("FormForumBesked"),vbCrLf,"<br>"))
Tekst = autoHighlight(Tekst)
Avatar billede eagleeye Praktikant
02. januar 2004 - 19:11 #13
Du skal sådan set bare bruge funktionen som du bruger hvilken som helst anden ASP funktion. Hvis du vil lave alle karakter til storebogstaver i en streng skriver du jo bare:

Tekst = "abcd"
Tekst = UCase(Tekst)

Så er Tekst = "ADCD"
Avatar billede ch007 Nybegynder
02. januar 2004 - 19:14 #14
ADODB.Connection.1 error '80004005'

SQLState: 42000
Native Error Code: 1064
[TCX][MyODBC]You have an error in your SQL syntax near 'http://www.test.dk' target='_blank'>www.test.dk')' at line 1


/forum_vis_skriv.asp, line 417


Den vil ikke skrive til databasen nu...

Men bruger jeg bare response.write Tekst skriver den det rigtigt ud altså som:

<a href='http://www.test.dk' target='_blank'><font color='black'>www.test.dk</font></a>

Så hvor fejlen ligger det fatter jeg ikke... Alt andet virker jo?
Avatar billede ch007 Nybegynder
02. januar 2004 - 19:15 #15
Er det til med med UCase altså store bogstaver har det nogen betydning her?
Avatar billede ch007 Nybegynder
02. januar 2004 - 19:16 #16
Der skulle have stået:

Er det til MIG DET med UCase altså store bogstaver har det nogen betydning her?
Avatar billede ch007 Nybegynder
02. januar 2004 - 19:19 #17
Åh - kan da lige selv se en fejl </font> er jo før </a> - kigger lige på det...
Avatar billede ch007 Nybegynder
02. januar 2004 - 19:20 #18
Nej, glem det - Det skal jo stå der... Puha det er ved at være sent ;-)
Avatar billede ch007 Nybegynder
02. januar 2004 - 19:25 #19
Har selv fundet fejl... prøver lige at løse den...
Avatar billede ch007 Nybegynder
02. januar 2004 - 19:32 #20
Problemet lå i, at når jeg skrev values til min database, gik der ged i den når jeg ville skrive <a href=' så stoppede den værdi lige som når værdi står mellem to '...

Så ved andre det, hvis de får samme problem

Herefter at have snakket en del med mig selv, vil du så smide et svar eagleeye...
Avatar billede eagleeye Praktikant
02. januar 2004 - 19:41 #21
Nej det med ucase var bare et eksempel :)

Det lyder godt.

Husk før du ligger noget tekst i en databasen skal man huske at replace et ' med to '' for netop at undgå den fejl. Det er fordi SQL bruger ' til start og slut på strenge.


Tekst = (Replace(Request.Form("FormForumBesked"),vbCrLf,"<br>"))
Tekst = autoHighlight(Tekst)
Tekst = Replace(Tekst,"'","''")

og så er Tekst klar til at blive smidt i databasen ;)
Avatar billede eagleeye Praktikant
02. januar 2004 - 19:43 #22
Ja jeg var lige væk fra PC'en så det blev en monolog til sidst, jeg håber det gik, det gjorde det jo også ;)
Avatar billede ch007 Nybegynder
02. januar 2004 - 19:47 #23
Ja... Det script bruger jeg egentlig også blot inden alt dette. Det er jo ikke så smart !?

Tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB