[英]How to change the login button to logout when user loggs in via iframe form
我無法找到足夠接近的答案,以找到有效的解決方案。
我在一個自定義網站上工作,在各個點上,在用戶可以繼續執行操作之前先檢查用戶登錄狀態。 如果未登錄,則要求他們先登錄,然后再繼續。 為了保持用戶體驗的整潔,大部分操作是通過包含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&width=450&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&width=550&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,查看這個簡單的Button狀態切換示例。 http://css-tricks.com/swapping-out-text-five-different-ways/
閱讀最新評論后,也許可以嘗試根據會話狀態創建登錄按鈕。
例如:
if( !isset($_SESSION) ){
//echo login links here
}
也不要忘記使用
session_start();
在iframe中顯示的頁面中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.