Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/06/2010, 13:51
davidmontiel
 
Fecha de Ingreso: junio-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Propagar Sesiones

Buenas tengo un problema, quisiera propagar la sesion a todas las paginas que navega el usuario.

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&oacute;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&oacute;n" />
            
        </form>
la primera vez que entra al no estar iniciada la sesion pues te muestre le formulario directamente, la accion del formulario es esta

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');
   

una vez valida los datos de usuairo y contrasela cn la bd inicia sesion y un monton de cosas mas: coje como variable el nombre del usuario, etc.

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&oacute;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&oacute;n" />
            
        </form> 
lo mismo que el index y aqui no me funciona.

what happend???