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

时间:2009-10-02 00:14:17

标签: java php httprequest servlet-filters

在Java方面,我们有一个处理身份验证的servlet过滤器。除非页面需要自定义内容,否则我们不必更改所有其他servlet或JSP以向页面添加身份验证。

我们如何在PHP上实现相同的目标?我们不在PHP上使用任何框架。

2 个答案:

答案 0 :(得分:10)

没有直接的等价物。您最好的选择是在顶部包含一个公共文件,并根据需要在其顶部执行此类逻辑。所以:

require 'common.php';

使用:

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

如果你想在最后做一些事情,你有几个选择:

  1. 使用ob_start()的输出缓冲处理程序;或
  2. 使用register_shutdown_function()注册关机回调。
  3. 所以:

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

    register_shutdown_function(my_callback);
    
    function my_callback() {
      // do something
    }
    

答案 1 :(得分:1)

如果我正确理解你的问题。这可能因架构而异..例如..创建一个包含文件,检查用户是否通过会话进行身份验证,如果没有发送到登录页面。我认为任何有超过2个脚本的网站都会使用某种包含文件,你可以将这些代码放在该文件中。你甚至可以有一个数组,其中包含需要有一个有效用户会话的页面名称,并与请求uri匹配。有几种方法可以解决它...你只需要选择最适合你的那个。 / p>