Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/09/2007, 10:30
Avatar de hanscruz
hanscruz
 
Fecha de Ingreso: junio-2005
Mensajes: 278
Antigüedad: 18 años, 10 meses
Puntos: 0
sentencias if se ejecuntan al reves

Miren resulta que tengo varios ifs para condicionar un sistema de suarios pero resulta que los toma al reves es decir ejecuta 1ro los que estan al ultimo, luego el penultimo , etc..

A que se debe esto una ayuda please

aqui les pongo el codigo y la explicacion de lo que esta pasando:
Código PHP:
<?php

/*recojemos los datos del usuario*/
$Usuario=$HTTP_POST_VARS["Usuario"];
$Clave=$HTTP_POST_VARS["Clave"];

/*verificamos si las datos no estan vacios*/
if($Usuario=="" AND $Clave==""){header("location: index.php?UsuarioError=si&ClaveError=si");}
if(
$Usuario==""){header("location: index.php?UsuarioError=si");}
if(
$Clave==""){header("location: index.php?ClaveError=si");}

/*si todo esta bien entonces filtramos los datos para evitar el SQL Injection*/
$Usuario=str_replace("'","",$Usuario);
$Usuario=str_replace('"',"",$Usuario);
$Usuario=str_replace("--","",$Usuario);
$Clave=str_replace("'","",$Clave);
$Clave=str_replace('"',"",$Clave);
$Clave=str_replace("--","",$Clave);

/*nos conectamos con la base de datos*/
include ("abrir_bd.php");

/*creamos nuestra consulta*/
$SentenciaSQL="SELECT * FROM usuarios WHERE Usuario='$Usuario' and Clave='$Clave' and Bloqueado='no'";

/*ejecutamos nuestra consulta y obtenemos el numero de filas del resultado*/
$ConsultaSQL=mysql_query($SentenciaSQL);

/*verificamosr si los datos de identificacion son corretos*/
$Resultado=mysql_num_rows($ConsultaSQL);

if(
$Resultado==0)
{
header("location: index.php?NoUsuario=si");//si no es correcto redirecionamos al formulario de identificacion
}
else
{
/*si los datos de identificacion son correctos realizamos una consulta y establecemos las variables de session*/
$Datos=mysql_fetch_array($ConsultaSQL);
$HTTP_SESSION_VARS["Identificado"]="si";
$HTTP_SESSION_VARS["UsuarioSession"]=$Datos["Usuario"];
$HTTP_SESSION_VARS["NombresSession"]=$Datos["Nombres"];
$HTTP_SESSION_VARS["ApellidosSession"]=$Datos["Apellidos"];
$HTTP_SESSION_VARS["IdUsuarioSession"]=$Datos["Id"];

/*insertamos la fecha de ingreso*/
$FechaIngreso=date("Y-d-m H:i:s");
$InserccionSQL="INSERT Usuarios (FechaUltimoIngreso) Values ('$FechaIngreso')";
mysql_query($InserccionSQL,$Conexion);

/*Redireccionamos al panel de control*/
header("location: panel.php");
}

/*liberamos y cerramos la base de datos*/

?>
Bien si los datos de usuario y contraseña estan vacios deberia mandar al index.php con las dos variables pero solo manda la variable claveerror, ahora por que digo que se esta ejecutando al reves? es porque si cambio ese lugar del codigo asi:
Código PHP:
/*verificamos si las datos no estan vacios*/
if($Clave==""){header("location: index.php?ClaveError=si");}
if(
$Usuario==""){header("location: index.php?UsuarioError=si");}
if(
$Usuario=="" AND $Clave==""){header("location: index.php?UsuarioError=si&ClaveError=si");} 
recien me manda los dos datos usuarioerror y claveerror a que se debe esto a alguien le paso?

saludos
__________________
:policia:

Última edición por hanscruz; 21/09/2007 a las 10:34 Razón: ortografia