http referer

SaTaN

Erfahrenes Mitglied
Hallo Leute,

mal wieder ein problem. :mad:

bei dem unten aufgeführten code hängt der browser sich auf.
wer kann mir diesen code bitte richtig posten.
weis einfach nicht mehr weiter.
PHP:
<?php

$ref_1 = "http://irgendwas.de/";
$ref_2 = "http://www.irgenwas.de/";


if ( getenv("HTTP_REFERER") != $ref_1 || getenv("HTTP_REFERER") != $ref_2 ) {
    header("Location: " . $ref_2);
    exit;
} else {

?>

//hier steht noch ein bisschen code was nicht dazu gehört.
<?php

}

?>

vielen dank
SaTaN
 
Das "ODER" (||) ist falsch !

Du willst ja Deine Besucher auf www.irgendwas.de umleiten, wenn sie NICHT von irgendwas.de UND NICHT von www.irgendwas.de kommen, oder?


Dunsti
 
Hallo dunsti,
es geht ja darum das einige mit http://www.irgenwas.de und andere nur mit irgenwas.de kommen.
bei diesem script geht es wenn man teile einer homepage aufruft z.b.
irgenwas.de/bla/blabla.php
soll der besucher immer auf die irgenwas.de seite gelangen.
deshalb die beiden vergleiche.
wüsste sonst nicht wie es anders schreiben soll.

bitte postet es richtig.
vielen dank

SaTaN
 
durch die Negierung muss es in diesem Fall trotzdem ein UND sein ;)


probiers einfach mal aus, und Du wirst sehen, daß ich recht hab! Ich mach das nämlich auch ständig verkehrt, und weiß wovon ich rede. :p


Dunsti
 
OR geht auf jeden fall nicht weil du dann immer nur zu ref_2 weitergeleitet wirst da mindestens eins davon immer ungleich der url ist...
aber UND ist auch nicht die lösung...
 
nabend,

also wenn oder völlig falsch ist und das UND auch nicht das ware ist.
mmhhh was soll ich dann nehmen.
wie kann ich das problem dann lösen ?

na , dann postet mal alle schön eure meinung.
werde dann alles ausprobieren :-)

vielen dank
SaTaN
 
würdest Du das "UND" mal ausprobieren, würdest Du merken, daß das in dem Fall definitiv richtig ist !!!!!!!!!!!!!!!!!!!!!!! :-)


Dunsti
 
Du koenntest es mit 'xor' vielleicht loesen..

PHP:
if ( getenv($_SERVER['HTTP_REFERER']) != $ref_1 xor getenv($_SERVER['HTTP_REFERER']) != $ref_2 ) {

aber keine garantie.. :-)
 
ok, mal ganz langsam zum mitdenken :-)

die Seite soll doch dann angezeigt werden, wenn der Besucher von irgendwas.de (a) oder von www.irgendwas.de (b) kommt, und ansonsten nicht, oder?

der Befehl header(Location: ...) soll also dann ausgeführt werden, wenn der Besucher weder von "a" noch von "b" kommt.

In dem Fall kommt der Besucher also: NICHT von "a" UND AUCH NICHT von "b"

a | b
----------
0 | 0 | 1 <--- hier wird header() ausgeführt
0 | 1 | 0 <--- hier nicht, da der Besucher von "b" kommt
1 | 0 | 0 <--- hier auch nicht, da er von "a" kommt
1 | 1 | 0 <--- dieser Fall kann eigentlich nicht eintreten

also: not(a) AND not(b)

bei not(a) OR not(b) wären die Zeilen 2 und 3 auch wahr (also würde da auch der header() ausgeführt werden --> folglich wird bei dem OR der header()-Befehl immer ausgeführt)



kann mir noch jemand folgen? :p


Dunsti
 
Zurück