10/03/2004, 13:43
|
| | Fecha de Ingreso: enero-2004
Mensajes: 3
Antigüedad: 21 años Puntos: 0 | |
Problemas con if() anidados Tengo el siguiente código que corresponde a la validación de un nombre de usuario y una contraseña.
Todo funciona a la perfección, menos al final. Lo que no funciona es cuando el nombre de usuario no existe. No me muestra nada. O sea, envio en form con un nombre de usuario incorrecto y me aparece una página en blanco. Ahí les va el código.
<?
$conexion = mysql_connect($bdd_servidor, $bdd_usuario, $bdd_contrasenia); // Establece conexión con el servidor de BDD
// Comprueba que no se haya dejado ningún casillero en blanco
if (($_POST["nombre_usuario"] == "") || ($_POST["contrasenia"] == "")) {
$msg_error = "<p class=\"chico\"><font color=\"#FF0000\">Error:</font> No se puede dejar ningún casillero en blanco.</p>\n";
$mostrar_html = 1;
}
// Si se han llenado todos los casilleros
else {
// Comprueba si existe el nombre de usuario ingresado
$consulta = mysql_db_query($bdd_base, "SELECT id, nombre FROM ".$bdd_prefijo."usuarios WHERE nombre='".$_POST["nombre_usuario"]."'");
while ($campo = mysql_fetch_array($consulta)) {
// Si el usuario existe
if ($campo["id"]) {
// Comprueba que la contraseña sea correcta
$consulta2 = mysql_db_query($bdd_base, "SELECT contrasenia FROM ".$bdd_prefijo."usuarios WHERE nombre='".$campo["nombre"]."'");
while ($campo2 = mysql_fetch_array($consulta2)) {
// Si la contraseña es correcta
if ($_POST["contrasenia"] == $campo2["contrasenia"]) {
$_SESSION["nombre_usuario"] = $campo["nombre"];
mysql_db_query($bdd_base, "UPDATE ".$bdd_prefijo."usuarios SET activo='1' WHERE id='".$campo["id"]."'"); // Le indicamos a la BDD que el usuario está activo
// Averigua el nombre del equipo dirijido por este usuario
$consulta3 = mysql_db_query($bdd_base, "SELECT nombre FROM ".$bdd_prefijo."equipos WHERE id_dt='".$campo["id"]."'");
while ($campo3 = mysql_fetch_array($consulta3)) {
$_SESSION["nombre_equipo"] = $campo3["nombre"];
}
mysql_free_result($consulta3);
// Redirecciona hacia la página principal de Mi Cuenta
header("Location: index.php");
}
// Si la contraseña es incorrecta
else {
$msg_error = "<p class=\"chico\"><font color=\"#FF0000\">Error:</font> La contraseña ingresada no corresponde al usuario <b>".$campo["nombre"]."</b>.</p>\n";
$mostrar_html = 1;
}
}
mysql_free_result($consulta2);
}
// Si el nombre de usuario no existe
else {
$msg_error = "<p class=\"chico\"><font color=\"#FF0000\">Error:</font> El nombre de usuario ingresado no corresponde a ninguna cuenta registrada.</b>.</p>\n";
$mostrar_html = 1;
}
}
mysql_free_result($consulta);
}
mysql_close($conexion); // Cierra la conexión con el servidor de BDD
?> |