Avatar billede divad Nybegynder
27. oktober 2003 - 09:31 Der er 13 kommentarer og
1 løsning

fejl i min kode

Jeg har for nyligt konventeret min access database til MySql. Derfor har jeg oplevet en del problemer på min hjemmeside. Når jeg går ind på min hjemmeside får jeg følgende fejl, som kan ses her http://www.b-teens.dk/default.asp

------------------------------------------
functions.asp

<%
    Response.Buffer = True

    Function opendb()
    SQLserveradr="localhost"
    SQLdatabase="b_teens_dk"
    SQLlogin="b_teens_dk"
    SQLpassword="18B82XAP"

    Set Conn = Server.CreateObject("ADODB.Connection")

    conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
    conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=16386"

    Conn.Open conStr
    End function

    Function closedb ()
        conn.close
        Set conn = nothing
    End Function

    'sideinformation

    function getpage
        pagestr = request.querystring("page")
       
        if pagestr = "" then pagestr = 1
           
        getpage = pagestr
    end function

    function getpagename
        if getpage() = 1 then getpagename = "forside"
   
        if getpage() = 2 then getpagename = "information"

        if getpage() = 3 then getpagename = "klassen"

        if getpage() = 4 then getpagename = "kalender"
   
        if getpage() = 5 then getpagename = "forum"

        if getpage() = 6 then getpagename = "tagwall"
   
        if getpage() = 7 then getpagename = "kontakt"

        if getpage() = 8 then getpagename = "links"

        if getpage() = 9 then getpagename = "login"

        if getpage() = 10 then getpagename = "registrering"

        if getpage() = 11 then getpagename = "administration"
    end function

    function getmode
        modestr = request.querystring("mode")
       
        if modestr = "" then modestr = "normal"
       
        getmode = modestr
    end function


        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

   
    'adgangskontrol

    function logout
        session("login") = ""
        session("memberid") = ""
        session("username") = ""
        session("authlevel") = ""
    end function

    function restricted
        if session("login") = "" then
        response.redirect "?page=9"
        end if
    end function
   
    function ban
        SQL = "SELECT COUNT(*) as found FROM ban WHERE ip = '" & request.ServerVariables("REMOTE_HOST") & "'"
        set RS = conn.execute(SQL)
       
        if RS("found") > 0 then
        response.redirect("pages/llamah.asp")
        end if
       
        RS.close
        set RS = nothing
    end function
%>
-------------------------------------------------
På forhånd tak
Avatar billede lester_dk Nybegynder
27. oktober 2003 - 09:35 #1
kommer du mon til at lukke din forbindelse før alle kald er lavet?
Avatar billede divad Nybegynder
27. oktober 2003 - 09:40 #2
jeg ved det ikke - jeg er total noob til asp :D
Avatar billede lester_dk Nybegynder
27. oktober 2003 - 09:43 #3
hvad står der i den linie den brokker sig over?
Avatar billede divad Nybegynder
27. oktober 2003 - 09:43 #4
set RS = conn.execute(SQL)
Avatar billede lester_dk Nybegynder
27. oktober 2003 - 09:51 #5
Kan ikke se hvor den går galt desværre... men mistænker da selvfølgelig lidt din BAN funktion.
Desuden kan jeg ikke se du kalder din luk database funktion.... Husk altid at man skal lukke sin database.

Kan faktisk slet ikke se hvor du kalder alle disse funktioner..... så hvis du kalder f.eks. BAN før OPENDB så går det jo galt. :-(
Avatar billede divad Nybegynder
27. oktober 2003 - 09:52 #6
Kan jeg ikke bare give dig nogle af filerne ?!
Avatar billede lester_dk Nybegynder
27. oktober 2003 - 10:20 #7
Har desværre ikke tid resten af dagen... Men håber der er en anden der kan hjælpe dig nu her... :-(
Avatar billede mik.mak Nybegynder
27. oktober 2003 - 10:42 #8
Kan det ikke passe at du skal kalde funktionen opendb() under funktionen ban?

function ban
  opendb()
  SQL = "SELECT COUNT(*) as found FROM ban WHERE ip = '" & request.ServerVariables("REMOTE_HOST") & "'"
  set RS = conn.execute(SQL)
     
  if RS("found") > 0 then
    response.redirect("pages/llamah.asp")
  end if
     
  RS.close
  set RS = nothing
end function

/michael
Avatar billede divad Nybegynder
27. oktober 2003 - 11:40 #9
Nej , den melder fejl i samme linje!
Avatar billede divad Nybegynder
27. oktober 2003 - 11:42 #10
Kan det være det dokument hvor den kalder funktionen ban, som der er galt med?
Avatar billede mik.mak Nybegynder
27. oktober 2003 - 12:25 #11
Prøv at kig den følgende hjemmeside omkring åbning af database via funktion :
http://www.shiningstar.net/articles/articles/database/datafunctions.asp?ID=AW

Måske kunne du bruge et eller andet.


/michael
Avatar billede divad Nybegynder
27. oktober 2003 - 13:18 #12
mik.mak>> Øverst i funcktion.asp åbner den jo adgang til databasen, men den lukker den også igen. Når vi så kommer ned i bunden til "functions ban" ¨åbner den jo egentlig ikke nogle database!

Kan det være det som er galt
Avatar billede mik.mak Nybegynder
27. oktober 2003 - 13:28 #13
kan du ikke prøv at sende function.asp til mp@mipsweb.dk, så vil jeg gerne prøve at kigge nærmere på den.

/michael
Avatar billede divad Nybegynder
27. oktober 2003 - 13:35 #14
ok - det gør jeg bare
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