PHP HTTP_REFERER funktioniert nicht auf iframe?
Okay, hier ist meine situation.
Ich habe eine Seite, index.php, was ist der mainsite (flash-site)
Habe ich eine andere Seite aufgerufen iframe.php die enthalten iframe index.php
Anderen Seite, test.php. Innen haben 2 links, 1. link ist direkt auf index.php ein anderes link ist iframe.php
Getestet habe ich:
-
Ich auf den 1. link, wenn ich Spur/echo der HTTP_REFERER, es zeigt "test.php" aber
-
Klicke ich auf den 2. link, wenn ich Spur/echo der HTTP_REFERER, es zeigt "iframe.php".
Warum er display "iframe.php"? Ist HTTP_REFERER funktioniert nicht auf iframe??
Gibt es trotzdem, um die "test.php" wenn ich auf den zweiten link?
Source-code für :index.php
<html>
<head> //Some headers information
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript">
var flashvars = {};
<?php
if(!empty($_SERVER['HTTP_REFERER'])){
?>
flashvars.link = '<?php echo $_SERVER['HTTP_REFERER']; ?>';
<?php
}
?>
var params = {};
var attributes = {};
swfobject.embedSWF("main.swf, "content", "100%", "100%", "9", "expressInstall.swf", flashvars, params, attributes);
</script>
</head>
<body>
<div id="content">
<a href="http://www.adobe.com/go/getflashplayer">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
</div>
</body>
</html>
Source-code für iframe.php
<html> headers tag
...
<body>
<center><iframe src="index.php" mce_src="index.php" frameborder="0" height="500" scrolling="no" width="500"></iframe></center>
</body>
</html>
Source-code für test.php:
....
<a href="iframe.php" target="_blank">This is Iframe</a> <br><br>
....
<a href="index.php" target="_blank">This is normal link</a> <br><br>
- Bitte posten Sie die Quelle code für
index.php
,test.php
undiframe.php
so können wir versuchen, zu reproduzieren das Problem. - roger, der. Gib mir 5 Minuten
Du musst angemeldet sein, um einen Kommentar abzugeben.
In beiden Fällen sehen Sie die Ausgabe des
index.php
. Ist hier, warum:Szenario 1)
Getroffen, wenn Sie
index.php
aus dem link intest.php
ist, lädt erindex.php
(mittest.php
alsHTTP_REFERER
).Szenario 2)
Getroffen, wenn Sie
iframe.php
aus dem link intest.php
ist, lädt eriframe.php
welche intern lädtindex.php
im<iframe>
tag (mitiframe.php
alsHTTP_REFERER
).<iframe>
tag iniframe.php
. Nun, was passiert?<iframe>
war Ihnen zu beweisen, dass die Ausgabe, die Sie sehen, wenn Sie schlageniframe.php
war in der Tat ausindex.php
und geladen werden über die<iframe>
tag. Sowohl @Paul und mir erzählen Sie die gleiche Sache in unterschiedlicher Weise.Leider Nein. Die HTTP_REFERER-Wert für eine Seite angezeigt, die innerhalb eines iframe wird immer die übergeordnete Seite, die das iframe.
HTTP_REFERER neigt dazu, ein wenig schwierig zu zählen, auf jeden Fall. Wenn Sie können, vermeiden Sie Gebäude alle wichtigen Logik, um es, es ist eine gute Idee dies zu tun.
Entnehme ich, du bist mit php-vielleicht könnten Sie-Sitzung zu speichern, die zuletzt besuchte Seite, wenn test.php Lasten? Auf test.php legen Sie
$_SESSION['referringPage'] = 'test.php';
. Dann auf index.php Lesen Sie den Wert von$_SESSION['referringPage']
, und Sie erhalten die gleichen Informationen, unabhängig davon, ob die Seite geladen wurde innerhalb des iframe.$_SESSION
Ansatz, den Sie empfehlen, ist Fehler anfällig, wenn Sie mehrere browser-Fenster/tabs offen. Verschiedene Anfragen können sich gegenseitig überschreiben die session-Werte.