HTML PHP:防止iframe在页面刷新时记住会话状态

时间:2016-06-21 01:43:28

标签: javascript php html iframe

有没有办法在页面中声明iframe,这样每次刷新页面时,都会清除其中的任何会话变量?

现在我有一个用.NET MVC编写的Web应用程序,在其中一个页面上加载了一个指向用PHP编写的另一个应用程序的iframe。基本上发生的事情是iframe在刷新整个页面时记住会话状态,但理想情况下每次都要重新启动它。有没有办法做到这一点?或者我是否需要在页面刷新时调用iframe中的注销脚本?

1 个答案:

答案 0 :(得分:1)

它只是一个概念证明,但它有效。 您的项目缺少一些信息,但是:

你可以为第一次访问创建cookie, 如果用户重新加载页面并且存在cookie

使用参数加载iframe,否则加载普通iframe (代码是故意简短的产生iframe)

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>with iframe</title>
    <script>
        function checkFirstVisit() {    
            if(document.cookie.indexOf('checkreload')==-1) {
                document.cookie = 'checkreload=1';
                document.write('<iframe width="560" height="315" src="content.php"></iframe> ');
            }
            else {
                document.write('<iframe width="560" height="315" src="content.php?reloaded=yes"></iframe>');
            }
        }
    </script>
</head>
<body onload="checkFirstVisit()">

</body>
</html>

在你的php代码(iframe)中, 只需在需要时检查并取消设置

<?php
session_start();
if(isset($_GET['reloaded'])) {
    unset($_SESSION['name']);
} else {
    $_SESSION['name'] = 'nameSession';
}
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>frame</title>
</head>
<body>

    <p>
        <?php
        if(isset($_SESSION['name']))  { 
           echo $_SESSION['name'];
       }else{
           echo 'no name now !';
       }
       ?>
   </p>
</body>
</html>

不要忘记在方便时玩cookie(管理会话) 我希望它会对你有所帮助