Yo hice algo parecido a lo tuyo.
Tengo dos paginas:
1) login.php
2) consulta.php
Dentro de login.php chequeo que el usuario pertenezca a la Base de Datos, y si pertenece, hago global una variable con:
Código PHP:
$_SESSION['pertenece']='1';
(previamente creo la sesion con session_start()). Si el usuario existe lo redirijo a la pagina consulta.php mediante la sentencia header(...).
Dentro de la pagina consulta.php, continuo la sesion del usuario con session_start().
Inmediatamente después, chequeo que la variable 'pertenece' sea igual a 1. Si no lo es, mato la sesion con session_destroy() y lo redirijo a login.php con la sentencia header().
Lo que produce esto, es que si un usuario escribe en la barra de direcciones:
www.zzz.com/consulta.php para entrar a consultar directamente sin haber logueado, al no tener la sesion iniciada, se mostrará automaticamente la pagina login.php obligando al usuario a que se loguee.
Espero que te sirva. Saludos!