Foros del Web » Programando para Internet » PHP »

No consigo capturar las variables de sesion

Estas en el tema de No consigo capturar las variables de sesion en el foro de PHP en Foros del Web. 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. ...
  #1 (permalink)  
Antiguo 28/10/2012, 08:31
 
Fecha de Ingreso: junio-2010
Mensajes: 26
Antigüedad: 13 años, 10 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.
  #2 (permalink)  
Antiguo 28/10/2012, 08:37
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: No consigo capturar las variables de sesion

Muesta la linea que tiene esa bienvenida.

Edito:
El problema es de comillas, te recomiendo que mires el tema que contiene los aportes hay un tema que habla de las comillas.

Edito2:
Tambien necesitas declarar seasion_start al inicio de cada una de las paginas.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 28/10/2012 a las 08:43
  #3 (permalink)  
Antiguo 28/10/2012, 08:48
 
Fecha de Ingreso: junio-2010
Mensajes: 26
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: No consigo capturar las variables de sesion

Bueno pedir disculpas a todos porke el problema es ke soy tan cateto ke no concateno. A mi eske lo de concatenar... yo no soy de esos a ver si me entiendes, si hay ke concatenar se concatena pero concatenar pa na... xD

Bueno si alguien no ha entendido mi error lo explico (ke dudo ke haya mas catetos por ahi pero por si las moscas):

A la hora de hacer el echo en la página de admin o de cliente el codigo tiene ke ser asi:

Código PHP:
Ver original
  1. echo('Area '.$tipo.'. Bienvenido '.$user.', tu id es '.$id);

Y no asi como puse anteriormente:

Código PHP:
Ver original
  1. echo('Area $tipo. Bienvenido $user, tu id es $id');

Saludos a todos y perdón por estos 5 minutos de lectura!

PD: Escribí este mensaje mientras me contestabas :P. El session_start() no lo inicio ni en admin.php ni en cliente.php porke se va a incluir dentro de el propio index el cual ya tiene un session_start() y no se si eso puede dar problemas o no pero vamos la idea ke tengo es de ir metiendo todas las páginas ke vaya creando en el index mediante includes.

No se si esta estructura ke tengo planteada es la mejor :S
  #4 (permalink)  
Antiguo 28/10/2012, 09:29
ruben_chirinos_1985
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No consigo capturar las variables de sesion

Te aconsejo que cierres la concatenacion con comillas dobles y no con simples

Etiquetas: formulario, mysql, sql, variables, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:07.