Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2012, 08:31
higochumbo
 
Fecha de Ingreso: junio-2010
Mensajes: 26
Antigüedad: 13 años, 11 meses
Puntos: 3
No consigo capturar las variables de sesion

Hola buenas a todos.

Os escribo este post porke estoy trasteando con un formulario para loguear un usuario ya existente en la base de datos.

Tengo una base de datos bastante simplita para hacer las pruebas y con el código consigo verificar la existencia de un usuario y su contraseña. El problema ke me surge es ke cuando intento usar el contenido de las variables de sesión en otra página no las muestra. Es obvio ke estoy haciendo algo mal.

En el index dependiendo de si el formulario se ha enviado o no cargo el login o la página del tipo de usuario. Si el usuario es administrador, debería entrar en la página de administrador y mostrar los datos ke supuestamente ya tiene pero no los muestra. El código del index es éste:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include_once('funciones.php');
  4. Conectar();
  5.  
  6. if(isset($_POST['enviado'])){
  7.     $user=$_POST['user'];
  8.     $pass=$_POST['pass'];
  9.     $query='SELECT * FROM usuarios';
  10.     $array=mysql_query("$query");
  11.     while($fila = mysql_fetch_array($array)){
  12.         if($fila[user_usuarios]==$user and $fila[pass_usuarios]==$pass){
  13.             $_SESSION['estado']='conectado';
  14.             $_SESSION['id']=$fila[id_usuarios];
  15.             $_SESSION['tipo']=$fila[tipo_usuarios];
  16.             $_SESSION['user']=$fila[user_usuarios];
  17.             $_SESSION['pass']=$fila[pass_usuarios];
  18.             $usuarioValidado='ok';
  19.             mysql_close();
  20.             include($_SESSION['tipo'].'.php');
  21.             break;
  22.             }
  23.         }
  24.     } else {
  25.         include('login.php');
  26.         }
  27.  
  28. ?>

Con este códio lo ke yo supongo ke estoy haciendo es iniciar una sesión con lo ke se supone (o hasta akí tengo yo entendido) ke ya puedo usar las variables de sesión a las cuales doy valor dentro de un bucle.

Los datos los recoge perfectamente de la base de datos y supuestamente los almacena en las variables de sesión. Una vez comprobado si el usuario corresponde con la contraseña se le da el valor ok a la variable $usuarioValidado y se incluye la página referente al tipo de usuario usease, si el usuario es de tipo admin se incluye la página admin.php y si el usuario es de tipo cliente se incluye la página cliente.php. Tanto en admin.php como en cliente.php tengo el mismo código ke es este:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $estado=$_SESSION['estado'];
  4. $id=$_SESSION['id'];
  5. $tipo=$_SESSION['tipo'];
  6. $user=$_SESSION['user'];
  7. $pass=$_SESSION['pass'];
  8. echo('Area $tipo. Bienvenido $user, tu id es $id');
  9.  
  10. ?>

Y el problema ke me encuentro es ke en vez de mostrarme en pantalla algo asi:

Area admin. Bienvenido pepe, tu id es 5586384.

Me encuentro esto otro:

Area $tipo. Bienvenido $user, tu id es $id.

Si cuando inicio el session_start() puedo usar las variables de sesion para pasar valores de una página a otra ¿por ké no se muestran los valores correctamente?

Bueno si alguien necesita algún dato mas ke me lo pida y se lo facilito. Creo ke me he expresado bastante bien pero en caso de alguna duda preguntame y os aclaro :)

Saludos a todos!

PD: No tengo ku en el teclado.