Foros del Web » Programando para Internet » PHP »

¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)?

Estas en el tema de ¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)? en el foro de PHP en Foros del Web. Hola, ¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)? He hecho varias pruebas y no obtengo resultado, sólo me muestra ...
  #1 (permalink)  
Antiguo 10/01/2009, 13:17
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)?

Hola,
¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)?
He hecho varias pruebas y no obtengo resultado, sólo me muestra el contenido de $user.

Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['user']))
{
 die (
"Access Denied");
}
?>
<link href="styles.css" rel="stylesheet" type="text/css" />
 
<h2 align="center" class="titulo_mi_cuenta">Mi Cuenta</h2>
<?php if (isset($_SESSION['user'])) { ?>
<p align="center"> | <a href="settings.php">Settings</a> 
  | <a href="logout.php">Logout</a> </p>
<?php ?>  
<table width="341" border="0" align="center">
  <tr>
    <td colspan="2"><span class="Bienvenido">Bienvenido</span><span class="echosSession"><?php echo $_SESSION['full_name']; ?></span><span class="Bienvenido">, estos son tus datos: </span></td>
  </tr>
  <tr>
    <td width="170" class="titulos_formularios">Nombre:</td>
    <td width="161"><span class="echosSession"><?php echo $_SESSION['full_name ']; ?></span></td>
  </tr>
  <tr>
    <td class="titulos_formularios">Email:</td>
    <td class="echosSession"><?php echo $_SESSION['user']; ?></td>
  </tr>
  <tr>
    <td class="titulos_formularios">pais:</td>
    <td><span class="echosSession"><?php echo $_SESSION['country']; ?></span></td>
  </tr>
</table>
  #2 (permalink)  
Antiguo 10/01/2009, 13:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)?

Si no los muestra es porque no los asignaste.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 10/01/2009, 14:08
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)?

¿Debo asignarlas a continuación de sesion star?
Así?
Código PHP:
<?php 
session_start
(); 
if (!isset(
$_SESSION['user'])) 
if (!isset(
$_SESSION['full_name']))
if (!isset(
$_SESSION['country']))  

 die (
"Access Denied"); 

?>
  #4 (permalink)  
Antiguo 10/01/2009, 14:44
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)?

No, en el codigo donde validas el ingreso del usuario y que es donde asignaste $_SESSION['user'] debes asignar todas las variables que quieras usar posteriormente.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 11/01/2009, 11:53
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)?

Hola Triby,
He probado de varias maneras colocar las variables de sesion en este código, pero no me las muestra.
Más abajo expongo el php de login, donde está definida la variable user. Lo que quiero, es que cuando un usuario inicie sesión, aparezca su nombre, (en este caso la variable del nombre, es "full_name"). Me muestra su email pero, no el nombre.

Código PHP:
<?php 
include 'dbc.php';

$user_email mysql_real_escape_string($_POST['email']);


if (
$_POST['Submit']=='Login')
{
$md5pass md5($_POST['pwd']);
$sql "SELECT id,user_email FROM users WHERE 
            user_email = '$user_email' AND 
            user_pwd = '$md5pass' AND user_activated='1'"

            
$result mysql_query($sql) or die (mysql_error()); 
$num mysql_num_rows($result);

    if ( 
$num != ) { 

        
// A matching row was found - the user is authenticated. 
       
session_start(); 
       list(
$user_id,$user_email) = mysql_fetch_row($result);
        
// this sets variables in the session 
        
$_SESSION['user']= $user_email;             
        if (isset(
$_GET['ret']) && !empty($_GET['ret']))
        {
        
header("Location: $_GET[ret]");
        } else
        {
        
header("Location: myaccount.php");
        }
        
//echo "Logged in...";
        
exit();
    } 

header("Location: login.php?msg=Invalid Login");
//echo "Error:";
exit();        
}

?>

<link href="styles.css" rel="stylesheet" type="text/css">

<?php if (isset($_GET['msg'])) { echo "<div class=\"msg\"> $_GET[msg] </div>"; } ?>


<p>&nbsp;</p><table width="40%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr> 
    <td bgcolor="#d5e8f9" class="mnuheader" >
<div align="center"><font size="5"><strong>Login 
        Members</strong></font></div></td>
  </tr>
  <tr> 
    <td bgcolor="#e5ecf9" class="mnubody"><form name="form1" method="post" action="">
        <p>&nbsp;</p>
        <p align="center">Your Email 
          <input name="email" type="text" id="email">
        </p>
        <p align="center"> Password: 
          <input name="pwd" type="password" id="pwd">
        </p>
        <p align="center"> 
          <input type="submit" name="Submit" value="Login">
        </p>
        <p align="center"><a href="register.php">Register</a> | <a href="forgot.php">Forgot</a></p>
      </form></td>
  </tr>
</table>
  #6 (permalink)  
Antiguo 12/01/2009, 13:55
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)?

Código PHP:
// En tu consulta no estas solicitando todos los campos que deseas, solo id y user_email
$sql "SELECT id,user_email FROM users WHERE 
            user_email = '$user_email' AND 
            user_pwd = '$md5pass' AND user_activated='1'"


// ... mas adelante en tu codigo:

// A matching row was found - the user is authenticated.
       // ESTA DEBE SER LA PRIMERA LINEA EJECUTADA PARA EVITAR PROBLEMAS:
       
session_start();

       
// En este list agregarias los otros datos que necesites y ya tengas en la consulta
       
list($user_id,$user_email) = mysql_fetch_row($result);
        
// this sets variables in the session 
        
$_SESSION['user']= $user_email;

        
// Aqui asignas el resto de variables de sesion que necesites
        // Y las podras usar en todo tu sitio
       
$_SESSION['otro_campo'] = $otro_campo
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 13/01/2009, 17:33
Avatar de Polu  
Fecha de Ingreso: febrero-2003
Mensajes: 135
Antigüedad: 21 años, 2 meses
Puntos: 0
De acuerdo Respuesta: ¿Sabe alguien por qué no me muestra en esta sesión (full_name y country)?

Ok! Triby,
Todo un éxito, cada día se aprende algo nuevo.
Saludoss y gracias...
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 11:54.