PHP, HTTP_REFERER iframe çalışmıyor?

2 Cevap php

Tamam, işte benim durum.

Ben Mainsite (flash site) olan, index.php, bir sayfa var

Ben index.php iframe içeren iframe.php adlı başka bir sayfa var

Başka bir sayfa, dnm.php. İçinde 2 bağlantıları, 1 bağlantı doğrudan index.php, başka bir bağlantı iframe.php etmektir zorunda

Ben test:

  • I iz zaman, 1 bağlantısını tıklatın / http_referer echo, bu "test.php" görüntüler, ancak

  • I iz zaman, 2. linke tıklayın / http_referer echo, bu "iframe.php" görüntüler.

Neden "iframe.php" gösterilecek? HTTP_REFERER iframe çalışmıyor mi?

I ikinci linke tıkladığınızda "test.php" almak için yine de var mı?

Index.php: için kaynak kodu

<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 için kaynak kodu

<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 için kaynak kodu:

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

2 Cevap

Her iki durumda da index.php çıkışını görüyoruz. İşte sebebi:

Senaryo 1)

Eğer test.php, (as HTTP_REFERER test.php ile) index.php yükler bağlantıdan index.php vurduğunuzda .

Senaryo 2)

Eğer vurduğunuzda iframe.php bağlantıdan test.php, bu iframe.php yükler ki <iframe> dahili yükler index.php Etiket (iframe.php gibi HTTP_REFERER).

Ne yazık ki, hayır. Bir iframe içinde gösterilen bir sayfa için HTTP_REFERER değeri her iframe içerdiği ana sayfa olacaktır.

HTTP_REFERER zaten saymak biraz zor olma eğilimindedir. Eğer etrafında herhangi bir önemli mantık inşa önleyebilirsiniz, bunu yapmak için iyi bir fikirdir.

Belki de son sayfayı saklamak için oturumu kullanabilirsiniz zaman dnm.php yükler ziyaret - Ben php kullanıyorsunuz toplamak? Test.php üzerinde, set $_SESSION['referringPage'] = 'test.php';. Sonra index.php, sen $_SESSION['referringPage'] değerini okumak ve ne olursa olsun sayfa iframe içinde yüklü olup olmadığı aynı bilgi alabilirsiniz.