代码之家  ›  专栏  ›  技术社区  ›  ZZ Coder

PHP等效的Java servlet过滤器是什么?

  •  8
  • ZZ Coder  · 技术社区  · 15 年前

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

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

    2 回复  |  直到 12 年前
        1
  •  10
  •   cletus    15 年前

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

    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
  •  1
  •   Sabeen Malik    15 年前

    如果我能正确理解你的问题,这在建筑上会有所不同。例如。。创建一个include文件,检查用户是否通过会话进行了身份验证(如果不发送到登录页面)。我认为任何有超过2个脚本的站点都会使用某种包含文件,而U可以将此代码放入该文件中。甚至可以有一个数组,其中包含需要有效用户会话并与请求URI匹配的页的名称。有几种方法可以解决这个问题。你只需要选择最适合你的。

    推荐文章