2009-10-02 11 views
8

En el lado de Java, tenemos un filtro de servlet que maneja la autenticación. No es necesario que cambiemos todos los demás servlets o JSP para agregar autenticación a la página, a menos que la página necesite contenido personalizado.¿Qué es PHP equivalente de Java Servlet Filter?

¿Cómo podemos lograr lo mismo en PHP? No usamos ningún framework en PHP.

Respuesta

10

No hay un equivalente directo. Su mejor opción es incluir un archivo común en la parte superior y hacer tal lógica en la parte superior de la misma según sea necesario. Por lo tanto:

require 'common.php'; 

con:

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

Si quieren hacer algo al final que tiene un par de opciones:

  1. utilizar un controlador de memoria intermedia de salida con ob_start(); o
  2. Registre una devolución de llamada de apagado con register_shutdown_function().

Así:

ob_start('my_callback'); 

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

o

register_shutdown_function(my_callback); 

function my_callback() { 
    // do something 
} 
1

si entiendo su pregunta correctamente. Esto puede variar en la arquitectura ... por ejemplo, cree un archivo de inclusión que compruebe si el usuario está autenticado a través de la sesión, si no lo envía a una página de inicio de sesión. Creo que cualquier sitio con más de 2 scripts utilizaría algún tipo de archivo de inclusión y usted puede poner este código en ese archivo. incluso puede tener una matriz que contiene los nombres de las páginas que necesitan tener una sesión de usuario válida y hacerla coincidir con request uri ... varias maneras de hacerlo ... solo tiene que elegir la que más le convenga.

Cuestiones relacionadas