Avatar billede webstuff Nybegynder
14. februar 2006 - 13:23 Der er 19 kommentarer og
1 løsning

bannersystem blokeres af Norton

Jeg har lavet et baner system til en side, men den tæller ikke "Indkomne" links hvis man har Norton Firewall slået til, og det er jo lidt noget skidt eftersom den er forholdsvis meget udbredt ;-)

Her er min kode, nogen der kan se hvad der skal rettes?
------------------------------------
$ref = $_SERVER['HTTP_REFERER'];
  $realurl = parse_url($ref);
  $indsaet = $realurl['host'];

  $tael_ref = mysql_query("SELECT id FROM bannerlinks WHERE link = '$indsaet'") or die(mysql_error());
    $antal_ref = mysql_num_rows($tael_ref);
    if($antal_ref==1){
      $ip = $_SERVER['REMOTE_ADDR'];
      $vis_ref = mysql_fetch_assoc($tael_ref);
      $tael_ip = mysql_query("SELECT COUNT(*) FROM ipind WHERE ip = '$ip' AND id = '$vis_ref[id]' AND DATE_ADD(tid, INTERVAL 20 MINUTE) > NOW()") or die(mysql_error());
        $antal_ip = mysql_result($tael_ip, 0);
    if($antal_ip==0){
      mysql_query("UPDATE bannerlinks SET ind = ind+1 WHERE id = '$vis_ref[id]'") or die(mysql_error());
      mysql_query("INSERT INTO ipind (ip, id, tid)VALUES('$ip', '$vis_ref[id]', NOW())") or die(mysql_error());
    }
    }
---------------------------------------

Mvh. Andreas
Avatar billede webstuff Nybegynder
14. februar 2006 - 13:34 #1
Har en mistanke om at fejlen ligger her:
-_-_-_-_-_-_
$ref = $_SERVER['HTTP_REFERER'];
  $realurl = parse_url($ref);
  $indsaet = $realurl['host'];
_-_-_-_-_-_-_-_-_-_

Kan det ikke godt passe?
Avatar billede cronaldo Nybegynder
14. februar 2006 - 13:59 #2
Måske du sku forklare hvad du gør de forskellige steder fordi det er da pænt rodet det deT
Avatar billede webstuff Nybegynder
14. februar 2006 - 14:04 #3
Hvad med dette:
-------------------------------------------------------------------------

//Finder ud af hvor brugeren kommer fra


$ref = $_SERVER['HTTP_REFERER'];
  $realurl = parse_url($ref);
  $indsaet = $realurl['host'];



  //Tjekker om brugeren kommer fra en side som jeg linker til

  $tael_ref = mysql_query("SELECT id FROM bannerlinks WHERE link = '$indsaet'") or die(mysql_error());
    $antal_ref = mysql_num_rows($tael_ref);
    if($antal_ref==1){
   


    //Hvis der findes en link magen til det brugeren kommer fra skal vi tjekke om han/hun har lavet en indkomment link inden for de sidste 20 min.

      $ip = $_SERVER['REMOTE_ADDR'];
      $vis_ref = mysql_fetch_assoc($tael_ref);
      $tael_ip = mysql_query("SELECT COUNT(*) FROM ipind WHERE ip = '$ip' AND id = '$vis_ref[id]' AND DATE_ADD(tid, INTERVAL 20 MINUTE) > NOW()") or die(mysql_error());
        $antal_ip = mysql_result($tael_ip, 0);
    if($antal_ip==0){



    //Hvis han/hun ikke har lavet et indkomment link, så skal der laves et :-)

      mysql_query("UPDATE bannerlinks SET ind = ind+1 WHERE id = '$vis_ref[id]'") or die(mysql_error());
      mysql_query("INSERT INTO ipind (ip, id, tid)VALUES('$ip', '$vis_ref[id]', NOW())") or die(mysql_error());
    }
    }
Avatar billede dmdisco Nybegynder
14. februar 2006 - 14:11 #4
er det HTTP_REFERER der ikke bliver sat når der er firewall på så? det er jo ikke en variabel man kan regne med da det ikke er alle browsere der sender den med eller er problemet med remote_adr?
Avatar billede webstuff Nybegynder
14. februar 2006 - 14:32 #5
Den udskriver begge dele.. :S
Avatar billede webstuff Nybegynder
14. februar 2006 - 14:39 #6
Tror det der sker når man har slået Norton Firewall til er at HTTP_REFERER bliver den side man kommer ind på og ikke den man kommer fra..
Nogen der har en idé om hvad man kan gøre ved det ?
Avatar billede webstuff Nybegynder
14. februar 2006 - 14:47 #7
Nej det er heller ikke fejlen :-S
Avatar billede webstuff Nybegynder
14. februar 2006 - 21:16 #8
ingen der ved noget om det?
Avatar billede olebole Juniormester
14. februar 2006 - 21:29 #9
<ole>

HTTP_REFERER bør du ikke bruge til noget. Du kan ikke regne med, at den sættes, når du forventer det - og den er pærelet at fake

/mvh
</bole>
Avatar billede webstuff Nybegynder
15. februar 2006 - 01:31 #10
Okay, hvad ville du så bruge i stedet ? :-)
Avatar billede olebole Juniormester
15. februar 2006 - 01:53 #11
Du kan ikke få en sikker reference til siden, der kalder scriptet. REMOTE_ADDR er også usikker, da et firma typisk har én IP, set udefra - og desuden kan man gå gennem en proxy, der sætter en tilfældig IP
Avatar billede webstuff Nybegynder
15. februar 2006 - 01:56 #12
Kan den på ingen måde lade sig gøre at få en sikker reference?
Hvordan skal jeg kunne tjekke om brugeren har klikket inden for de sidste 20 minutter på en måde der er mere sikker end at tjekke ip?
Avatar billede olebole Juniormester
15. februar 2006 - 02:21 #13
Det kan du ikke uden videre checke, da der sagtens kan sidde 300 medarbejdere bag den samme IP. En cookie er nok den bedste løsning ... selvom den naturligvis også kan manipuleres.
Avatar billede webstuff Nybegynder
15. februar 2006 - 02:28 #14
Jeg ved godt at man kan risikere at udelukke en masse brugere ved at tjekke via IP, men samtidig kan man også få en fuldstændig upålidelig statistik hvis man bruger Cookie.. Men den side det skal bruges på bliver primært besøgt at private i løbet af eftermiddagen/aftenen :-)

Men er det ikke muligt at tjekke hvor brugeren kommer fra på en anden og mere sikker måde en HTTP_REFERER???
Avatar billede olebole Juniormester
15. februar 2006 - 02:37 #15
Nej - og en IP-/REFERER-statistik er såmænd ikke mere pålidelig en en, der er baseret på cookies.
Avatar billede webstuff Nybegynder
15. februar 2006 - 09:22 #16
Okay.. Så det eneste jeg kan gøre for at forbedre det er at finde ud af hvad der vil være bedst i denne situation cookie/http_referer..
Men, man tak for hjælpen så.. Du må gerne lægge et svar :-)
Avatar billede webstuff Nybegynder
15. februar 2006 - 11:17 #17
jeg mener selvfølgelig ikke cookie/http_referer men cookie/remote_addr ;o)
Avatar billede olebole Juniormester
15. februar 2006 - 15:32 #18
Ja, jeg er ked af, jeg ikke kan være til mere hjælp - men sådan er tingene nu engang skruet sammen  :o|
Avatar billede webstuff Nybegynder
16. februar 2006 - 03:10 #19
hehe,,, anyways tak for hjælpen...
Avatar billede olebole Juniormester
16. februar 2006 - 14:49 #20
- og tak for points  :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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