PHP - Login

 
Vista:
sin imagen de perfil

Login

Publicado por Ronaldo (3 intervenciones) el 17/06/2017 22:54:17
Hola, necesito ayuda con este código de login ya que aveces me deja entrar y aveces me marca un error, me manda un error donde dice que el usuario y contraseña no existe , pero si existe en la base de datos en mysql y no entiendo por que me lanza este error

ESTE ES EL ERROR QUE ME MANDA
Notice: Undefined index: user in C:\xampp\htdocs\BRUG\iniciar_sesion.php on line 32

Notice: Undefined index: password in C:\xampp\htdocs\BRUG\iniciar_sesion.php on line 32
Su usuario es incorrecto, intente nuevamente.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
session_start(); //session_start() crea una sesión para ser usada mediante una petición GET o POST, o pasado por una cookie 
require_once("conexion.php");  //es la sentencia q usaremos para incluir el archivo de conexión a la base de datos que creamos anteriormente.
/*Función verificar_login() --> Vamos a crear una función llamada verificar_login, esta se encargara de hacer una consulta a la base de datos para saber si el usuario ingresado es correcto o no.*/
 
function verificar_login($user,$password,&$result)
    {
        $sql = "SELECT * FROM usuario WHERE nombre = '$user' and contrasena = '$password'";
        $rec = mysql_query($sql);
        $count = 0;
        while($row = mysql_fetch_object($rec))
        {
            $count++;
            $result = $row;
        }
        if($count == 1)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
 
/*Luego haremos una serie de condicionales que identificaran el momento en el boton de login es presionado y cuando este sea presionado llamaremos a la función verificar_login() pasandole los parámetros ingresados:*/
 
if(!isset($_SESSION['ideusua'])) //para saber si existe o no ya la variable de sesión que se va a crear cuando el usuario se logee
{
    if(isset($_POST['login'])) //Si la primera condición no pasa, haremos otra preguntando si el boton de login fue presionado
    {
        if(verificar_login($_POST['user'],$_POST['password'],$result) == 1) //Si el boton fue presionado llamamos a la función verificar_login() dentro de otra condición preguntando si resulta verdadero y le pasamos los valores ingresados como parámetros.
        {
 
            /*Si el login fue correcto, registramos la variable de sesión y al mismo tiempo refrescamos la pagina index.php.*/
            $_SESSION['ideusua'] = $result->ideusua;
            header("location:index.php");
        }
        else
        {
            echo '<div class="error">Su usuario es incorrecto, intente nuevamente.</div>'; //Si la función verificar_login() no pasa, que se muestre un mensaje de error.
        }
    }
 
} else {
    // Si la variable de sesión ‘userid’ ya existe, que muestre el mensaje de saludo. 
    echo 'Su usuario ingreso correctamente.';
    echo '<a href="cerrar_sesion.php">Logout</a>';
 
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de [abZeroX]
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Login

Publicado por [abZeroX] (157 intervenciones) el 19/06/2017 02:05:06
Hola, El problema no es el chequer si el usuario existe en la base, si no que no esta recibiendo los datos a través de $_POST por eso dice que los indices user y password estan indefinidos.
Comprobaste que el atributo name del form correspondan con estos indices o que estes mandando el form por post ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Login

Publicado por Ronaldo (3 intervenciones) el 19/06/2017 05:50:53
Hola, gracias por responder, que solución le podría dar ? es que esto me esta sacando canas verdes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de [abZeroX]
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Login

Publicado por [abZeroX] (157 intervenciones) el 19/06/2017 23:52:06
Hola de nuevo, El Notice que lanza en la linea 32, es porque no sabe que es user y password.
Comprobaste que el atributo name del form correspondan con estos indices o que estes mandando el form por post ?
Agrega esta linea antes del if para probar que trae $_POST
1
var_dump($_POST);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Login

Publicado por Ronaldo (3 intervenciones) el 20/06/2017 20:55:51
Hola nuevamente. ya cheque el atributo se supone que si corresponden y mira me arroja esto con la linea de codigo que me dijiste que agregara
Ese nombre y contraseña si se encuentran en la base de datos y me marca error


array(3) { ["nombre"]=> string(7) "Ubiquer" ["contraseña"]=> string(3) "ubi" ["login"]=> string(7) "Iniciar" }
Notice: Undefined index: user in C:\xampp\htdocs\BRUG\iniciar_sesion.php on line 33

Notice: Undefined index: password in C:\xampp\htdocs\BRUG\iniciar_sesion.php on line 33
Su usuario es incorrecto, intente nuevamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de [abZeroX]
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Login

Publicado por [abZeroX] (157 intervenciones) el 21/06/2017 03:09:29
Segun lo que veo los indices en $_POST deberian ser $_POST['nombre'] en lugar de $_POST['user'] y $_POST['contraseña'] en lugar de $_POST['password']
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar