Ahora mismo estaba empezando a meterme con los usuarios de manera "simple" para sacar un posible "alpha" del gestor e ir implementado el resto de cosas poco a poco, pero me he econtrado con un problema con las sesiones y sus variables.
Os resumo los códigos, puesto que los mismos en si funcionan, quito lo superfluo:
index.php
Código PHP:
<?php
session_start();
header("Cache-Control: no-cache");
header('Content-Type: text/html; charset=utf-8');
?>
<title>Trooptool</title>
<!-- Cargo estilos CSS -->
<!-- Cargo diferentes Scripts -->
<body>
<div id="pbody">
<!-- Cabecera -->
<div id="header">
</div>
<!-- Menu -->
<div id="menu">
<?php require("menu.php"); ?>
</div>
<!-- Contenido -->
<div id="page">
<?php require("home.php"); ?>
</div>
</div>
</body>
Código PHP:
<!-- Si hay sesion -->
<?php
//session_start();
if(isset($_SESSION['user'])) {
?>
<p>Hola, <?php echo $_SESSION['user']; ?></p>
<?php
} else {
?>
<!-- Si no hay sesion Formulario -->
<?php
}
?>
Al iniciar, home.php al no tener ninguna sesión iniciada, muestra un formulario de login.
Me logueo sin problema (llamada a login.php que inicia las variables de sesión), y recarga home en el div #page, mostrando esta vez, por tener la sesión iniciada, un mensaje de bienvenida, y el nombre del usuario. Hasta aquí todo perfecto.
El problema viene en que, si ahora en el menu, pulso inicio (recargando de nuevo home.php en el div), aparece de nuevo el formulario de login, como si no hubiese iniciado sesión. Pero si pulso F5 para recargar toda la página, si aparece de nuevo home.php con el mensaje de bienvenida (puesto que la sesión realmente sigue ahí).
Como podeis observar, en home.php no tengo directamente iniciada la sesión, puesto que si lo hago, funciona pero automáticamente me salta el Warning: Cannot send session cache limiter - headers already sent...
Lo que pasa, es que la sesión está en index.php, pero no la traspasa por decirlo de alguna manera, a las páginas llamadas para cambiar el contenido de los contenedores, lo que me parece lógico, pero en cuanto meto otro session_start() y hago funcionar la cosa, me salta el warning, con lo que tampoco arreglo mucho.
Aparte de desactivar los mensajes de error (que no me parece una solución sino maquillaje del problema) ¿hay manera de solucionarlo o de hacerlo de otro modo?
![enojado](http://static.forosdelweb.com/fdwtheme/images/smilies/enojado.png)