Foros del Web » Programando para Internet » PHP »

error al verificar password

Estas en el tema de error al verificar password en el foro de PHP en Foros del Web. Hola tengo un problema al intentar hacer login, soy bastante novato con lo cual no se muy bien que he de hacer. Hasta ahora e ...
  #1 (permalink)  
Antiguo 07/04/2009, 09:17
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
error al verificar password

Hola tengo un problema al intentar hacer login, soy bastante novato con lo cual no se muy bien que he de hacer. Hasta ahora e consegio que al intentar hacer login me reconozca ya el email y ahora solo dice que el password es incorrecto yo me imagino que es que no lo recibe de la base de datos pero es que no se como hacerlo, en la base de dato el campo de la contraseña es 'pass'.
Espero vuestra gran ayuda.

A continuación os indico el comprueba.php del login:

Código PHP:
<?
session_start
();
include(
"../../lib/config.inc.php");
$email $_POST['email'];
$pass $_POST['pass'];
if(empty(
$login)){
$email $_GET['email'];
$pass $_GET['pass'];
}
$query=mysql_query("SELECT email FROM usu WHERE email='$email'") or die(mysql_error());;
if(
mysql_num_rows($query)==0){
header("location: login.php?error=3");
exit;
} else {
$array=mysql_fetch_array($query);
$pass_encriptado md5($pass);  
//$salt = md5(¬_¬vgpastor¬);
//$pass2 = md5($salt . $pass_encriptado);
if($array["pass"]!=$pass_encriptado){
header("Location: login.php?error=2");
exit;
}
//$nive = mysql_query("SELECT * FROM nivel WHERE nivel=$array[nivel]");

$_SESSION["email"]=$email;
$_SESSION["nivel"]=$nive['nivel'];
$_SESSION["nombre"]=$array['nombre'];
$_SESSION["id"] = $array['id'];
session_register();
//$nivel = mysql_fetch_array($nive);
//header("location:../$nivel[url]");
header("Location: ../gestion_inicio.php");
exit;
}
?>
  #2 (permalink)  
Antiguo 07/04/2009, 09:32
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
De acuerdo Respuesta: error al verificar password

Lo que tienes que hacer es :

$sql="Select * From User Where (email='".$email."') and ( pass='".md5($pass)."') ";

Si al ejecutar esta consulta te delvuelve un valor es que el email y el pass son correctos
  #3 (permalink)  
Antiguo 07/04/2009, 10:04
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: error al verificar password

$pass_encriptado
hazlo un echo para ver el valor q devuelve y haces una consulta como te sugieren arriba para verificar los registros saludos!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #4 (permalink)  
Antiguo 07/04/2009, 10:35
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: error al verificar password

No entiendo muy bien lo que quereis decir, mira e añadido lo que me comento rodno y el codigo es el siguiente:

Código PHP:
<?
session_start
();
include(
"../../lib/config.inc.php");
$email $_POST['email'];
$pass $_POST['pass'];
if(empty(
$login)){
$email $_GET['email'];
$pass $_GET['pass'];
}
$query=mysql_query("Select * From usu Where (email='".$email."') and ( pass='".md5($pass)."')") or die(mysql_error());;
if(
mysql_num_rows($query)==0){
header("location: login.php?error=3");
exit;
} else {
$array=mysql_fetch_array($query);
$pass_encriptado md5($pass);  
//$salt = md5(¬_¬vgpastor¬);
//$pass2 = md5($salt . $pass_encriptado);
if($array["pass"]!=$pass_encriptado){
header("Location: login.php?error=2");
exit;
}
//$nive = mysql_query("SELECT * FROM nivel WHERE nivel=$array[nivel]");

$_SESSION["email"]=$email;
$_SESSION["nivel"]=$nive['nivel'];
$_SESSION["nombre"]=$array['nombre'];
$_SESSION["id"] = $array['id'];
session_register();
//$nivel = mysql_fetch_array($nive);
//header("location:../$nivel[url]");
header("Location: ../gestion_inicio.php");
exit;
}
?>
pero sigue indicandome contraseña incorrecta.
  #5 (permalink)  
Antiguo 07/04/2009, 10:41
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: error al verificar password

En la BBDD tienes el password almacenado y encriptado con MD5 ???

Saludos!
  #6 (permalink)  
Antiguo 07/04/2009, 10:42
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: error al verificar password

$pass_encriptado = md5($pass);

un echo a esa variable para saber q realmente
lo vas a tomar en tu consulta
q tenga valor
saluds!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #7 (permalink)  
Antiguo 07/04/2009, 10:43
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: error al verificar password

jejeje ya que no se que responderte te dejo aty mismo que lo hagas este es el codigo del registro:

Código PHP:
<?php
$acc 
$_SERVER['PHP_SELF']; 
include(
"../../lib/config.inc.php");
$nombre  $_POST['nombre'];
$ape $_POST['ape'];
$email $_POST['email'];
$email2 $_POST['email2'];
$pass $_POST['pass'];
$pass2 $_POST['pass2'];
if(empty(
$nombre)){
header("Location: registro.php?error=0");
exit;
}
if(empty(
$ape)){
header("Location: registro.php?error=1");
exit;
}
if(empty(
$email) || empty($email2) || $email != $email2){
header("Location: registro.php?error=2");
exit;
}
if(empty(
$pass) || empty($pass2) || $pass != $pass2){
header("Location: registro.php?error=3");
exit;
}
$com_ema mysql_query("SELECT email FROM usu WHERE email='$email'") or die(mysql_error());
if(
mysql_num_rows($com_ema) != "0"){
header("Location: registro.php?error=4");
exit;
}
$date date("d/m/Y-H:i:s");
$ip $HTTP_SERVER_VARS["REMOTE_ADDR"];
$pass_encriptado md5($pass);  
$salt md5(¬_¬vgpastor¬);
$pas md5($salt $pass_encriptado);
mysql_query("INSERT INTO usu 
(`id`, `nombre`, `pass`, `email`, `fecha`, `ip`, `u_f`, `rango`, `ape`)
 VALUES
 ('id', '$nombre', '$pas', '$email', '$fecha', '$ip', 'u_f', '$rango', '$ape')"
) or die(mysql_error());
echo 
"Registrado correctamente";
?>
  #8 (permalink)  
Antiguo 07/04/2009, 10:48
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: error al verificar password

Ya vi el error, el problema es que cuando insertas en la bbdd estas insertando el password cifrado con md5 pero le concatenas $salt delante

Código PHP:
$pas md5($salt $pass_encriptado); 
Pero cuando haces la verificacion en tu otro script, el pass que pasa el usuario no le concatenas $salt delante cuando lo cifras con md5


Código PHP:
$pass_encriptado md5($pass); 
Saludos!
  #9 (permalink)  
Antiguo 07/04/2009, 10:48
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: error al verificar password

Harvestmoon como y donde hago eso que dices jeje ;)
  #10 (permalink)  
Antiguo 07/04/2009, 10:50
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: error al verificar password

Mira mi respuesta anterior.

Saludos!
  #11 (permalink)  
Antiguo 07/04/2009, 10:52
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: error al verificar password

Sinkronice ya e visto eso que dices pero ahora que tendria que hacerle supuestamente?
  #12 (permalink)  
Antiguo 07/04/2009, 10:52
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: error al verificar password

$pass_encriptado = md5($pass);
$salt = md5(¬_¬vgpastor¬);
$pas = md5($salt . $pass_encriptado);

lo encriptaste asi
y asi lo debes "desencriptar" para hacer tu comparacion


algo asi
$pass_encriptado = md5($pass);
$salt = md5(¬_¬vgpastor¬);
$pas = md5($salt . $pass_encriptado);
if($array["pass"]!=$pas){
header("Location: login.php?error=2");
exit;
}
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #13 (permalink)  
Antiguo 07/04/2009, 10:59
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: error al verificar password

"Dale un pescado a un hombre y comera un dia. Enseñale a pescar y comera toda la vida", Anónimo.

Saludos!
  #14 (permalink)  
Antiguo 07/04/2009, 10:59
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: error al verificar password

:S eso sigue diciendo password invalida, despues de tu gran explicacion el codigo a quedado asi:

Código PHP:
<?
session_start
();
include(
"../../lib/config.inc.php");
$email $_POST['email'];
$pass $_POST['pass'];
if(empty(
$login)){
$email $_GET['email'];
$pass $_GET['pass'];
}
$query=mysql_query("Select * From usu Where (email='".$email."') and ( pass='".md5($pass)."')") or die(mysql_error());;
if(
mysql_num_rows($query)==0){
header("location: login.php?error=3");
exit;
} else {
$array=mysql_fetch_array($query);
$pass_encriptado md5($pass); 
$salt md5(¬_¬vgpastor¬); 
$pas md5($salt $pass_encriptado);
if(
$array["pass"]!=$pas){ 
header("Location: login.php?error=2");
exit;
}
//$nive = mysql_query("SELECT * FROM nivel WHERE nivel=$array[nivel]");

$_SESSION["email"]=$email;
$_SESSION["nivel"]=$nive['nivel'];
$_SESSION["nombre"]=$array['nombre'];
$_SESSION["id"] = $array['id'];
session_register();
//$nivel = mysql_fetch_array($nive);
//header("location:../$nivel[url]");
header("Location: ../gestion_inicio.php");
exit;
}
?>
  #15 (permalink)  
Antiguo 07/04/2009, 11:03
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: error al verificar password

Creo que ya te han dado varias respuestas válidas para solucionar el problema, creo que es hora de entender tu código (en caso de ser tuyo), depurar, probar y depurar y probar y entender, etc...?

Creo que es un error buscar que alguien te haga el código, siempre y cuando lo que busques es aprender.

Saludos!
  #16 (permalink)  
Antiguo 07/04/2009, 11:04
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: error al verificar password

jejeje vale muchas gracias por todo Synkronice me mareare un ratito por aqui, en serio gracias a todos ;).
  #17 (permalink)  
Antiguo 07/04/2009, 11:07
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: error al verificar password

jaja
Cita:
"Dale un pescado a un hombre y comera un dia. Enseñale a pescar y comera toda la vida", Anónimo.
rocaso pero si tienes razon
y tu rompe
ya tienes la idea de como hacerlo
primero haz tus pruebas no solo coipies y pegues el code y digas no funciono!
mejor intenta cambiarle algo
usa tu logica de programador
y si ya no puedes pues vienes de nuevo
aunke si se me hace raro q no puedes hacer la comparacion
aunke siempre digo q md5 para mi es mucho problema
mejor sha1
saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #18 (permalink)  
Antiguo 07/04/2009, 11:10
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: error al verificar password

Será hora de poner copyright a los mensajes?
  #19 (permalink)  
Antiguo 07/04/2009, 11:13
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 2 meses
Puntos: 15
Respuesta: error al verificar password

oye no te enojes
todos lo hacen se llama citar y me parecio muy wena tu frase
saludines! nos vemos en otros temas
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #20 (permalink)  
Antiguo 07/04/2009, 11:20
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: error al verificar password

Se lo que son las citas, no me refería a eso...

Ah y no me enojo, pero es que algunos mensajes que leo me provocan "Déjà vu".
  #21 (permalink)  
Antiguo 07/04/2009, 11:24
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 2 meses
Puntos: 43
De acuerdo Respuesta: error al verificar password

Asi quedaria

Código PHP:
<?
session_start
();
include(
"../../lib/config.inc.php");
$email $_POST['email'];
$pass $_POST['pass'];
if(empty(
$login)){
$email $_GET['email'];
$pass $_GET['pass'];
}
$query=mysql_query("Select * From usu Where (email='".$email."') and ( pass='".md5($pass)."')") or die(mysql_error());;
if(
mysql_num_rows($query)==0){
header("location: login.php?error=3");
exit;

else
{
//$nive = mysql_query("SELECT * FROM nivel WHERE nivel=$array[nivel]");

$_SESSION["email"]=$email;
$_SESSION["nivel"]=$nive['nivel'];
$_SESSION["nombre"]=$array['nombre'];
$_SESSION["id"] = $array['id'];
session_register();
//$nivel = mysql_fetch_array($nive);
//header("location:../$nivel[url]");
header("Location: ../gestion_inicio.php");
exit;
}
?>
Y si a la Hora de Insertar el Usuario y el Pass del Nuev Usuario que estar Insertando estas concatenando(Unir,agregar) las cadenas de las variables $salt y $$pass_encriptado
Código PHP:
$pas md5($salt $pass_encriptado); 
debes a la hora de comprobarlo en BD concatenar el $salt con la var del pass que te estan mandando a validar..

Suma todos los consejos que te han dado los otros Foreros y pon la logica de progrmacion a trabajar y lograras tu objetivo.

Saludos
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 00:45.