Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/03/2004, 13:43
mmurga
 
Fecha de Ingreso: enero-2004
Mensajes: 3
Antigüedad: 20 años, 3 meses
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

?>