Php, http_referer não está trabalhando no iframe?
-
20-09-2019 - |
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>
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.