2

さて、これが私の状況です。

メインサイト(フラッシュサイト)であるindex.phpというページがあります

index.phpのiframeを含むiframe.phpという別のページがあります

別のページ、test.php。内部には2つのリンクがあり、最初のリンクは直接index.phpに、別のリンクはiframe.phpにリンクしています。

私はテストしました:

  • 最初のリンクをクリックすると、HTTP_REFERERをトレース/エコーすると、「test.php」と表示されますが、

  • 2番目のリンクをクリックすると、HTTP_REFERERをトレース/エコーすると、「iframe.php」と表示されます。

なぜ「iframe.php」と表示されるのですか?HTTP_REFERERはiframeで機能しませんか?

2番目のリンクをクリックしたときに「test.php」を取得する方法はありますか?

: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>

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>

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>
4

2 に答える 2

1

どちらの場合も、の出力が表示されindex.phpます。理由は次のとおりです。

シナリオ1)

index.phpのリンクからヒットするtest.phpと、ロードされますindex.phptest.phpとしてHTTP_REFERER)。

シナリオ2)

iframe.phpのリンクからヒットすると、タグに内部的test.phpに読み込まれるものが読み込まれます(として)。iframe.phpindex.php<iframe>iframe.phpHTTP_REFERER

于 2009-12-18T04:12:57.253 に答える
0

残念だけど違う。iframe内に表示されるページのHTTP_REFERER値は、常にiframeを含む親ページになります。

HTTP_REFERERは、とにかく頼りにするのが少し難しい傾向があります。その周りに重要なロジックを構築することを避けることができる場合は、そうすることをお勧めします。

私はあなたがphpを使用していることを収集します-おそらく、test.phpがロードされたときに最後にアクセスしたページを保存するためにセッションを使用できますか?test.phpで、を設定し$_SESSION['referringPage'] = 'test.php';ます。次に、index.phpで、の値を読み取り、$_SESSION['referringPage']ページがiframe内に読み込まれたかどうかに関係なく同じ情報を取得します。

于 2009-12-18T04:24:12.223 に答える