Por otro lado .. se nota que piensas como "HTML" con incrustraciones de "PHP" ..
Vamos .. que no piensas como estás generando la "salida" que PHP deja al terminar su proceso ..
Por ejemplo .. armas una página HTML (ok) para el caso de que pases de:
if($acceso == 0) { ?>
pero si eso no se cumple .. metes un mensaje de "error" pero totalmente fuera de la página HTML que debes componer como corresponde .. con sus tag's HTML correspondientes <html> .. <head> .. <body> .. etc ... y sus cierre.
Observa que página (ver código fuente en tu navegador) generas en cada caso .. cuando se cumple y cuando no ..
Este "pensamiento" debes de cambiarlo .. por qué así tendrás problemas entendiendo cosas como las "cabeceras" o este caso que te comento concreto.
-----------------
Este tipo de validaciones las resulevo tipo:
Código PHP:
<?
require("Safe/check.php");
$acceso=$_SESSION['state'];
if($acceso == 0) {
header ("Location: pagina_error.php");
exit;
// me ahorro el "else" y tener que cerrar este IF .. simplemente mando a otra página exclusiva para presentar mensajes de error.
}
// aquí vendría el bloque de código que te extraje anteriormente .. por qué .. si no se cumple igualmetne redireccion.
// Para eso . .con cada "envio de cabeceras" de este tipo de redirección .. ahí acabo la ejecución del escript con exit; ya no interesa que se ejecute más el script.
?>
<html>
etc ... Tu hTML y más código PHP por médio para componer esta página.
Un saludo,