Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] No logro mostrar el usuario logeado

Estas en el tema de No logro mostrar el usuario logeado en el foro de PHP en Foros del Web. Buenos días compañeros. Estoy aprendiendo a utilizar PHP y MySQL, hasta ahora he logrado por fin crear un inicio de sesión que me redirecciona a ...
  #1 (permalink)  
Antiguo 21/06/2014, 08:56
Avatar de adelazeroth  
Fecha de Ingreso: junio-2014
Mensajes: 31
Antigüedad: 9 años, 10 meses
Puntos: 1
No logro mostrar el usuario logeado

Buenos días compañeros.

Estoy aprendiendo a utilizar PHP y MySQL, hasta ahora he logrado por fin crear un inicio de sesión que me redirecciona a otra pagina. Pero quiero que en esta otra pagina muestre el nombre del usuario que se ha logeado.

Este es el código que estoy utilizando:

Código PHP:
<?php
session_start
();
include 
'access.php';


    
if(
$_POST['user'] && $_POST['pass']) {
         
     
$sql="SELECT * FROM usuarios WHERE login='".$_POST['user']."' AND pass='".$_POST['pass']."'";
     
        
$_SESSION['user'] = $_POST['user'];
         if(empty(
$_SESSION['user'])) 
            { 
                 
header('Location: error.php');
             } 

    
     
$resultado=mysql_query($sql$conexion) or die ("Error");

     
$numRegistros=mysql_num_rows($resultado);

     if(
$numRegistros==0) {

        echo 
"Error, no existen registros que coincidan con tu usuario y contrase&ntilde;a";

     } else {

        echo 
"<bold><center>Login exitoso<br>Bienvenido<br><br>En unos momentos ser&aacute; redireccionado.</bold></center>";
        echo 
'<html><head><META HTTP-EQUIV="REFRESH" CONTENT="4;index2.htm"></head></html>';

     }
}

?>
Obviamente mando a llamar este archivo a la pagina nueva en la que quiero que muestre el nombre de usuario y estoy utilizando este codigo:

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>


<?php
include 'login.php';


echo 
"<center>PROYECTO Z</center>";

echo 
$_SESSION['user'];
?>
</body>
</html>
y al cargar la pagina me manda este error:

Cita:
Notice: Undefined index: user in C:\xampp2\htdocs\projectoz\login.php on line 7
Este mensaje hace referencia a esta linea de mi archivo login.php

Código PHP:
if($_POST['user'] && $_POST['pass']) { 
__________________
No Sign, No responsability ;D
  #2 (permalink)  
Antiguo 21/06/2014, 09:24
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: No logro mostrar el usuario logeado

Lo que pasa es que cuando el formulario viaja vacio (o si te equivocaste y el method es GET o esta vacio o no existe).... en la variable $_POST no existe el indice de el NAME correspondiente.

Esa linea seria:

Código PHP:
Ver original
  1. if(isset($_POST['user']) && isset($_POST['pass'])) {

Pero verifica tu formulario que tenga el method="POST" y que existan esos INPUT con los NAME que colocas en la verificacion
__________________
Salu2!
  #3 (permalink)  
Antiguo 21/06/2014, 09:26
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: No logro mostrar el usuario logeado

prueba con

Código PHP:
Ver original
  1. if(isset($_POST['user']) && isset($_POST['pass'])) {
__________________
Ayúdame a hacerlo por mi mismo.
  #4 (permalink)  
Antiguo 21/06/2014, 10:20
Avatar de adelazeroth  
Fecha de Ingreso: junio-2014
Mensajes: 31
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: No logro mostrar el usuario logeado

Pero entonces usare isset en lugar de Post?

o ambos dos juntos?

bueno por el momento los estoy usando juntos pero me sigue mandando un error y no lo hayo. este es el codigo que tengo ahora:

Código PHP:
<?php
session_start
();
include 
'access.php';

if(isset(
$_POST['user']) && isset($_POST['pass'])) 
    {
        
$_SESSION['user'] = $_POST['user'];
         if(empty(
$_SESSION['user'])) 
            { 
                 
header('Location: error.php');
             } 
    }
    
if(
$_POST['user'] && $_POST['pass']) 
    {
          
$sql="SELECT * FROM usuarios WHERE login='".$_POST['user']."' AND pass='".$_POST['pass']."'";
         
$resultado=mysql_query($sql$conexion) or die ("Error");
        
$numRegistros=mysql_num_rows($resultado);

     if(
$numRegistros==0
         {
               echo 
"Error, no existen registros que coincidan con tu usuario y contrase&ntilde;a";
        } 
        
     else 
         {
                echo 
"<bold><center>Login exitoso<br>Bienvenido<br><br>En unos momentos ser&aacute; redireccionado.</bold></center>";
             echo 
'<html><head><META HTTP-EQUIV="REFRESH" CONTENT="4;index2.htm"></head></html>';
         }
         
    }

?>
este es el error que me manda:

Cita:
Notice: Undefined index: user in C:\xampp2\htdocs\projectoz\login.php on line 14
y esta es la dichosa linea 14

Código PHP:
if($_POST['user'] && $_POST['pass']) 
Es el mismo error que hace un momento aunque ahora si me muestra el usuario logeado =D.

Saludos
__________________
No Sign, No responsability ;D
  #5 (permalink)  
Antiguo 21/06/2014, 10:28
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: No logro mostrar el usuario logeado

Pues... no has cambiando el archivo........se te olvido salvar (ctrl+s)

isset() sirve para saber si una variable o posicion en un arreglo ya fue creada .. asi que usarla sola no tiene sentido, que significado tendria hacer: isset() ?
__________________
Salu2!
  #6 (permalink)  
Antiguo 21/06/2014, 10:59
Avatar de adelazeroth  
Fecha de Ingreso: junio-2014
Mensajes: 31
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: No logro mostrar el usuario logeado

De hecho siempre guardo antes de recargar la pagina T_T

sigo sin hallar el porque me sigue mandando ese error, pero entonces supongo que mi sintaxis es correcta, ya puedo ver el nombre del usuario justo debajo del error que me manda

Cita:
Notice: Undefined index: user in C:\xampp2\htdocs\projectoz\login.php on line 14
PROYECTO Z
invitado
Asi me aparece.

Saludos.
__________________
No Sign, No responsability ;D
  #7 (permalink)  
Antiguo 21/06/2014, 12:28
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: No logro mostrar el usuario logeado

Si aseguras guardaste los cambios....... la unica posibilidad restante que veo es tambien loca:

Estas SEGURO de que estas mirando el archivo correcto ? el formulario en el action tiene al archivo que estas mirando ?
__________________
Salu2!
  #8 (permalink)  
Antiguo 21/06/2014, 19:36
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: No logro mostrar el usuario logeado

Yo solo veo una posibilidad de momento razonable:

Si en el último código que reportaste, tienes dos if, y no has usado isset en ambos if junto con $_POST (evidentemente, sin una variable isset no tiene sentido) entonces el error está en el segundo condicional if.
__________________
Ayúdame a hacerlo por mi mismo.
  #9 (permalink)  
Antiguo 21/06/2014, 20:00
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: No logro mostrar el usuario logeado

Cita:
Iniciado por guardarmicorreo Ver Mensaje
Yo solo veo una posibilidad de momento razonable:

Si en el último código que reportaste, tienes dos if, y no has usado isset en ambos if junto con $_POST (evidentemente, sin una variable isset no tiene sentido) entonces el error está en el segundo condicional if.
Cierto, no lo habia visto.......... que es esa redundancia ? para que preguntar 2 o mas veces lo mismo ?
__________________
Salu2!
  #10 (permalink)  
Antiguo 22/06/2014, 21:01
zenen
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: No logro mostrar el usuario logeado

Debes enviar tu $variable se Session

else
{
$user = $_SESSION['user'];
echo "<bold><center>Login exitoso<br>Bienvenido<br><br>En unos momentos ser&aacute; redireccionado.</bold></center>";
echo '<html><head><META HTTP-EQUIV="REFRESH" CONTENT="4;index2.htm"></head></html>';
}
  #11 (permalink)  
Antiguo 23/06/2014, 09:43
Avatar de adelazeroth  
Fecha de Ingreso: junio-2014
Mensajes: 31
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: No logro mostrar el usuario logeado

Gracias por el tip zenen, pero me sigue enviando este error al redireccionar a la siguiente pagina, es error aparece y bajito de el el nombre de usuario:

Notice: Undefined index: user in C:\xampp2\htdocs\projectoz\login.php on line 14
invitado

esto ya salia aun antes de hacer lo que escribiste.

Gracias.
__________________
No Sign, No responsability ;D
  #12 (permalink)  
Antiguo 23/06/2014, 09:52
Avatar de adelazeroth  
Fecha de Ingreso: junio-2014
Mensajes: 31
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: No logro mostrar el usuario logeado

entonces GUARDAMICORREO e ITALICO76 lo que tengo que hacer es quitar este IF?

Código PHP:
if($_POST['user'] && $_POST['pass']) 
y dejar solamente este:

Código PHP:
if(isset($_POST['user']) && isset($_POST['pass'])) 
porque ya lo hize y reordene todo el codigo para que quedara declarado dentro del IF con el ISSET y ahora en lugar de mostrarme el usuario. Hace el redireccionamiento pero envia este error:

Notice: Undefined variable: numRegistros in C:\xampp2\htdocs\projectoz\login.php on line 20
Error, no existen registros que coincidan con tu usuario y contraseña.

Saludos.
__________________
No Sign, No responsability ;D
  #13 (permalink)  
Antiguo 23/06/2014, 10:49
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 1 mes
Puntos: 292
Respuesta: No logro mostrar el usuario logeado

Código PHP:
Ver original
  1. if ($a){
  2.   // parte 1
  3. }
  4. if ($a){
  5.   // parte 2
  6. }


no es lo mismo que ...

Código PHP:
Ver original
  1. if ($a){
  2.   // parte 1
  3.   // parte 2
  4. }

Dime tu que piensas
__________________
Salu2!
  #14 (permalink)  
Antiguo 23/06/2014, 10:59
Avatar de adelazeroth  
Fecha de Ingreso: junio-2014
Mensajes: 31
Antigüedad: 9 años, 10 meses
Puntos: 1
Respuesta: No logro mostrar el usuario logeado

yay!!!! por fin XD

les comparto mi codigo final, ya esta trabajando correctamente.

Gracias ITALICO76.

Saludos.

Código PHP:
<?php
session_start
();
include 
'access.php';

if(isset(
$_POST['user']) && isset($_POST['pass'])) 
    {
        
$_SESSION['user'] = $_POST['user'];
        
$sql="SELECT * FROM usuarios WHERE login='".$_POST['user']."' AND pass='".$_POST['pass']."'";
         
$resultado=mysql_query($sql$conexion) or die ("Error");
        
$numRegistros=mysql_num_rows($resultado);
         if(empty(
$_SESSION['user'])) 
            { 
                 
header('Location: error.php');
             } 
        
     if(
$numRegistros==0
         {
               echo 
"Error, no existen registros que coincidan con tu usuario y contrase&ntilde;a";
        } 
        
        
     else 
         {
            
$user $_SESSION['user'];
                echo 
"<bold><center>Login exitoso<br>Bienvenido<br><br>En unos momentos ser&aacute; redireccionado.</bold></center>";
             echo 
'<html><head><META HTTP-EQUIV="REFRESH" CONTENT="4;index2.htm"></head></html>';
         }
    }
__________________
No Sign, No responsability ;D

Etiquetas: html, mysql, registro, select, sql, usuario, 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 13:56.