Foros del Web » Programando para Internet » PHP »

Mensaje de "Usuario o contraseña incorrecta" con sesiones

Estas en el tema de Mensaje de "Usuario o contraseña incorrecta" con sesiones en el foro de PHP en Foros del Web. Muy buenas. Tengo un pequeño problema. Tengo 3 archivos. Login.php, checklogin.php e index.php Si el usuario no está logueado se carga login.php por defecto, y ...
  #1 (permalink)  
Antiguo 13/05/2012, 10:25
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 770
Antigüedad: 13 años, 9 meses
Puntos: 15
Información Mensaje de "Usuario o contraseña incorrecta" con sesiones

Muy buenas.

Tengo un pequeño problema. Tengo 3 archivos. Login.php, checklogin.php e index.php

Si el usuario no está logueado se carga login.php por defecto, y cuando inserta los datos correctos estos son comprobados en checklogin.php y van al index.php

El problema está cuando el usuario o contraseña son incorrectos.

checklogin.php
Código PHP:
<?php
    session_start
();

    include(
"lib/funciones.php");
    
    
$user $_POST["user"];
    
$pass $_POST["pass"];
    
    if(isset(
$user))
    {
    
$conexion = new Mysql_Connect();
    
$conexion->selectDB();
    
    
// Query para comprobar si existe o no el usuario
    
$usuario = new User();
    
    
$comprueba mysql_query($usuario->checkUser($user$pass));
    
    if(
mysql_num_rows($comprueba) === 1)
    {
        
$_SESSION["usuario"] = $user;
        
$_SESSION["logueo"] = TRUE;
        
header("location: index.php");
    }
    else
    {
        
// Definimos una cookie para que el cartel no dure más de 10 segundos
        
$_SESSION["logueofail"] = TRUE;
        
header("Location: login.php");
    }
    }
    else
    {
    unset(
$_SESSION);
    
header("Location: login.php");
    }
?>
Lo que hago en el login.php es comprobar si la sesión logueofail es TRUE que me muestre el mensaje de error pero me da un error y no sé como solucionarlo:

Notice: Undefined index: logueofail in /var/www/Proyecto-FP2/login.php on line 4 NULL


Línea 4 de login.php
Código PHP:
<?php
    session_start
();
    
session_cache_limiter('nocache,private'); 
    
var_dump($_SESSION["logueofail"]);
?>
Alguien podría aclararme por qué sucede esto?

Gracias
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #2 (permalink)  
Antiguo 14/05/2012, 01:23
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 15 años, 10 meses
Puntos: 11
Respuesta: Mensaje de "Usuario o contraseña incorrecta" con sesiones

De cierto modo lo que te indica ese error es que dentro de la sesión no existe la indice logueofail, no puede encontrar el indice de referencia a sesionfail.

Ahora el motivo puede ser que no esta llegando tu valor de $_POST['user'] y va directamente al else que destruye la session (o no define un valor para $_SESSION['logueofail']) y te envia al login.php y por lo mismo al hacer tu var_dump no encuentra dicho indice en la session.

Si necesitas que tu archivo login.php sepa si no se pudo loguear porque no enviaron usuario o contraseña o bien es porque el usuario o contraseña no son correctos mejor pasale un valor por el URI a tu archivo y dependiendo de su valor muestras un mensaje u otro

Código PHP:
header('location:login.php?error=1'); // suponiendo 1 es porque no autentico
exit; 
ó

Código PHP:
header('location:login.php?error=2'); // suponiendo 2 no ingreso usuario
exit; 
ponele siempre exit an tu header location también.

PD: por cierto session_cache_limiter() se llama antes de session_start();


saludos.
__________________
http://dev.wsnetcorp.com

Última edición por ebe; 14/05/2012 a las 01:56
  #3 (permalink)  
Antiguo 14/05/2012, 09:44
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 770
Antigüedad: 13 años, 9 meses
Puntos: 15
Respuesta: Mensaje de "Usuario o contraseña incorrecta" con sesiones

Cita:
Iniciado por ebe Ver Mensaje
De cierto modo lo que te indica ese error es que dentro de la sesión no existe la indice logueofail, no puede encontrar el indice de referencia a sesionfail.

Ahora el motivo puede ser que no esta llegando tu valor de $_POST['user'] y va directamente al else que destruye la session (o no define un valor para $_SESSION['logueofail']) y te envia al login.php y por lo mismo al hacer tu var_dump no encuentra dicho indice en la session.

Si necesitas que tu archivo login.php sepa si no se pudo loguear porque no enviaron usuario o contraseña o bien es porque el usuario o contraseña no son correctos mejor pasale un valor por el URI a tu archivo y dependiendo de su valor muestras un mensaje u otro

Código PHP:
header('location:login.php?error=1'); // suponiendo 1 es porque no autentico
exit; 
ó

Código PHP:
header('location:login.php?error=2'); // suponiendo 2 no ingreso usuario
exit; 
ponele siempre exit an tu header location también.

PD: por cierto session_cache_limiter() se llama antes de session_start();


saludos.
Muy buenas.

En un principio es lo que pensé, pasarle un parámetro por URL pero me dio no se qué jajaja pero nada, me quedaré con esa opción.

Muchas gracias por tu ayuda :D

Un saludo !!
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?

Etiquetas: login, sesiones
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 18:44.