当用户通过 iframe 表单登录时,如何将登录按钮更改为注销

How to change the login button to logout when user loggs in via iframe form

本文关键字:登录 按钮 注销 用户 iframe 表单      更新时间:2023-09-26

我一直无法找到足够接近的答案来找到有效的解决方案。

我正在一个自定义网站工作,在不同点,在用户可以继续操作之前,会检查用户登录状态。如果他们未登录,系统会要求他们先登录,然后允许他们继续。为了保持用户体验干净,其中大部分是通过包含 iframe 的页面内弹出窗口完成的。

登录

功能运行良好,但是当用户完成操作并关闭窗口时,仍然显示"登录"按钮,使其看起来尚未登录。他们实际上必须刷新页面才能看到他们的登录状态。但是,我希望登录状态也显示无缝。

目前,我在父页面的div中包含登录链接:

<div class="top_nav">
    <div class="contest_buttons">
        <div class="c_button bkg_gray c_bottom w_quarter" id="#login_tab">
            <?php echo showif(!empty($_SESSION['userID']),'
                <a href="enter.php?go=logout">Logout</a>','
                <a href="enter.php?go=login&iframe=true&amp;width=450&amp;height=275" rel="prettyPhoto[iframe]">Login</a>'); ?>
        </div>
        <div class="c_button bkg_gray c_bottom w_quarter" id="#profile_tab">
            <?php echo showif(!empty($_SESSION['userID']),'
                <a href="profile.php">My Profile</a>','
                <a href="enter.php?go=register&iframe=true&amp;width=550&amp;height=450" rel="prettyPhoto[iframe]">Register</a>'); ?>
        </div>
        <div class="c_button bkg_gray c_bottom w_half">
            <a href="http://waynedailynews.com/" target="_blank">Wayne Daily News</a>
        </div>
    </div>
</div>

我得到的最接近任何可能工作的东西是:

$('#login_tab', window.parent.document).html('<a href="enter.php?go=logout">Logout</a>');

我真的不确定从那里去哪里。

至少,我希望#login_tab在登录完成后读取"注销",但是能够更新#profile_tab以读取"我的个人资料"也很棒。

我是一名PHP程序员,到目前为止,我只是涉足JS和jQuery,所以即使为我指出正确的方向也可能有所帮助。 :)


我发现了一些显示出一些希望的东西。它没有我想要的那么干净,但这段代码似乎可能有一个解决方案......

<script type="text/javascript" charset="utf-8">
  $(document).ready(function(){
    $("a[rel^='prettyPhoto']").prettyPhoto(
    {
     callback: function(){
       document.location.reload(true);
    }                       
   })
});
</script>

因为我正在使用 PrettyPhoto 来创建弹出窗口和 iframe,所以我可能能够集成一个方法或调用另一个脚本来处理我的需求,并且它会在用户关闭窗口的事件中发生。

如何才能使某些东西以这种方式工作?

有很多

方法可以做到这一点。

您可以在iframe内的页面上使用登录按钮。

或者您可以为 php vars 中的 2 个按钮创建 html 并通过所述按钮链接调用。?

但是,我会尝试使用JS和CSS,请查看这个简单的按钮状态切换示例。http://css-tricks.com/swapping-out-text-five-different-ways/

阅读您的最新评论后,也许尝试根据会话状态创建登录按钮。

例如:

        if( !isset($_SESSION) ){
           //echo login links here
        }

也不要忘记使用

session_start();

在 iframe 中显示的页面中。