簡體   English   中英

什么是Java Servlet Filter的PHP等價物?

[英]What's PHP Equivalent of Java Servlet Filter?

在Java方面,我們有一個servlet過濾器來處理身份驗證。 除非頁面需要自定義內容,否則我們不必更改所有其他servlet或JSP以向頁面添加身份驗證。

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

沒有直接的等價物。 您最好的選擇是在頂部包含一個公共文件,並根據需要在其頂部執行此類邏輯。 所以:

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
}

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM