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

Javascript HTML PHP:防止iframe在页面刷新时记住会话状态,javascript,php,html,iframe,Javascript,Php,Html,Iframe,是否有一种方法可以在页面中声明iframe,以便每次刷新页面时,它都会清除其中的任何会话变量 现在,我有一个用.NETMVC编写的web应用程序,它在其中一个页面上加载一个iframe,指向另一个用PHP编写的应用程序。基本上,当我刷新整个页面时,iframe会记住会话状态,但理想情况下每次都会重新启动它。有没有办法做到这一点?或者我需要在iframe on page refresh中调用注销脚本吗?这只是一个概念证明,但它可以工作。 您的项目缺少一些信息,但: 您可以为首次访问创建cookie

是否有一种方法可以在页面中声明iframe,以便每次刷新页面时,它都会清除其中的任何会话变量


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

这只是一个概念证明,但它可以工作。 您的项目缺少一些信息,但:

您可以为首次访问创建cookie, 如果用户重新加载页面,如果存在cookie

使用参数加载Iframe,否则加载普通Iframe (为了生成iframe,代码特意简短)


带iframe
函数checkFirstVisit(){
if(document.cookie.indexOf('checkreload')=-1){
document.cookie='checkreload=1';
文件。写(“”);
}
否则{
文件。写(“”);
}
}
在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(管理会话)
我希望它能帮助您

iFrame没有任何记忆会话信息的机制。正如您所知,iframe只是源的门户。iframe的源是维护会话信息。您可以将变量传递给iframe吗?如果是isset,Unset session var或viceversa,或者在js中使用unload事件通过ajaxim思维触发Unset,从而采用@jmercier方法
<?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>