[PHP] meerdere HTTP_REFERER in if

Pagina: 1
Acties:

  • mark_gl
  • Registratie: September 2001
  • Laatst online: 04-09 01:02
1 php file mag alleen maar aangeroepen worden als ie van afkomstig is van 1 van onderstaande files: test, test1, test2. Nu vind ik alleen raar dat de OR niet doet wat ik wil maar de AND wel? AND zou normaal moeten aangeven dat ie van 3 files tegelijk komt, en de OR dat ie van 1 file komt. Iemand een verklaring en waarom ik dit wil weten is om de volgende reden, ik kreeg een bericht van een bezoeker van me site met de melding dat ie niet in deze file komt waar deze controle inzit. Naar mijn mening moet dit aan de AND liggen of is er misschien iets anders waar 't aan kan liggen? Iemand een idee?


if ((!strstr($HTTP_REFERER, "test")) OR (!strstr($HTTP_REFERER, "test1")) OR (!strstr($HTTP_REFERER, "test2"))){
echo "je mag er niet in";
}
else{
echo "je bent binnen";
}

if ((!strstr($HTTP_REFERER, "test")) AND (!strstr($HTTP_REFERER, "test1")) AND (!strstr($HTTP_REFERER, "test2"))){
echo "je mag er niet in";
}
else{
echo "je bent binnen";
}

Verwijderd

Niet van die EN niet van de tweede EN niet van de derde is toch neit binnen, dat klopt toch

als je die !'s weghaalt en je zet er or's neer en je wisselt die twee zinnetjes zou het ook moeten werken

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 14-07 14:28

thomaske

» » » » » »

PHP:
1
<?$not_allowed[] = "test1";$not_allowed[] = "test2";$not_allowed[] = "test3";$not_allowed[] = "test4";if (in_array($HTTP_REFERER, $not_allowed))  echo "magnie";else   echo "magwel";?>

Dit is misschien een wat nettere oplossing?

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Verwijderd

HTTP_REFERER wordt niet door alle browsers meegestuurd. Denk dat daar je probleem ligt en niet in je code (niet naar gekeken hoor)
Dit is geen waterdichte methode om iets te controleren.

  • mark_gl
  • Registratie: September 2001
  • Laatst online: 04-09 01:02
Bij welke browser werkt deze code niet?

Ik lees net dit op php.net:
The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.

Bestaat er dan een andere methode om dit te controleren?

Verwijderd

op 1 van die pagina's een sessie aanmaken of een cookie zetten en die op die andere page controleren of hij daar geweest is :)

in iedergeval al stuk betrouwbaarder dan referer check.

hier nog wat meer info voor je over die referer :)
http://www.searchengineworld.com/newsletter/1999/q3/referers.htm
Pagina: 1