我有一個網站與iframe。 展臺,該網站和iframe中的網站正在檢查$_SESSION["login"]
。 因此,如果會話被顯示,用戶將被註銷。會話和iframe
問題: 當用戶在站點周圍掛起一段時間並且會話顯示時,登錄頁面將出現在iframe中。 (例如,他點擊了target =「iframe」的鏈接) 我希望登錄頁面出現在父級中。
可能嗎?
我有一個網站與iframe。 展臺,該網站和iframe中的網站正在檢查$_SESSION["login"]
。 因此,如果會話被顯示,用戶將被註銷。會話和iframe
問題: 當用戶在站點周圍掛起一段時間並且會話顯示時,登錄頁面將出現在iframe中。 (例如,他點擊了target =「iframe」的鏈接) 我希望登錄頁面出現在父級中。
可能嗎?
試試這個:
<?php
if(!isset($_SESSION["login"]))
{
?>
<script>
if(self.location.href != top.location.href){
top.location = '/login.php';
}
</script>
<?php
}
?>
如果您可以使用Javascript,請使用top
訪問頂級父頁面,並將其重定向到登錄頁面。
如果會話過期時間不是強制性的,爲什麼不設置會話直到瀏覽器關閉纔會過期?
<?php ini_set("session.gc_lifetime","0"); ?>
此設置設置會話在瀏覽器關閉之前不會過期。 如果你有機會爲php.ini您可以設置爲默認
添加檢查,以您的登錄頁面wheter它是不是在iframe中加載,就像這樣:
var isInIFrame = (window.location != window.parent.location) ? true : false;
如果結果如此,嘗試在頂部窗口重新加載頁面,像這樣:
window.top.location.href="/login.php"
你有沒有考慮ü唱一些除了IFRAME以外的東西來顯示你的子內容? http://stackoverflow.com/questions/2102878/better-alternative-to-an-iframe - 不確定,但我認爲通過AJAX將您的頁面加載到DIV中會使其重定向,因此某些形式的重定向會重定向整個頁面只是子頁面,因爲瀏覽器將(有點)把它看作一個頁面。另請參閱:http://stackoverflow.com/questions/4213122/reload-page-from-ajax-loaded-subpage –