PHP - Validar usuarios

 
Vista:

Validar usuarios

Publicado por Erik (1 intervención) el 15/09/2007 03:27:02
Saludos,

Tengo un problemita y es que tengo un codigo para validar usuarios en PHP y MySql y el asunto es que la aplicacion cuando introduzco un usuario y un password de otro usuario de la misma tabla el me da acceso que no debe de ser asi.

Por ejemplo, tengo 2 usuarios en la tabla " usuarios"

campo usuario campo contrasena
jose 12
pedro 45

Si introduzco "jose" y la contraseña "45" el me lo valida como valido y no debe de ser.
Aqui le pongo el codigo que estoy utilizando:

nombre de la base de datos : data_liceo
nombre de la tabla : usuarios
nombre de los campos de la tabla usuarios: id_usuario, usuario, contrasena


formu_registro_estudiante.html
<html>
<body>

<form action="procesa_registro_estudiante.php" method="post">

<center>Usuario:</center>
<center><input type="text" name="usuario"></center>
<br>

<center>Contraseña:</center>
<center><input type="password" size=10 maxlength=9 name="contrasena"></center>
<br>

<center><input type="submit" value="Accesar"></center>

</form>
</body>
</html>


procesa_registro_estudiante.php

<?php
$conexion=mysql_connect("localhost","root","") or die("Problemas en la conexion");

mysql_select_db("data_liceo",$conexion) or die("Problemas en la selección de la base de datos");


$registros1=mysql_query("select usuario from usuarios where usuario ='$_REQUEST[usuario]'",$conexion) or
die("Problemas en el select:".mysql_error());

$registros2=mysql_query("select contrasena from usuarios where contrasena ='$_REQUEST[contrasena]'",$conexion) or
die("Problemas en el select:".mysql_error());



if ($reg1=mysql_fetch_row($registros1))
{

if ($reg2=mysql_fetch_row($registros2))

{
header("Location: formu_consulta.html");
}

else

{
echo "Contraseña no valida.";
}
}

else

{
echo "Usuario no valido.";
}

mysql_free_result($registros1);
mysql_free_result($registros2);
mysql_close($conexion);

?>

Gracias de antemano.
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

RE:Validar usuarios

Publicado por Diego Romero (1450 intervenciones) el 15/09/2007 09:23:31
Porque la lógica del algoritmo que implementaste es defectuosa...
¿Por qué haces dos consultas a la base de datos si con una basta?, con el primer select ya es suficiente para traer el dato que te interesa:

$registros1=mysql_query("select usuario, contrasena from usuarios where usuario ='$_REQUEST[usuario]'",$conexion) or
die("Problemas en el select:".mysql_error());

if (mysql_num_rows($registros1) > 0) {
$regs=mysql_fetch_array($registros1);
if ($regs['contrasena'] == $_REQUEST['contrasena']) {
echo "contraseña válida :)";
}
else { echo "contraseña no válida :("; }
}
else { echo "no existe el usuario."; }
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