Foros del Web » Programando para Internet » PHP »

Problema con ELSE al iniciar sesión en un sistema

Estas en el tema de Problema con ELSE al iniciar sesión en un sistema en el foro de PHP en Foros del Web. Buen día amigos, tengo un problema con un else de un codigo php, el cual es el siguiente: <?php include("/config.php"); if(isset($_POST['logear'])) { /*tomaremos el valor ...
  #1 (permalink)  
Antiguo 16/10/2013, 12:30
 
Fecha de Ingreso: diciembre-2011
Mensajes: 13
Antigüedad: 12 años, 4 meses
Puntos: 0
Problema con ELSE al iniciar sesión en un sistema

Buen día amigos, tengo un problema con un else de un codigo php, el cual es el siguiente:

<?php

include("/config.php");
if(isset($_POST['logear']))
{
/*tomaremos el valor de las variables user y pass de los textboxs*/
$user = mysql_real_escape_string($_POST["nick"]);
$pass = mysql_real_escape_string($_POST["pass"]);
/* haremos un query para ver si los datos introducidos existen la base de datos*/
$login_query = mysql_query("SELECT * FROM usuarios WHERE usuario='".$user."'");
$fetch = mysql_fetch_array($login_query);
if($fetch['usuario'])
{
if($fetch['contra'] == $pass)
{
echo '<div id="boxreg"><font color="green">Sesión iniciada con exito</font></div>';
}else{
echo '<div id="boxreg"><font color="green">Algunos datos est&aacute;n incorrectos</font></div>';
}
}
}else{
?>

El problema es que al iniciar sesión si manda el mensaje bien de Sesión iniciada con exito, pero al poner algún dato incorrecto o falta de espacios en blanco no me manda error de else :S...

Que puedo hacer?
  #2 (permalink)  
Antiguo 16/10/2013, 12:36
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problema con ELSE al iniciar sesión en un sistema

por lo que veo tienes errada la validación.

if($fetch['contra'] == $pass && $fetch['usuario']==$user)
{
echo '<div id="boxreg"><font color="green">Sesión iniciada con exito</font></div>';
}else{
echo '<div id="boxreg"><font color="green">Algunos datos est&aacute;n incorrectos</font></div>';
}
  #3 (permalink)  
Antiguo 16/10/2013, 13:58
 
Fecha de Ingreso: diciembre-2011
Mensajes: 13
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema con ELSE al iniciar sesión en un sistema

Cita:
Iniciado por medcol Ver Mensaje
por lo que veo tienes errada la validación.

if($fetch['contra'] == $pass && $fetch['usuario']==$user)
{
echo '<div id="boxreg"><font color="green">Sesión iniciada con exito</font></div>';
}else{
echo '<div id="boxreg"><font color="green">Algunos datos est&aacute;n incorrectos</font></div>';
}
Muy bien, amigo, por lo que veo tiene lógica su acomodación, ahora el detalle es que al no dar ningún dato al formulario de registro a los inputs, ejemplo

usuario:
Mi usuario
contraseña:
*****

Al no poner ningún dato y le doy iniciar sesión me sale: Sesión iniciada con éxito, que podría ser?
  #4 (permalink)  
Antiguo 16/10/2013, 14:32
 
Fecha de Ingreso: septiembre-2011
Mensajes: 32
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problema con ELSE al iniciar sesión en un sistema

puedes hacer varios trucos.

1. crear una función en javascript que valide los campos vacios y no te deje pasar hasta que haya algun dato en usuario o contraseña.

2. la session la debes de crear si el usuario o contraseña son validos. de lo contrario te seguirá saliendo la session iniciada porque obviamente al enviar datos siempre va estar el isset

Última edición por Triby; 16/10/2013 a las 17:00 Razón: Las consultas deben hacerse en el foro, no por MP ni email
  #5 (permalink)  
Antiguo 18/10/2013, 14:36
 
Fecha de Ingreso: octubre-2013
Ubicación: Maracaibo
Mensajes: 10
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Problema con ELSE al iniciar sesión en un sistema

Hola, veo tu login, y te puedo dar varias recomendaciones:

1- Usa strips_tags para crear integridad dentro de la variable que obtienes por el $_POST
[URL="http://www.php.net/manual/es/function.strip-tags.php"]http://www.php.net/manual/es/function.strip-tags.php[/URL]

2- No le veo logica a esta linea "if(isset($_POST['logear']))". Debes hacer una reestructura del logeo, por lo que observo.

3- Deberias utilizar algun metodo de encriptacion de la contraseña, particularmente utilizo sha1. Pero en tiempos como los de ahora es dificil conseguir las medidas de seguridad perfecta para contrarestar ataques a tu pagina

Un Ejemplo del login

Código PHP:
$user = (strip_tags($_POST['user']));
$password = (strip_tags(sha1($_POST['password'])));
$query = @mysql_query('SELECT * FROM usuarios WHERE user="'.mysql_real_escape_string($user).'" AND password="'.mysql_real_escape_string($password).'"');

if(
$existe = @mysql_fetch_object($query))
{
        
$_SESSION['logged'] = 'yes';
        
$_SESSION['user'] = $user;
        
$mensaje='Bienvenido '.$user.', Ya va a su destino';
        print 
"<script>alert('$mensaje')</script>";
        print(
"<script>window.location.replace('destino.php');</script>");
}
 else 
$mensaje2='El Usuario y/o contraseña son incorrecto/s, por favor verifique los datos de Acceso.';
    print 
"<script>alert('$mensaje2')</script>";
    print(
"<script>window.location.replace('index.php');</script>");


Etiquetas: mysql, select, sesión, sistema, usuarios, variable
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 12:30.