2010-06-16 81 views
0

我的web系統即時編碼與原來的phpBB系統集成在一起。我的意思是當你登錄我的網絡系統時,你已經登錄到登錄頁面。現在我來到「註銷」部分,我想讓它變得聰明。現在,它是一個簡單地退出鏈接:如何以智能的方式做到這一點

<a href="<?php echo BASEDIR; ?>../../ucp.php?mode=logout&sid=<? echo $user->data['session_id']; ?>" style="margin-left: 14px; font-size: 10px;">- Log Out</a> 

當你在鏈接看到它是指forum's ucp.php模式=註銷,你需要有SID變量是爲了?退出權..無論如何..

我想做一個聰明的方式註銷部分,我的意思是,不是你登陸論壇的「你現在已經註銷」,我想要的東西也許比如點擊後在後臺運行此頁面,然後刷新當前頁面。

或者它應該更聰明只是嘗試修改phpbb文件ucp.php?我認爲它是硬編碼的,而不是我編碼的方式,所以這就是爲什麼我覺得它棘手。

謝謝您的答案和實例如何可以這樣做,在一個巧妙的方法..

回答

1

它看起來像註銷僅僅是一個GET請求,所以你可以使用jQuery的AJAX庫來做到這一點的您。

看看這裏的jQuery.get()文檔 http://api.jquery.com/jQuery.get/

的基本流程,你要找的是

  1. 當鏈接用戶點擊,攔截使用jQuery的點擊。
  2. 向註銷頁面發出AJAX GET請求,並傳遞必要的數據。
  3. 返回false以防止用戶瀏覽器導航到鏈接(這樣,如果他們關閉了JS,它仍然可以工作)。
  4. 當AJAX請求完成時,更新頁面以表明用戶已註銷。
$.get('../../ucp.php', {mode:"logout", sid:sid-goes-here}, function(){ 
    //do something here after the logout, perhaps updating the page to say "Logged out" 
}); 

這將請求發送到註銷頁面中傳遞啓動註銷所需的變量的背景。一旦這個請求被髮送,最後一個參數中定義的函數將被調用。也許是這樣的:

$("#header").append("<div class = 'logout-success'>You have been logged out!</div>"); 

會爲你工作,但你可以自由地做任何你想在那裏。

編輯以總結我亂序的想法這裏有一個可能的例子。

$(function(){ 

    $(".logout-link").click(function(){ 
     $.get('../../ucp.php', {mode:"logout", sid:sid-goes-here}, function(){ 
      $("#header").append("<div class = 'logout-success'>You have been logged out!</div>"); 
     }); 
     return false; 
    }); 

}); 
+0

另外,使用GET請求註銷函數是一個壞主意。 – 2010-06-16 23:21:29

+0

是的,那裏有點不好,但是如果他在問題中發佈的代碼確實有效,這將起作用。如果它是POST,它不會有太大的不同。 – 2010-06-16 23:22:37

0

運行:

session_destroy(); 

而且似的,你退出。如果您還想清理更多內容,請參閱以下示例: http://ww.php.net/manual/en/function.session-destroy.php運行方式和位置取決於您的其他設置。

會議由phpBB啓動的事​​實不起作用。你可能需要設置一個session_name(),但隨着其他頁面似乎工作我假設你已經完成了排序。

相關問題