Avatar billede Slettet bruger
21. november 2007 - 15:55 Der er 14 kommentarer og
1 løsning

Counter virkede i en uge

Jeg har lavet denne counter (med "HTTP_REFERER", men uden "directedfromdomain") og den virkede fint nok, men en uge efter satte jeg så "directedfromdomain"-delen ind og efter den ændring så har der ikke været et eneste besøg hvor der har været indhold i "HTTP_REFERER".
Hvad kan årsagen være til det?

<%
strSQL = "Select * from sys_counter where ctIP='" & Request.ServerVariables("REMOTE_ADDR") & "' AND ctDate=Date()"
Set rsCountvisits = ConnMain.Execute(strSQL)

If rsCountvisits.EOF OR rsCountvisits.BOF Then

  directedfromdomain = Request.ServerVariables("HTTP_REFERER")
  If directedfromdomain > "" Then
  directedfromdomain = Split(Replace(directedfromdomain, "http://", "",1,-1,1), "/")
    If Left(directedfromdomain(0),3) = "www" Then
      directedfromdomain = mid(directedfromdomain(0),5)
    Else
      directedfromdomain = directedfromdomain(0)
    End If
  End If

  strSQL = "Insert into sys_counter ("
  strSQL = strSQL & "[ctIP], "
  strSQL = strSQL & "[ctDirectedFromDomain], "
  strSQL = strSQL & "[ctDirectedFromURL] ) "
  strSQL = strSQL & "Values ("
  strSQL = strSQL & "'" & Request.ServerVariables("REMOTE_ADDR") & "', "
  strSQL = strSQL & "'" & directedfromdomain & "', "
  strSQL = strSQL & "'" & Request.ServerVariables("HTTP_REFERER") & "' ) "
  ConnMain.Execute(strSQL)

End If

rsCountvisits.Close
set rsCountvisits = Nothing
%>
Avatar billede nielle Nybegynder
21. november 2007 - 18:46 #1
Prøv at rette:

If directedfromdomain > "" Then

til:

If directedfromdomain <> "" Then

og se om scriptet så kan køre uden at fejle.
Avatar billede Slettet bruger
21. november 2007 - 19:00 #2
Det vil jo ikke ændre noget, jeg har jo en "HTTP_REFERER" i min insert som ikke har noget med den IF-sætningen at gøre. Så hvis der var fejl i den IF, så ville der stadig stå den fulde adresse i "ctDirectedFromURL", men der ville derimod være et tomt "ctDirectedFromDomain"-felt.

Og scriptet fejler heller ikke (ikke noget man får besked om), men det undre mig bare at: Jeg inkluderede "HTTP_REFERER" i min counter den 13-10-2007 og den fandt en adresse på 3 ud af 4 besøg, men så satte jeg "directedfromdomain"-delen ind den 19-10-2007, og her efter har det ikke været muligt at spore en eneste adresse til dato.
Avatar billede nielle Nybegynder
21. november 2007 - 19:04 #3
Hvis der er en fejl i din ASP kode vil scriptet fejle før at det køre færdig.
Avatar billede Slettet bruger
21. november 2007 - 19:11 #4
Ja nemlig, men det vil så sige at mit script virker. Men hvorfor har den så ikke registreret mindst 1 adresse efter jeg tilføjede "directedfromdomain", når jeg har haft 330 besøg fra den dato af og til nu !?
Avatar billede nielle Nybegynder
21. november 2007 - 19:16 #5
Ok, det var nu ikke helt klart af din formulering at der faktisk kom noget i basen.
Avatar billede Slettet bruger
21. november 2007 - 19:19 #6
Okay kan godt være jeg ikke fik sagt det rigtigt, men der bliver tilføjet en post ved hvert besøg og IP adressen bliver også tilføjet. Det er kun "HTTP_REFERER" og "directedfromdomain" der ikke bliver tilføjet, ellers virker det som det skal.
Avatar billede nielle Nybegynder
21. november 2007 - 19:25 #7
Har du prøvet at udkommentere hele den If-Then blok hvor at du beregener på directedfromdomain?
Avatar billede Slettet bruger
21. november 2007 - 19:26 #8
Er ikke helt med på hvad du mener !?
Avatar billede nielle Nybegynder
21. november 2007 - 19:28 #9
Har du prøvet:

  directedfromdomain = Request.ServerVariables("HTTP_REFERER")
'  If directedfromdomain > "" Then
'  directedfromdomain = Split(Replace(directedfromdomain, "http://", "",1,-1,1), "/")
'    If Left(directedfromdomain(0),3) = "www" Then
'      directedfromdomain = mid(directedfromdomain(0),5)
'    Else
'      directedfromdomain = directedfromdomain(0)
'    End If
'  End If
Avatar billede Slettet bruger
21. november 2007 - 19:36 #10
Nej, men det kan jeg da prøve en gang. Men hvis der nu var noget galt i IF-sætningen som det her vil teste, så vil den jo stadig sætte en adresse ind i "ctDirectedFromURL", da den får oplysninger direkte fra "HTTP_REFERER", som du kan se her under.
Men vil da prøve at køre uden IF-sætning i et par dage og se om der sker noget.

  strSQL = "Insert into sys_counter ("
  strSQL = strSQL & "[ctIP], "
  strSQL = strSQL & "[ctDirectedFromDomain], "
  strSQL = strSQL & "[ctDirectedFromURL] ) "
  strSQL = strSQL & "Values ("
  strSQL = strSQL & "'" & Request.ServerVariables("REMOTE_ADDR") & "', "
  strSQL = strSQL & "'" & directedfromdomain & "', "
  strSQL = strSQL & "'" & Request.ServerVariables("HTTP_REFERER") & "' ) "
  ConnMain.Execute(strSQL)
Avatar billede nielle Nybegynder
21. november 2007 - 19:45 #11
Jeg er for så vidt enig med dig ... men koden fejler jo af en eller anden grund og så må man starte med at udelukke kodeblokke. Og siden at det er den del der er kommet til er det nok der man bør starte.
Avatar billede Slettet bruger
23. november 2007 - 14:10 #12
Nu har jeg kørt uden IF-sætningen i et par dage og nu kan jeg se HTTP_REFERER's på 3 ud af 4 besøg, dvs. at du havde ret ;-)
Men hvorfor gør den det ?
Avatar billede nielle Nybegynder
25. november 2007 - 15:26 #13
Så foreslår jeg at du prøver med denne kode i stedet:

    directedfromdomain = Request.ServerVariables("HTTP_REFERER")
    If directedfromdomain <> "" Then
        directedfromdomain = Split(Replace(directedfromdomain, "http://", ""), "/")

        If Left(directedfromdomain(0), 3) = "www" Then
            directedfromdomain = Mid(directedfromdomain(0), 4)
        Else
            directedfromdomain = directedfromdomain(0)
        End If
    End If
Avatar billede Slettet bruger
26. november 2007 - 11:20 #14
Har fundet fejlen, det var ikke <> der var problemet (bruger det dog alligevel), det var directedfromdomain, man kan åbenbart ikke bruge samme navn når man splitter, så nu ser den sådan ud, og den skulle virke, det gjorde den sidst jeg testede hehe

  directedfromdomain = Request.ServerVariables("HTTP_REFERER")
  If directedfromdomain <> "" Then
    directedfromdomainsplit = Split(Replace(directedfromdomain, "http://", ""), "/")
    If Left(directedfromdomainsplit(0), 3) = "www" Then
      newdirectedfromdomain = RIGHT(directedfromdomainsplit(0), LEN(directedfromdomainsplit(0))-4)
    Else
      newdirectedfromdomain = directedfromdomainsplit(0)
    End If
    directedfromdomain = newdirectedfromdomain
  End If

Hvis du vil teste, kan du gå ind på google.dk og søge efter "traktordata.dk" og så skulle den gerne vise siden uden fejl :)

Men tak for hjælpen, og læg et svar så du kan få nogle point.
Avatar billede nielle Nybegynder
26. november 2007 - 17:03 #15
Svar :^)

... men tag du bare selv de fleste point selv :^)
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