Что такое PHP-эквивалент фильтра сервлетов Java?
-
19-09-2019 - |
Вопрос
На стороне Java у нас есть фильтр сервлетов, который обрабатывает аутентификацию.Нам не нужно менять все остальные сервлеты или JSP, чтобы добавить аутентификацию на страницу, если только страница не нуждается в индивидуальном содержимом.
Как мы можем добиться того же на PHP?Мы не используем никаких фреймворков на PHP.
Решение
Прямого эквивалента нет.Лучше всего включить общий файл вверху и выполнить соответствующую логику вверху по мере необходимости.Так:
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
}
Другие советы
если я правильно понимаю ваш вопрос. Это может варьироваться в зависимости от архитектуры..например ..создайте включаемый файл, который проверяет, аутентифицирован ли пользователь через сеанс, если не отправляет на страницу входа.Я думаю, что любой сайт с более чем двумя скриптами будет использовать какой-то включаемый файл, и вы можете поместить этот код в этот файл.вы даже можете иметь массив, содержащий имена страниц, которые должны иметь действительный сеанс пользователя и сопоставлять его с URI запроса..несколько способов сделать это..вам просто нужно выбрать тот, который вам больше всего подходит.