Foros del Web » Programando para Internet » PHP »

Validar el pasword directamente en la BD, o mejor en una variable tomada de la BD?

Estas en el tema de Validar el pasword directamente en la BD, o mejor en una variable tomada de la BD? en el foro de PHP en Foros del Web. Feliz semana, Es más conveniente validar el pasword directamente en la BD, o mejor en una variable que toma el valor de un campo en ...
  #1 (permalink)  
Antiguo 03/02/2004, 09:37
 
Fecha de Ingreso: enero-2004
Mensajes: 89
Antigüedad: 13 años, 11 meses
Puntos: 0
De acuerdo Validar el pasword directamente en la BD, o mejor en una variable tomada de la BD?

Feliz semana,

Es más conveniente validar el pasword directamente en la BD, o mejor en una variable que toma el valor de un campo en la BD?

hacia la validacion del pasword del usuario asi:

//Averiguamos la contra del usuario en la BD
$ingreso = mysql_query("SELECT clavesecreta FROM tablausuarios WHERE usuario = '".$_SESSION['usuario']."'");
if ($row = mysql_fetch_array($ingreso))
{do {$laclavepersonaldeestapersona = $row["clavesecreta"];}
while ($row = mysql_fetch_array($result));}
else
{
echo "<P><B>Error</B>, por favor reporta esto al webmaster y recibe un premio!.</P>";
}
//Comparamos la contra del personaje con la de la BD:
if($laclavpersonaledeestapersona != $_POST['pasword'])
//Si no concuerda sacamos al personaje de aqui!.
{
$_SESSION = array();
session_destroy();
echo "<B>error</B> : (<BR>Contraseña errada<HR WIDTH=120 COLOR=#F89000 ALIGN=LEFT SIZE=1>$formulario";
mysql_close($conexion);
include("../findepágina.php");
exit;
}
//De lo contrario BIENVENIDA
$fecha = date('Y-n-d');
mysql_query("UPDATE tablausuarios SET ultimavisita = '$fecha' WHERE usuario = '".$_SESSION['usuario']."'");
echo mysql_error();
}
}
}
echo "Bienvenido ".$_SESSION['usuario']." Aqui esta tu panel...(etc)";

Pero no se si sea + seguro hacerlo asi:

//Averiguamos la contra del personaje en la BD
$ingreso = mysql_query("SELECT clavesecreta FROM tablausuarios WHERE usuario = '".$_SESSION['usuario']."' AND campoclavesecreta = '".$_POST['pasword']."'");
echo mysql_error();
if ($row = mysql_fetch_array($ingreso))

Etc, Etc, Etc, Etc, Etc,

Lo que esta + arriba...

Gracias por la orientacion....

(Y la paciencia).
  #2 (permalink)  
Antiguo 03/02/2004, 09:49
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
me gusta mas el segundo, ya que el primero no creo que logre nada...
  #3 (permalink)  
Antiguo 03/02/2004, 10:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En general .. siempre que puedas resolver un problema de consultas a tu Base de datos (sea cual sea) vía SQL ..será más óptimo que realizar parte del proceso con algún lenguaje del lado del servidor (en estos casos PHP) .. Eso sería como norma general.

Los "motores" (manejadores) de Base de datos incluyen muchas funciones própias para hacer sus consultas bajo los criterios o funciones que desees aplicar (incluso hasta MD5() puedes usar en SQL directo de Msyql por si tus contraseñas las guaras así encriptadas .. Sin necesidad de extrare ese dato y aplicar md5() de PHP .. todo directamente sobre SQL y tu consulta).

A todo esto .. si lo haces directamente sobre SQL . podrías contar el total de registros que te va a entregar dicha consulta desde SQL también con COUNT(*) .. así podrías decidir si el usuario es válido o no de forma rápida .. si es válido ejecutas tu consulta típica con tu SELECT campo .... y tu mysql_fetch_array() o lo que desees. Sí, son dos consultas .. pero en los casos que la contraseña no sea válida .. el proceso es el más rápido para averigüar si dicho registro existe bajo esas condiciones (usuario y password).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 01:23.