10

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

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

4

2 回答 2

13

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

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
}
于 2009-10-02T00:24:00.367 回答
1

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

于 2009-10-02T00:23:43.657 回答