Avatar billede sjh Nybegynder
19. februar 2005 - 19:13 Der er 10 kommentarer og
1 løsning

HTTP_REFERER virker ikke som jeg vil

Jeg har lavet et script som viser et billede, men billede må kun vises på bestemte domæne.. jeg har prøvet med $_SERVER["HTTP_REFERER"]; men den viser ikke noget kun på den server som script ligger på..

hvordan for jeg det til at virke??

<?php
  //-- image.php
  $strReferer = $_SERVER["HTTP_REFERER"];
  if (eregi("(http)\://(www.)([^/:]*)\:{0,1}([^/]*)(.*)", $strReferer, $arrVars)) {
    $strReferer = $arrVars[3];
    $arrHost = array("domæne1.dk", "domæne2.dk", "domæne3.dk");
    if (!in_array($strReferer, $arrHost)) {
      echo "<h3>Ingen adgang.</h3>";
      exit;
    }
  } else {
    echo "<h3>Ingen adgang.</h3>";
    exit;
  }
?>

<img src="http://domæne1.dk/image.php?id=1234" border="0" alt="">
Avatar billede bojo Nybegynder
20. februar 2005 - 00:19 #1
hvis du kalder direkte i din url linie er $_SERVER["HTTP_REFERER"] tom, men hvis den kommer fra en anden url, som link er der noget i den
Avatar billede sjh Nybegynder
20. februar 2005 - 11:31 #2
Hvis jeg indsætter denne linje på min side (mit_domæne.dk)
<img src="http://mit_domæne.dk/image.php?id=1234" border="0" alt="">

så er $strReferer = mit_domæne.dk

Men hvis jeg indsætter denne linje på en anden side (andet_domæne.dk)
<img src="http://mit_domæne.dk/image.php?id=1234" border="0" alt="">

så er $strReferer = tom (da ville jeg godt have at det var andet_domæne.dk)

Kan man ikke det??
Avatar billede bojo Nybegynder
20. februar 2005 - 12:51 #3
prøv at udskrive $_SERVER["HTTP_REFERER"] i stedet
Avatar billede sjh Nybegynder
20. februar 2005 - 12:54 #4
det har jeg også gjort (gemmer det i en tekst file)
Avatar billede bojo Nybegynder
20. februar 2005 - 13:02 #5
sært, hvis jeg laver link på min lokale server til mit hotel, viser hotellet hvor den kommer fra. Så dit script fejler ikke noget.
Avatar billede sjh Nybegynder
20. februar 2005 - 13:13 #6
hmm ja det virker jo godt nok.. men bare ikke når det er en <IMG... som kommer på siden :(
Avatar billede sjh Nybegynder
20. februar 2005 - 17:09 #7
aha.. nu har jeg fundet fejlen.. (jeg kan jo ikke vide om der er www. forand) :D

eregi("(http)\://([^/:]*)\:{0,1}([^/]*)(.*)", $strReferer, $arrVars)

bojo smid et svar så kan du få 100 point for du havede jo lidt ret med at udskrive HTTP_REFERER.. jeg skulle bare gemme det før jeg kørte det andet.. :D
Avatar billede bojo Nybegynder
20. februar 2005 - 17:59 #8
Nej tak, svar selv og husk at acceptere svaret ;-)
Avatar billede sjh Nybegynder
20. februar 2005 - 19:54 #9
så kan vi dele dem 50 til dig og 50 til mig ;)
Avatar billede bojo Nybegynder
20. februar 2005 - 20:52 #10
Nej tak, samler ikke point
Avatar billede sjh Nybegynder
20. februar 2005 - 21:27 #11
øv.. nu ville jeg ellers gerne af med nogle af mine :D
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