2009-10-02 4 views
8

На стороне Java у нас есть фильтр сервлета, который обрабатывает аутентификацию. Нам не нужно изменять все другие сервлеты или JSP, чтобы добавить аутентификацию на страницу, если только страница не нуждается в настроенном контенте.Что такое эквивалент PHP для сервлет-фильтра Java?

Как мы можем добиться того же на PHP? Мы не используем никаких фреймворков на PHP.

ответ

10

Нет прямого эквивалента. Лучше всего включить общий файл наверху и сделать такую ​​логику в верхней части этого, как требуется. Итак:

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 
} 
1

, если я правильно понимаю ваш вопрос. Это может отличаться по архитектуре .. например .. создать файл include, который проверяет, прошел ли пользователь через сеанс, если не отправлен на страницу входа. я думаю, что любой сайт с более чем двумя скриптами использовал бы какой-то файл include, и вы можете поместить этот код в этот файл. вы можете даже иметь массив, который содержит имена страниц, которые должны иметь действительный сеанс пользователя и совпадать с запросом uri .. несколько способов сделать это. Вам просто нужно выбрать тот, который больше всего подходит.

 Смежные вопросы

  • Нет связанных вопросов^_^