Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Poner nombre en vez de usuario

Estas en el tema de Poner nombre en vez de usuario en el foro de PHP en Foros del Web. Hola, he hecho un formulario de loguin en php, pero no se como hacer para que en vez da mostrar el usuario muestre el nombre, ...
  #1 (permalink)  
Antiguo 09/01/2013, 15:03
 
Fecha de Ingreso: enero-2013
Mensajes: 33
Antigüedad: 11 años, 3 meses
Puntos: 0
Poner nombre en vez de usuario

Hola, he hecho un formulario de loguin en php, pero no se como hacer para que en vez da mostrar el usuario muestre el nombre, aquí estan los codigos php y mysql:

Código PHP:
Ver original
  1. <?php
  2.    require_once("sesion.class.php");
  3.    $sesion = new sesion();
  4.    $usuario = $sesion->get("usuario");
  5.    if( $usuario == false )  {
  6.       header("Location: login.php");
  7.    }  else  {
  8. ?>
  9. <HTML>
  10.    <head>
  11.       <title></title>
  12.    </head>
  13.    <body>
  14.       <h1>Hola:  <?php echo $sesion->get("usuario"); ?> </h1>
  15.       <a href="cerrarsesion.php"> Cerrar Sesion </a>
  16.       <p> Aqui va el contenido de la pagina </p>
  17.    </body>
  18. </HTML>
  19. <?php
  20.    }
  21. ?>
Código MySql:
Ver original
  1. CREATE TABLE `usuario` (  
  2. `Nombre` VARCHAR(20) NOT NULL DEFAULT '',  
  3. `nick` VARCHAR(20) NOT NULL DEFAULT '',  
  4. `contrasenia` VARCHAR(20) NOT NULL DEFAULT '',  
  5. PRIMARY KEY (`idusuario`),  UNIQUE KEY `idusuario` (`idusuario`)
  6. ) ENGINE=InnoDB CHARACTER SET 'latin1';
  #2 (permalink)  
Antiguo 09/01/2013, 15:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Poner nombre en vez de usuario

Pues sin ver que hace tu "session.class.php" ni como ingresas los datos a esa clase, es imposible que te podamos ayudar.

Saludos.
  #3 (permalink)  
Antiguo 09/01/2013, 15:25
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas - Venezuela
Mensajes: 116
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Poner nombre en vez de usuario

En tu session.class.php seguramente es donde estás creando la variable de sesión

revisa que en vez de tener

Código PHP:
$_SESSION['usuario']=nick 
debes tener

Código PHP:
$_SESSION['usuario']=nombre
tienes que buscar el codigo donde generas la sesion y cambiar el nick por el nombre el usuario, simple.
  #4 (permalink)  
Antiguo 10/01/2013, 01:02
 
Fecha de Ingreso: enero-2013
Mensajes: 33
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Poner nombre en vez de usuario

Este es mi sesion.class.php:
Código PHP:
Ver original
  1. <?php
  2. class sesion {
  3.   function __construct() {
  4.      session_start ();
  5.   }
  6.   public function set($nombre, $valor) {
  7.      $_SESSION [$nombre] = $valor;
  8.   }
  9.   public function get($nombre) {
  10.      if (isset ( $_SESSION [$nombre] )) {
  11.         return $_SESSION [$nombre];
  12.      } else {
  13.          return false;
  14.      }
  15.   }
  16.   public function elimina_variable($nombre) {
  17.       unset ( $_SESSION [$nombre] );
  18.   }
  19.   public function termina_sesion() {
  20.       $_SESSION = array();
  21.       session_destroy ();
  22.   }
  23. }
  24. ?>
Pero no se donde poner lo que me dice angelsds.
Gracias
  #5 (permalink)  
Antiguo 11/01/2013, 10:00
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas - Venezuela
Mensajes: 116
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Poner nombre en vez de usuario

el problema no está en el session.class.php necesito el archivo con el que autenticas el login y el pw o donde llames al objetivo session->set
  #6 (permalink)  
Antiguo 11/01/2013, 14:16
 
Fecha de Ingreso: enero-2013
Mensajes: 33
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Poner nombre en vez de usuario

Archivo login:
Código PHP:
Ver original
  1. <?php
  2.     require_once("sesion.class.php");
  3.  
  4.     $sesion = new sesion();
  5.    
  6.     if( isset($_POST["iniciar"]) )
  7.     {
  8.        
  9.         $usuario = $_POST["usuario"];
  10.         $password = $_POST["contrasenia"];
  11.        
  12.         if(validarUsuario($usuario,$password) == true)
  13.         {          
  14.             $sesion->set("usuario",$usuario);
  15.            
  16.             header("location: principal.php");
  17.         }
  18.         else
  19.         {
  20.             echo "Verifica tu nombre de usuario y contrase�a";
  21.         }
  22.     }
  23.    
  24.     function validarUsuario($usuario, $password)
  25.     {
  26.         $conexion = new mysqli("mysql.nixiweb.com","u634561687_usua","Elenaobando","u634561687_usua");
  27.         $consulta = "select contrasenia from usuario where nick = '$usuario';";
  28.        
  29.         $result = $conexion->query($consulta);
  30.        
  31.         if($result->num_rows > 0)
  32.         {
  33.             $fila = $result->fetch_assoc();
  34.             if( strcmp($password,$fila["contrasenia"]) == 0 )
  35.                 return true;                       
  36.             else                   
  37.                 return false;
  38.         }
  39.         else
  40.                 return false;
  41.     }
  42.  
  43. ?>
  44. <html>
  45. <head>
  46. <title></title>
  47. </head>
  48.  
  49. <body>
  50. <form name="frmLogin" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
  51.   <div>
  52.    <div> <label>Usuario: </label> <input type="text" name = "usuario"/></div>
  53.     <div><label>Contraseña: </label> <input type="password" name = "contrasenia" /></div>
  54.     <div><input type="submit" name ="iniciar" value="Iniciar Sesion"/></div>
  55.   </div>
  56. </form>
  57. </body>
  58. </html>
  #7 (permalink)  
Antiguo 11/01/2013, 14:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Poner nombre en vez de usuario

En validar tendrías que regresar aparte del password también el nombre del usuario, así al hacer Session::set pones el nombre también aparte del usuario.

Saludos.
  #8 (permalink)  
Antiguo 11/01/2013, 15:02
 
Fecha de Ingreso: noviembre-2012
Ubicación: Caracas - Venezuela
Mensajes: 116
Antigüedad: 11 años, 4 meses
Puntos: 1
Respuesta: Poner nombre en vez de usuario

tal cual como dice GatorV busca la función validar usuario en esa funcion estás retornando usuario y cotrasenia tienes q retornar tambien el nombre y donde dice

$sesion->set("usuario",$usuario);

pones

$sesion->set("usuario",$nombre);

debes retornar el nombe aparte del usuario y el password y cambiarlo como te lo puse arriba
  #9 (permalink)  
Antiguo 11/01/2013, 17:07
 
Fecha de Ingreso: enero-2013
Mensajes: 33
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Poner nombre en vez de usuario

Validar usuario lo pone en dos lugares, que codigo y donde tengo que poner para que retorne el nombre?
Código PHP:
Ver original
  1. if(validarUsuario($usuario,$password) == true)
  2.         {          
  3.             $sesion->set("usuario",$nombre);
  4.            
  5.             header("location: principal.php");
  6.         }
  7.         else
  8.         {
  9.             echo "Verifica tu nombre de usuario y contrase�a";
  10.         }
  11.     }
Código PHP:
Ver original
  1. function validarUsuario($usuario, $password)
  2.     {
  3.         $conexion = new mysqli("mysql.nixiweb.com","u634561687_usua","usua","u634561687_usua");
  4.         $consulta = "select contrasenia from usuario where nick = '$usuario';";
  5.        
  6.         $result = $conexion->query($consulta);
  7.        
  8.         if($result->num_rows > 0)
  9.         {
  10.             $fila = $result->fetch_assoc();
  11.             if( strcmp($password,$fila["contrasenia"]) == 0 )
  12.                 return true;                       
  13.             else                   
  14.                 return false;
  15.         }
  16.         else
  17.                 return false;
  18.     }
Gracias

Etiquetas: formulario, html, mysql, nombre, vez, 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 10:27.