Yo en lo particular empleo uno
creo un archivo que se llama registro.php en donde lo que hago es iniciar la sesion e inicializar las variables de sesion que necesitare a lo largo de la interaccion, y ahi tambien creo una variable especifica para la autenticacion. Este proceso lo hago al terminar de verificar si el login es valido.
Despues, creo otro archivo llamado seguridad.php, en este archivo lo primero que hago es iniciar mi sesion y preguntar si existe la variabel que determine para mi autenticacion, si no existe lo redirecciono a la pagina de logeo.
ahora en donde esta el truco, pues en cada archivo que vaya a abrir en php la primera linea es una llamada a seguridad php, y si no estoy autenticado pues los mando a login, durante todo este proceso agrego y elimino las variables de sesion que necesito y no he tenido problema alguo con las sesiones
registro.php
Código PHP:
<?php
//Si se logueo apropiadamente
session_start();
session_register['var1'];
session_register['autenticadoparaestemodulo'];
$_SESSION['var']=$valordebasededatos;
$_SESSION['autenticadoparaestemodulo']="CadeNadEAUtoriZacion";
?>
seguridad.php
Código PHP:
<?php
session_start();
if($_SESSION['autenticadoparaestemodulo']!="CadeNadEAUtoriZacion"){
header('Location: login.php');
exit();
}
?>
cualquiearchivo.php
Código PHP:
<?PHP
//Importante debde ser la primera instruccion
include("seguridad.php");
...
$sql = "SELECT * FROM tabla WHERE id_user=".$_SESSION['var'];
...
session_register("otravar");
$_SESSION['otravar']=$otrovalor
...
?>