Foros del Web » Programando para Internet » PHP »

No consigo mostrar nombre usuario en la página

Estas en el tema de No consigo mostrar nombre usuario en la página en el foro de PHP en Foros del Web. Hola, estoy bastantes días rompiéndome la cabeza con el código php. Tras realizar el archivo login.php me gustaría que se mostrase el nombre de usuario ...
  #1 (permalink)  
Antiguo 24/07/2013, 11:06
Avatar de jumago  
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
No consigo mostrar nombre usuario en la página

Hola, estoy bastantes días rompiéndome la cabeza con el código php.
Tras realizar el archivo login.php me gustaría que se mostrase el nombre de usuario en la página web en un determinado lugar. Lo único que aparece es el mensaje 'Hola:' pero no aparece el nombre de usuario.

Para hacer que aparezca uso este código:

<?php
@session_start();

echo 'Hola: <b>' . $_SESSION['nick'] . '</b><br /><br />';
echo $_SESSION["username"];
echo '<a href="pruebas.php?modo=desconectar">Salir</a>';

?>


Espero su ayuda. Gracias
  #2 (permalink)  
Antiguo 24/07/2013, 11:45
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: No consigo mostrar nombre usuario en la página

hola, y podrias mostrar el codigo completo en que realizas la consulta a la base de datos para validar el usuario y el password....? porque entiendo que lo que estas haciendo es un Login, verdad...?
  #3 (permalink)  
Antiguo 24/07/2013, 11:48
 
Fecha de Ingreso: diciembre-2009
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: No consigo mostrar nombre usuario en la página

en apariencia está bien, fijate que se estén cargando correctamente las variables de sesión, sobre todo el las mayúsculas y minúsculas.
  #4 (permalink)  
Antiguo 24/07/2013, 11:50
Avatar de jumago  
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No consigo mostrar nombre usuario en la página

Sí, efectivamente es un login para cuando ingresen a la página les aparezca su nombre de usuario en una esquina.

Este es el código del login.php

<?php
include("conexion.php");

if(isset($_POST['login']))
{
$nick= $_POST['nick'];
$pass= md5(md5($_POST['pass']));
$b_user=mysql_query("SELECT * FROM usuarios WHERE nick='$nick'");
$ses = @mysql_fetch_assoc($b_user) ;
if(@mysql_num_rows($b_user))
{
if($ses['pass'] == $pass)
{
$_SESSION['id']= $ses["id"];
$_SESSION['fecha']= $ses["fecha"];
$_SESSION['nick']= $ses["nick"];
$_SESSION['mail']= $ses["mail"];
$_SESSION['ip']= $ses["ip"];
}
else
{
echo 'Nombre de usuario o Contrase&ntilde;a incorrecta.';
}
}
else
{
echo 'Nombre de Usuario o contrase&ntilde;a incorrecta.';
}
}

if(isset($_GET['modo']) == 'desconectar')
{
session_destroy();
echo '<meta http-equiv="Refresh" content="2;url=login.php"> ';
exit ('Te has desconectado del sistema.');
}

if(isset($_SESSION['id']))
{
echo 'Bienvenido <b>' . $_SESSION['nick'] . '</b><br /><br />';
echo '<b>Fecha registro:</b> ' . date("d-m-Y - H:i", $_SESSION['fecha']) . '<br />';
echo '<b>Email:</b> ' . $_SESSION['mail'] . '<br />';
echo '<b>IP:</b> ' . $_SESSION['ip'] . '<br /><br />';
echo '<a href="login.php?modo=desconectar">Salir</a>';
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<h2>Conetarse - Desconectarse</h2>
<div align="center">
<form name="login_user" action="pruebas2.php" method="post" />
<dt><label>Nick:</label></dt>
<input type='text' name='nick' /><br /><br />
<dt><label>Contraseña:</label></dt>
<input type="password" name='pass' /><br /><br />

<input type="submit" name="login" style="width:100px;" tabindex="6" value="Entrar" />
<input type="reset" name="Limpiar" style="width:100px;" tabindex="6" value="Limpiar" />
</form>
<a href="registro.php">Registrarse</a>
</div>
<?php
}
?>
</body>
</html>
  #5 (permalink)  
Antiguo 24/07/2013, 11:54
 
Fecha de Ingreso: diciembre-2009
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: No consigo mostrar nombre usuario en la página

eso es todo en un solo formulario? me parece a mi o no veo el session_start();
  #6 (permalink)  
Antiguo 24/07/2013, 11:56
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: No consigo mostrar nombre usuario en la página

Falta el session_start(); en ambos códigos

Saludos! :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #7 (permalink)  
Antiguo 24/07/2013, 12:01
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: No consigo mostrar nombre usuario en la página

intenta reemplazar esta linea de codigo:
Código PHP:
Ver original
  1. {
  2. $_SESSION['id']= $ses["id"];
  3. $_SESSION['fecha']= $ses["fecha"];
  4. $_SESSION['nick']= $ses["nick"];
  5. $_SESSION['mail']= $ses["mail"];
  6. $_SESSION['ip']= $ses["ip"];
  7. }

por esta
Código PHP:
Ver original
  1. {
  2. $_SESSION['id']= $ses[1];
  3. $_SESSION['fecha']= $ses[2];
  4. $_SESSION['nick']= $ses[3];
  5. $_SESSION['mail']= $ses[4"];
  6. $_SESSION['ip']= $ses[5];
  7. }

los numeros van de acuerdo al orden de como estan establecidos dentro de tu BD......
  #8 (permalink)  
Antiguo 24/07/2013, 12:06
Avatar de jumago  
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No consigo mostrar nombre usuario en la página

¿En que lugar coloco 'session_start();'

Gracias
  #9 (permalink)  
Antiguo 24/07/2013, 12:10
 
Fecha de Ingreso: diciembre-2009
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: No consigo mostrar nombre usuario en la página

al comienzo de la sección <?php ?>
  #10 (permalink)  
Antiguo 24/07/2013, 12:20
Avatar de jumago  
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No consigo mostrar nombre usuario en la página

Entonces antes o después de: include("conexion.php");

Por ejemplo así?

<?php
include("conexion.php");

session_start();
  #11 (permalink)  
Antiguo 24/07/2013, 12:29
 
Fecha de Ingreso: diciembre-2009
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: No consigo mostrar nombre usuario en la página

o antes, dependiendo de lo que haga conexion.php puede ser lo mismo o no.

lo que hace session_start() es recuperar y dejar disponibles todas las variables de sesión para su utilización.
  #12 (permalink)  
Antiguo 24/07/2013, 12:29
Avatar de jumago  
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No consigo mostrar nombre usuario en la página

Hola ambichol lo he probado tal como me decías y sigue sin verse. Tal vez haya algo que no consigo saber.
  #13 (permalink)  
Antiguo 24/07/2013, 12:36
 
Fecha de Ingreso: diciembre-2009
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: No consigo mostrar nombre usuario en la página

si no es eso corroborá que la consulta te esté trayendo información. Hacé un echo con el texto de la consulta completo.
te dejo algunas pruebas que podes hacer

echo "consulta SELECT * FROM usuarios WHERE nick='$nick' <br><br>";
echo "password $pass <br><br>";
echo "el recordcount del resultado (no se como se hace con mysql)";


if($ses['pass'] == $pass)
{
echo "Entro!!!!!!!"
$_SESSION['id']= $ses["id"];
$_SESSION['fecha']= $ses["fecha"];
$_SESSION['nick']= $ses["nick"];
$_SESSION['mail']= $ses["mail"];
$_SESSION['ip']= $ses["ip"];
}
  #14 (permalink)  
Antiguo 24/07/2013, 12:48
Avatar de jumago  
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No consigo mostrar nombre usuario en la página

Hola villah.

Está ya casi. En la primera de tus pruebas que me has dicho que haga la de:

echo "consulta SELECT * FROM usuarios WHERE nick='$nick' <br><br>";

Me aparece por fin el nombre de usuario donde yo quería pero además aparece todo esto:

consulta SELECT * FROM usuarios WHERE nick='Juancho'

La cosa va bien, solo queda quitarle todas esas letras que he marcado en rojo.
  #15 (permalink)  
Antiguo 24/07/2013, 12:52
 
Fecha de Ingreso: diciembre-2009
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: No consigo mostrar nombre usuario en la página

ojo, $nick es la variable local que has recuperado medianta $_POST['nick'], no la variable de sesión, no te confundas. Esa prueba era para ver si el texto SQL que le pasabas a la consulta era correcto.
Sabiendo que es correcto tenes que ver si te está devolviendo resultados.
  #16 (permalink)  
Antiguo 24/07/2013, 12:53
Avatar de jumago  
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No consigo mostrar nombre usuario en la página

Ok lo he conseguido amigos. Tan solo debía de poner esta llamada:

<?php

@session_start();
echo "Hola '$nick' <br><br>";

?>

Ahora si aparece el nombre de usuario. No se como agraderos vuestra valiosa ayuda.
Sois geniales.
Un gran abrazo
  #17 (permalink)  
Antiguo 24/07/2013, 13:00
 
Fecha de Ingreso: diciembre-2009
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: No consigo mostrar nombre usuario en la página

noo, pará, no lo tenes solucionado todavía, lo que estás mostrando es lo que enviaste por post, no la variable de sesión, si desde index.php pasas a otra página ya no verás el nick porque no lo pasaste.
Es correcto mostrar $_SESSION['nick'], el tema es ver porque no te esta guardando esta info.
  #18 (permalink)  
Antiguo 24/07/2013, 13:03
Avatar de jumago  
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No consigo mostrar nombre usuario en la página

ay vah! me he emocionado al verlo y yo pensaba que ya estaba

¿Entonces? ¿Que debería de hacer exactamente?
  #19 (permalink)  
Antiguo 24/07/2013, 13:07
 
Fecha de Ingreso: diciembre-2009
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: No consigo mostrar nombre usuario en la página

como te dije en la respuesta anterior, corroborá que realmente esa consulta te está trayendo resultados, fijate de poner un echo con el recordcount de la misma, de hacer un echo con el pass que te pasan por post, con el pass que obtienes de la consulta, uno que te indique si realmente dio positivo el if donde comparas los pass.
  #20 (permalink)  
Antiguo 24/07/2013, 13:17
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: No consigo mostrar nombre usuario en la página

otra observacion, cada vez que vas a usar variables de sesion, (como dijeron los colegas anteriormente) deberas declarar debajo de la primera etiqueta php de tu pagina el session_start(); de esa manera las variables de sesion que crees ya sea en el index o en cualquier otro lugar de tu web se podran usar sin problemas.
Código PHP:
Ver original
  1. <?php
  2. ....
  3. ...
  4. ..
  5. .
  #21 (permalink)  
Antiguo 24/07/2013, 13:29
Avatar de jumago  
Fecha de Ingreso: marzo-2009
Mensajes: 34
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: No consigo mostrar nombre usuario en la página

La verdad es que no entiendo muy bien eso que me dices villah. Mi nivel de php no es muy avanzado todavía.

Lo que me comentas: "echo con el recordcount de la misma, de hacer un echo con el pass que te pasan por post, con el pass que obtienes de la consulta, uno que te indique si realmente dio positivo el if donde comparas los pass".

No se como hacerlo villah. Perdonad mi torpeza.
  #22 (permalink)  
Antiguo 24/07/2013, 13:31
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: No consigo mostrar nombre usuario en la página

En resumen

Código PHP:
Ver original
  1. <?php
  2. echo "Hola '".$_SESSION['nick']."'<br><br>";
  3. ?>

Si no se ve el nombre ahí entonces la variable de sesión no fue creada :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #23 (permalink)  
Antiguo 24/07/2013, 15:02
 
Fecha de Ingreso: diciembre-2009
Mensajes: 49
Antigüedad: 14 años, 4 meses
Puntos: 6
Respuesta: No consigo mostrar nombre usuario en la página

en todo caso olvidate del recordcount, yo no uso mysql por lo que no se como obtenerlo

fijate con eso, y no te olvides del session_start();

echo "password $pass <br><br>";
echo "passdb" . $ses['pass'];

if($ses['pass'] == $pass)
{
echo "Entro!!!!!!!"
$_SESSION['id']= $ses["id"];
$_SESSION['fecha']= $ses["fecha"];
$_SESSION['nick']= $ses["nick"];
$_SESSION['mail']= $ses["mail"];
$_SESSION['ip']= $ses["ip"];
}

Etiquetas: nombre, página, usuario
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 08:42.