Avatar billede plumo Nybegynder
04. december 2003 - 08:07 Der er 11 kommentarer og
1 løsning

fejl med link

Jeg får følgende fejl når jeg går ind på denne side: http://www.b-teens.dk/?page=5&mode=replys&fora=1&topic=5

Linjen som den refererer til er denne her: response.write("<td valign='top' height='50' bgcolor='D4D8E1'>" & makelink(RS("body")) & "<br>")

Hvad er der galt? Jeg har for nyligt konventeret min db fra access til Mysql, og har samtidigt skiftet webhotel, så der opstår ret mange problemer på min side,
Avatar billede medions Nybegynder
04. december 2003 - 08:32 #1
response.write("<td valign='top' height='50' bgcolor='D4D8E1'>" & makelink RS("body") & "<br>")

//>Rune
Avatar billede medions Nybegynder
04. december 2003 - 08:33 #2
hmm er du sikker på den linje der er linje 647?

//>Rune
Avatar billede plumo Nybegynder
04. december 2003 - 08:35 #3
ja, 100%
Avatar billede medions Nybegynder
04. december 2003 - 08:36 #4
hmm hvad står i makelink funktionen?

og er du sikker på at du får udskrevet noget tekst?
hvad sker der hvis du blot siger:

response.write("<td valign='top' height='50' bgcolor='D4D8E1'>" & RS("body") & "<br>")

//>Rune
Avatar billede plumo Nybegynder
04. december 2003 - 08:49 #5
Så virker den, men så validere den vel heller ikke min links vel?

Kan det passe at makelink funtionenen er denne her:
Function autoHighlight(Lin)

        dim link_color, link_target, ugyldigetegn, starttegn, sluttegn, maxdomain, maxlinks, pointer, regon, regdomain, t, nolink, truelink, linkhtml, pathstart, portstart, pointeradd, middle, temp, start, i, slut, tegn, tegnf, tegne, serverslut, domain, servername, regdomains

        ' Indstillinger -----
        link_target = "_blank"        ' Link Target
        ugyldigeTegn = " _:\,;/'?" ' Ugyldige tegn omkring punktummer
        StartTegn = " ,;""<>!"        ' Tegn der starter et link fx. <H1>www.spise.dk</H1>
        SlutTegn = " ,;""<>!"        ' Tegn der slutter et link fx. www.partynet.dk!
        MaxDomain = 3                ' Max. tegn i domain navn fx "com"    (3=default)   
        MaxLinks = -1                ' (Bruges til debug) Hvor mange links skal "HighLight"'es per streng (-1 = uendelig)
        Pointer = 1                ' Ved hvad tegn skal der startes (1=default)

        ' Skal der chekes efter registrede domæner (1=ja & 0=nej)
        RegON = 1                   
        ' De registrede domæner:
        RegDomain = "dk;com;net;org;gov;edu;uk;no;se;de;as;ru;sk;ch;it;nl;fr;hu;to;au;tw;jp;"

        ' Indstillinger slut -----
 
        ' Begynd løkke
        Do until t = MaxLinks
        ' Nulstilling af de variable:
        NoLink = False            'True hvis det fundne tekst ikke er et link
        TrueLink = False        'True hvis linket begynder med http://
        Linkhtml = ""
        PathStart = 0
        PortStart = 0
        PointerADD = 0

        ' Her findes "midten" af linket
        middle = Instr(pointer,lin,".")
        temp = Instr(pointer,Lcase(lin),"http://")

        ' Dette sørger for at finde det første af enten "." eller "http://"
        If temp < middle and temp <> 0 then middle = temp+6:TrueLink = true
        If middle = 0 and temp > 0 then middle = temp+6:TrueLink = true

        ' Hvis "." eller "http://" ikke er fundet skal løkken stoppe
        If Middle = 0 then exit do

        ' Her findes starten af linket (defineret udfra start tegnene)
        start = 1
        For i = 1 to len(StartTegn)
            temp = InStrRev(Lcase(lin),mid(StartTegn,i,1),Middle)
              If temp => start and temp <> 0 then start = temp+1
        next

        ' Her findes slutningen af linket (defineret udfra slut tegnene)
        slut = len(lin)
        For i = 1 to len(SlutTegn)
              temp = Instr(Middle,Lcase(lin),mid(SlutTegn,i,1))
              If temp <= slut and temp <> 0 then slut = temp-1
        next

        'Checker efter "?" og "." de må gerne stå i midten af linket, men ikke i slutningen
        ' Fx. "www.nordmark.dk?????" eller "www.partynet.dk..."
        tegn = Mid(lin,slut,1)
        do until (tegn <> "." and tegn <> "?") or slut = 1
        If tegn = "." or tegn = "?" then slut=slut-1:PointerADD = PointerADD+1
              tegn = Mid(lin,slut,1)
        loop

        'Hvis det kun er et "." der er fundet og linket ikke begynder med http:// skal det testes ekstra
        If TrueLink = False then

        ' Her testes om punktummet står i starten eller i slutningen af strengen
        If Middle = 1 then noLink = true:start=slut+1
        If Middle = len(lin) then noLink = true:start=slut+1
        ' Her testes efter ugyldige tegn, ved siden af punktummet
        If nolink <> True then
              TegnF = Mid(lin,middle-1,1)
              TegnE = Mid(lin,middle+1,1)
              For i = 1 to len(ugyldigeTegn)
              If TegnF = mid(ugyldigeTegn,i,1) then noLink = true:start=slut+1:exit for
              If TegnE = mid(ugyldigeTegn,i,1) then noLink = true:start=slut+1:exit for
              next
        end if

        ' Her findes domæne navnet og længden chekes -> fx:".dk" ".com" ".uk"
        ' De første if-sætningr checker om der er andet efter efter server navnet
        ' som fx. port nr. eller en sti
        If nolink <> True then
          ServerSlut = Slut
          temp = Instr(Middle,Lcase(lin),"/")
          If temp <= ServerSlut and temp <> 0 then ServerSlut = temp-1:PathStart=Temp
          temp = Instr(Middle,Lcase(lin),":")
          If temp <= ServerSlut and temp <> 0 then ServerSlut = temp-1:PortStart=Temp+1
          temp = InstrRev(lin,".",ServerSlut)
          Domain = mid(Lcase(lin),temp+1,ServerSlut - temp)
          Servername = mid(lin,start,ServerSlut-start+1)
          If len(domain) > MaxDomain then noLink = true:start=slut+1 'Max tegn
          If len(domain) = 0 then noLink = true:start=slut+1 'Udrydder fx. www.spise./index.htm

        'Checker efter steder i servernavnet hvor der er mere end et punktum
          If Instr(Servername,"..") <> 0 then noLink = true:start=slut+1
        end if
 
        ' Her chekes, hvis RegON = 1, om domænenavnet er korrekt.
        If RegON = 1 and nolink <> true then
          RegDomains = split(Lcase(RegDomain),";")
          nolink = true
          For i = 0 to Ubound(RegDomains)
        If RegDomains(i) = Domain then nolink = false:exit for
          next
          If nolink = true then start=slut+1
        end if

        else
            'Hvis der står "xxhttp://", er det kun fra "http://" der skal highlightes:)
            start = Instr(pointer,Lcase(lin),"http://")
        End if

        'Dette er nogen af de ting der er mulige at spytte ud til hvert link:
        'Response.write "---------------------<BR>"
        'Response.write "LinkNr: "&t&"<BR>"
        'Response.write "Starter ved tegn: "&Start&"<BR>"
        'Response.write "Slutter ved tegn: "&Slut&"<BR>"
        'Response.write "Domænenavn: "&Domain&"<BR>"
        'Response.write "Servernavn uden path: "&ServerName&"<BR>"
        'If PathStart<>0 then Response.write "Path efter servernavn: "&mid(lin,pathStart,slut-pathstart+1)&"<BR>"

        'Hvis det fundne mulige link har bestået alle "prøverne" skal det udskiftes med html tags
        If noLink <> True then
        If Lcase(Mid(lin,start,7)) = "http://" then
              LinkHtml = "<a href='" & mid(lin,start,slut-start+1) &"' target='"&link_target&"'>"& mid(lin,start,slut-start+1) & "</a>"
        else
        if instr(mid(lin,start,slut-start+1), "@") > 0 then ' hvis der er et @ i teksten, så gør den til en mailadresse...
            LinkHtml = "<a href='mailto:" & mid(lin,start,slut-start+1) &"'>"& mid(lin,start,slut-start+1) & "</a>"
        else
            LinkHtml = "<a href='http://" & mid(lin,start,slut-start+1) &"' target='"&link_target&"'>"& mid(lin,start,slut-start+1) & "</a>"
        end if
        End If
              lin = Left(lin,start-1) & LinkHtml & right(lin,len(lin)-slut)
              t=t+1
        End If

        'Pointeren sættes til næste logiske start
        pointer = start + len(LinkHtml)+PointerADD
        loop

        autoHighlight = lin
    End function
Avatar billede eagleeye Praktikant
04. december 2003 - 17:06 #6
hvad står der i linje: ../forum.asp, line 646
Avatar billede plumo Nybegynder
04. december 2003 - 17:40 #7
Denne her: response.write("<td valign='top' height='50' bgcolor='D4D8E1'>" & makelink(RS("body")) & "<br>")

Det er bare fordi jeg har rykket lidt om på tingene så teksten nu ligger på linje 646
Avatar billede eagleeye Praktikant
04. december 2003 - 17:49 #8
Prøv at lave denne linje om:
Denne her: response.write("<td valign='top' height='50' bgcolor='D4D8E1'>" & makelink(RS("body")) & "<br>")

Til dette:
Denne her: response.write("<td valign='top' height='50' bgcolor='D4D8E1'>" & makelink("" & RS("body")) & "<br>")
Avatar billede plumo Nybegynder
04. december 2003 - 18:00 #9
Nej den virker heller ikke
Avatar billede eagleeye Praktikant
04. december 2003 - 18:03 #10
arh den hedder også autoHighlight og ikke makelink så prøv

response.write("<td valign='top' height='50' bgcolor='D4D8E1'>" & autoHighlight ("" & RS("body")) & "<br>")
Avatar billede eagleeye Praktikant
04. december 2003 - 18:05 #11
Og så skal "koden" kunne se autoHighlight funktionen enten ved funktion er i samme fil eller en include fil som inkluderes.
Avatar billede plumo Nybegynder
04. december 2003 - 18:06 #12
jeps det var det. Endnu engang har du redet min dag. Du har fortjent dine point. Lig venligst et svar!
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