En todas las paginas tengo un bloque que comprueba si esta iniciada la sesion, si esta inicia le doy la bienvenida cn un echo $_SESSION['usuario'] y sino esta inicia muestra un formulario que pide usuario y contraseña para iniciar sesion
El problema es que cuando inicio sesion en el index, me reconoce que esta inciada pero cuando paso a otra pagina no me la coje.
Código PHP:
<?php
/*compruebo si la sesion esta vacia, si esta llena le doy la bienvenida y
le ofrezco opciones de panel de usuario y cierre sesion. Si esta vacia le muestro un formulario
de usuario y contraseña*/
if (isset($_SESSION['usuario']))
{
echo "<div class='sesionabierta'><P>Bienvenido ".$_SESSION['usuario']."</p>";
echo "<a class='enlace' href='#'> Panel de usuario</a><br>";
$conexion=mysql_connect("localhost", "root", "") or die('Fallo en la conexion');
<?php echo '<img src="images/shutdown.png"><a href="shutdown.php">Cerrar sesion</a></div>';}
else{?>
<div class="sesion">
<p>Inicio sesión</p>
<div class="formulario">
<form action="sesion.php" method="post" class="formulario" enctype="multipart/form-data">
<input type="text" value="Usuario" name="usuario" size="15"/><br />
<input type="password" value="Contraseña" name="password" size="15"/><br /><br />
<input type="submit" value="Inicio sesión" />
</form>
Código PHP:
$consulta="SELECT * FROM usuarios WHERE user='$usuario' AND pass='$password';";
$rs=mysql_query($consulta,$conexion);
if (mysql_num_rows($rs)!=0){
//usuario y contraseña válidos
//defino una sesion y guardo datos
session_cache_limiter('nocache,private');
session_name('usuario');
session_start();
$_SESSION['usuario']=$usuario;
session_register("autentificado");
$autentificado = "SI";
require_once('index.php');
}else {
//si no existe le mando otra vez a la portada
echo "<script type='text/javascript'>alert('Usuario o contrase\u00f1a incorrectos');</script>";
require_once('index.php');
}
al final tiene un require_once que me carga el index de nuevo y asi el index vuelve a comprobar la sesion y esta vez si esta iniciada y me sale lo del panel de usuario.
El problema viene cuando me voy a otra pagina, y tengo el mismo if que en el index pero ya no me coje la sesion, este seria el codigo de la otra pagina
Código PHP:
if (isset($_SESSION['usuario']))
{
echo "<div class='sesionabierta' style='margin-bottom:50px;'><P>Bienvenido ".$_SESSION['usuario']."</p>";
echo "<a href='panel.php'> Panel de usuario</a><br>";
echo '<a href="shutdown.php">Cerrar sesion</a></div>';}
else{?>
<div class="sesion">
<p>Inicio sesión</p>
<div class="formulario">
<form action="sesion.php" method="post" class="formulario" enctype="multipart/form-data">
<input type="text" value="Usuario" name="usuario" size="15"/><br />
<input type="password" value="Contraseña" name="password" size="15"/><br /><br />
<input type="submit" value="Inicio sesión" />
</form>
what happend???