Что такое PHP эквивалент Java-фильтра сервлетов? - PullRequest
9 голосов
/ 02 октября 2009

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

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

Ответы [ 2 ]

10 голосов
/ 02 октября 2009

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

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 голос
/ 02 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...