Te propongo una forma sencilla para controlar el tema de los usuarios registrados y no registrados:
Al acceder un usuario a la página, creamos una sesión o la reactivamos si es que ya existe una y definimos una variable de sesión, luego, verificamos si hemos recibido algún valor por el método POST (creo que es el más adecuado para este caso), dicha variable será enviada desde el formulario de identificación (Login), con lo cual el usuario se identificará para acceder a determinada información. Como inicialmente no se ha identificado (la primera vez que ingresa a la página), la variable de sesión no tiene un valor asignado, por lo que solamente se muestra la página de inicio con el formulario de identificación, pero si ya se identificó, asignamos a la variable de sesión un valor cualquiera, como un número aleatorio, el Id del usuario, etcétera. El formulario de registro actuará de una manera
similar al de identificación, con la diferencia que añadirá valores en la BD (
INSERT), mientras que el de identificación solamente buscará en la BD los datos que el usuario ingresó (
SELECT).
Luego de registrarse, puedes redirigir al usuario hacia la página principal asignando a la variable de sesión el Id del usuario o el valor que desees utilizar. La variable de sesión viajará a través de todos los archivos que integren la página, manteniendo siempre la sesión activa con
session_start().
Cada vez que el usuario (identificado o no) navegue a través de cada enlace la página, deberás hacer una sencilla comprobación; si la variable de sesión tiene un valor asignado, quiere decir que el usuario se ha identificado y se muestra el contenido, pero si no es el caso, se le redirige hacia el formulario de registro o hacia el de identificación, que además de estar en la página de inicio mientras el usuario aún no se identifique, debes tener en otro archivo, para hacer la redirección hacia dicho archivo, tal y como sucede con esta página y muchas otras.
Saludos