2009-10-02 68 views
8

在Java方面,我們有一個處理認證的servlet過濾器。除非頁面需要定製內容,否則我們不必更改所有其他servlet或JSP以向頁面添加認證。什麼是Java Servlet過濾器的PHP等價物?

我們如何才能在PHP上實現相同?我們不使用PHP上的任何框架。

回答

10

沒有直接相等的。最好的辦法是在頂部包含一個公共文件,並根據需要在頂部執行這樣的邏輯。所以:

require 'common.php'; 

有:

if (!isset($_SESSION['userid'])) { 
    // authentication stuff 
} 

如果你想在年底做一些事情,你有兩個選擇:

  1. 使用與ob_start()輸出緩衝處理程序;或
  2. register_shutdown_function()註冊關閉回調。

所以:

ob_start('my_callback'); 

function my_callback($str) { 
    // do something 
    return $str; 
} 

register_shutdown_function(my_callback); 

function my_callback() { 
    // do something 
} 
1

如果我正確理解你的問題。這可以在體系結構上有所不同..例如..創建一個包含文件,該文件檢查用戶是否通過會話進行身份驗證,如果不發送到登錄頁面。我認爲任何超過2個腳本的站點都會使用某種包含文件,並且可以將該代碼放入該文件中。你甚至可以有一個數組,其中包含需要有一個有效的用戶會話,並與請求uri相匹配的頁面的名稱..幾種方法去解決它..你只需要選擇一個適合你最。

相關問題