Pergunta

No lado Java, temos um filtro de servlet que lida com a autenticação. Não precisamos alterar todos os outros servlet ou JSPs para adicionar autenticação à página, a menos que a página precise de conteúdo personalizado.

Como podemos alcançar o mesmo no PHP? Não usamos nenhuma estrutura no PHP.

Foi útil?

Solução

Não há diretamente equivalente. Sua melhor aposta é incluir um arquivo comum na parte superior e fazer essa lógica na parte superior daquele, conforme necessário. Então:

require 'common.php';

com:

if (!isset($_SESSION['userid'])) {
  // authentication stuff
}

Se você quiser fazer algo no final, você tem algumas opções:

  1. Use um manipulador de buffer de saída com ob_start(); ou
  2. Registre um retorno de chamada de desligamento com register_shutdown_function().

Então:

ob_start('my_callback');

function my_callback($str) {
  // do something
  return $str;
}

ou

register_shutdown_function(my_callback);

function my_callback() {
  // do something
}

Outras dicas

Se eu entender sua pergunta corretamente. Isso pode variar a arquitetura .. por exemplo. Crie um arquivo de inclusão que verifique se o usuário é autenticado através da sessão, se não for enviar para uma página de login. Eu acho que qualquer site com mais de 2 scripts utilizaria algum tipo de arquivo incluído e você pode colocar esse código nesse arquivo. Você pode até ter uma matriz que contém os nomes das páginas que precisam ter uma sessão de usuário válida e combinar com a solicitação URI .. várias maneiras de fazer isso .. você só precisa escolher aquele que mais se combina.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top