在Java方面,我们有一个处理身份验证的servlet过滤器。除非页面需要自定义内容,否则我们不必更改所有其他servlet或JSP以向页面添加身份验证。
我们如何在PHP上实现相同的目标?我们不在PHP上使用任何框架。
答案 0 :(得分:10)
没有直接的等价物。您最好的选择是在顶部包含一个公共文件,并根据需要在其顶部执行此类逻辑。所以:
require 'common.php';
使用:
if (!isset($_SESSION['userid'])) {
// authentication stuff
}
如果你想在最后做一些事情,你有几个选择:
ob_start()
的输出缓冲处理程序;或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 :(得分:1)
如果我正确理解你的问题。这可能因架构而异..例如..创建一个包含文件,检查用户是否通过会话进行身份验证,如果没有发送到登录页面。我认为任何有超过2个脚本的网站都会使用某种包含文件,你可以将这些代码放在该文件中。你甚至可以有一个数组,其中包含需要有一个有效用户会话的页面名称,并与请求uri匹配。有几种方法可以解决它...你只需要选择最适合你的那个。 / p>