Pergunta

Ok, aqui está minha situação.

Eu tenho uma página, index.php, que é o mainsite (site flash)

Eu tenho outra página chamada iframe.php que contém o iframe de index.php

Outra página, test.php. Dentro têm 2 links, o 1º link é diretamente para index.php, outro link é para iframe.php

Eu testei:

  • Eu clico no 1º link, quando eu rastreio/ecoando o http_referer, ele exibe "test.php", mas

  • Eu clico no 2º link, quando eu rastreio/ecoando o http_referer, ele exibe "iframe.php".

Por que exibe "iframe.php"? O http_referer não funciona no iframe ??

Existe alguma maneira de obter o "test.php" quando clico no segundo link?

Código fonte para: 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>

Código -fonte para 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>

Código -fonte para 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>
Foi útil?

Solução

Em ambos os casos, você está vendo a saída de index.php. Aqui está o porquê:

Cenário 1)

Quando você bate index.php do link em test.php, ele carrega index.php (com test.php Enquanto o HTTP_REFERER).

Cenário 2)

Quando você bate iframe.php do link em test.php, ele carrega iframe.php que carregam internamente index.php no <iframe> tag (com iframe.php Enquanto o HTTP_REFERER).

Outras dicas

Infelizmente não. O valor http_referer para uma página mostrada dentro de um iframe sempre será a página pai que continha o iframe.

Http_referer tende a ser um pouco complicado de contar de qualquer maneira. Se você pode evitar criar uma lógica importante em torno dela, é uma boa ideia fazê -lo.

Concluo que você está usando o PHP - talvez você possa usar a sessão para armazenar a última página visitada quando test.php carregar? No test.php, você define $_SESSION['referringPage'] = 'test.php';. Então, no index.php, você lê o valor de $_SESSION['referringPage'], e você obtém as mesmas informações, independentemente de a página ter sido carregada no iframe.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top