Lo solucione poniendo require_once en vez de header, no es exactamente lo que quiero pero bueno....
Ahora tengo otro problema con las sesiones, cuando inserto usuario y contraseña inicio la sesion y le doy un nombre. Luego le tengo puesto un if para que compruebe si la sesion esta iniciada, si lo esta que muestre "Bienvenido $_SESSION['usuario']" y si no esta pues que muestre de nuevo el cuadro para insertar usuairo y contraseña.
Me funciona con la primera pagina, luego no propaga la sesion o se queda abierta aunque la destruya.
os dejo el codigo:
Sesion.php (Esta pagina comprueba usuario y contraseña e inicia la sesion)
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');
}
index.php (Esta es la pagina principal, tiene un cuadro que pide usuario y contraseña, ademas contiene un panel de usuario para modificar sus datos.)
Código PHP:
/*compruebo si la sesion esta vacia, si esta llena le doy la bienvenida y
le ofrezco opciones de panel de usuario y cirre 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');
mysql_select_db('BDmontiel',$conexion) or die('Problemas al realizar la conexion');
$consulta="SELECT * FROM usuarios WHERE user='$_SESSION[usuario]';";
$registros=mysql_query($consulta,$conexion) or die("No se han podido insertar los datos");
$registro=mysql_fetch_array($registros); ?>
<div id="contenedor">
<div id="inner">
<span class="enlace" style="position:absolute;right:2%;top:2%;"><input type="button" style="font-weight:bold;" value="Cerrar"></span>
<br />
<br />
<form action="modificar.php" method="post" enctype="multipart/form-data" name="actualizar">
<center>
<table>
<tr>
<td>Usuario </td>
<td><?php echo $registro['user']?> </td><input type="hidden" name="userviejo" value="<?php echo $registro['user']?>"/>
<td >Contraseña </td>
<td ><input type="password" name="passnuevo" value="<?php echo $registro['pass']?>"/></td>
<input type="hidden" name="passviejo" value="<?php echo $registro['pass']?>"/>
</tr>
<tr>
<td >Nombre</td><td ><input type="text" name="nombrenuevo" value="<?php echo $registro['nombre']?>"/></td>
<input type="hidden" name="nombreviejo" value="<?php echo $registro['nombre']?>"/>
<td >Apellidos</td><td ><input type="text" name="apellidosnuevo" value="<?php echo $registro['apellidos']?>"/></td>
<input type="hidden" name="apellidosviejo" value="<?php echo $registro['apellidos']?>"/>
</tr>
<tr>
<td >Email</td><td ><?php echo $registro['email']?></td>
</tr>
<tr>
<td></td><td></td><td></td>
<td> <input type="submit" class="boton" value="Registrarse" /></td>
</tr>
</table></center></form></div></div>;
<?php echo '<img src="images/shutdown.png"><a href="shutdown.php">Cerrar sesion</a></div>';}
El problema viene cuando intento pasar a otra pagina, que ya no me coje la sesion y le tengo puesto para que compruebe
Código PHP:
if (isset($_SESSION['usuario']))
{session_start();
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>';}
como puedo propagar bien la sesion??
La finalidad es sencilla, inicio sesion en una pagina y quiero que mientra navega en ella siga identificado con la session.