Ver Mensaje Individual
  #9 (permalink)  
Antiguo 06/06/2010, 09:19
davidmontiel
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema con header

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&nbsp;&nbsp;&nbsp;</td>
                                            <td><?php echo $registro['user']?>&nbsp;&nbsp;&nbsp;</td><input type="hidden" name="userviejo" value="<?php echo $registro['user']?>"/>
                                            <td >Contrase&ntilde;a&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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.