Foros del Web » Programando para Internet » PHP »

Error al validar

Estas en el tema de Error al validar en el foro de PHP en Foros del Web. Hola a todos! Soy nuevo en este foro, y entré más que nada para aprender más sobre la programación con php. Además de que tengo ...
  #1 (permalink)  
Antiguo 02/01/2010, 17:06
 
Fecha de Ingreso: enero-2010
Mensajes: 22
Antigüedad: 14 años, 3 meses
Puntos: 0
Error al validar

Hola a todos!

Soy nuevo en este foro, y entré más que nada para aprender más sobre la programación con php. Además de que tengo una duda y ya estoy desesperado, llevo horas buscando resolver el error y nada.

Bueno, estoy haciendo una página y quiero validar el usuario. El problema es que no importa lo que pongas en el campo del usuario, si pones bien la contraseña te manda a la página directamente. Quisiera saber cómo puedo validar el usuario.

Este es el código de la página de inicio.php

<form action="sesion.php" method="POST" name="login">
<table width="200" border="0" align="center">
<tr>
<td>Usuario: </td>
<td><input name="usuario" id="usuario" type="text" size="10" maxlength="10" /></td>
</tr>
<tr>
<td>Contraseña: </td>
<td><input name="password" id="password" type="password" size="10" maxlength="10" /></td>
</tr>
<tr>
<td><label>
<a href="registro.php"> Registrarse </a>
</label></td>
<td><label>
<input type="submit" name="submit" value="Entrar" />
</label></td>
</tr>
</table>
</form>



Y este es el código de la página de sesion.php

<?php
if (!$conexion=mysql_connect("localhost","root")){
echo "Error conectando a la base de datos.";
exit();
}

if (!mysql_select_db("clinica",$conexion)){
echo "Error seleccionando la base de datos.";
exit();
}

$usuario = $_POST['usuario'];
$password = $_POST['password'];

session_start();
$_SESSION['usuario'] = $usuario;

if (empty($usuario)||empty($password)){
unset($_SESSION['usuario']);
echo "No proporcionaste usuario o contrase&ntilde;a, vuelve a intentarlo.";
}

else{
$alumnoreal = mysql_query("SELECT * FROM alumno WHERE matricula = '$usuario'", $conexion);
$alumno = mysql_fetch_assoc($alumnoreal);

if ($alumno['usuario'] = ""){
unset($_SESSION['usuario']);
echo "El usuario no existe. Vuelve a intentarlo.";
}
else{
$contrasereal = mysql_query("SELECT password FROM alumno WHERE password = '$password'", $conexion);
$cr = mysql_fetch_assoc($contrasereal);

if ($cr['password'] != $password){
unset($_SESSION['usuario']);
echo "La contrase&ntilde;a es incorrecta, vuelve a intentarlo.";
}
else header("Location: OpAlumnos.php");
}
}
?>


Espero que me puedan ayudar con esto. Gracias!!
  #2 (permalink)  
Antiguo 02/01/2010, 17:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error al validar

bueno, definitivamente puedes comparar ambas cosas con una sola consulta...
Cita:
SELECT * FROM tabla WHERE user = 'foo' AND pass = 'bar'
así, con solo comparar el numero de resultados con mysql_num_rows() puedes saber si existe o no el usuario, evitando comparaciones adicionales...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/01/2010, 17:23
 
Fecha de Ingreso: enero-2010
Mensajes: 22
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Error al validar

Bueno, es que mi idea original es que si no se encuentra en la tabla de alumnos, entonces buscar en la tabla de maestros. La primera forma servirá para que tanto un alumno como un maestro inicien sesión, sin tener dos páginas de inicio para cada uno.

Y bueno, podrias darme un ejemplo de cómo usar mysql_num_rows()???

Gracias!!!
  #4 (permalink)  
Antiguo 02/01/2010, 17:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error al validar

vamos por partes, entonces...
Código PHP:
$sql "SELECT * FROM tabla WHERE user ='foo'";
$result mysql_query($sql) or die(mysql_error());
$filas mysql_num_rows($result);
if (
$filas 0// obviamente hay algun resultado 
otra cosa que se me paso decirte es que actives el sistema de errores, o bien, depures tus consultas como en el ejemplo... ¿para que?

es que parece que no tiene sentido que: escribiendo lo que sea, tu permitas que pase dicho bloqueo por lógica... entonces, obviamente hay algo que se te escapa...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 02/01/2010, 18:24
 
Fecha de Ingreso: enero-2010
Mensajes: 22
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Error al validar

Muchas muchas muchas gracias compa!!!!

Todo funciona correctamente!!!!

Etiquetas: Ninguno
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 23:03.