Ver Mensaje Individual
  #10 (permalink)  
Antiguo 15/06/2011, 13:37
Avatar de stramin
stramin
 
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Problema de lógica de condicionales

a ver, te explico amigo memoadian, si te das cuenta en tu código si yo ingreso la primera variable, entraré en el primer if

if(isset($_POST['var1'])){

ya que la var1 esta definida

por otro lado si ingreso la primera y segunda variable entrare en el primer if tambien

if(isset($_POST['var1'])){

ya que la var 1 esta definida

si ingreso la primera y la tercera variable tambien entrare en el primer if, por último si ingreso las 3 variables... tambien entro al primer if, ya que la var1 esta seleccionada

por lo tanto, se puede entrar al primer, segundo y tercer if, JAMAS a los siguientes

la solución es bastante simple, solo invierte el orden de los ifs, algo así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if(isset($_POST['var1']) and isset($_POST['var2']) and isset($_POST['var3'])){
  4.     //codigo largo
  5. }else if(isset($_POST['var1']) && isset($_POST['var2'])){ // se ha ingresado var1 y var2 no var3
  6.     //codigo largo
  7. }else if(isset($_POST['var1']) && isset($_POST['var3'])){
  8.     //codigo largo
  9. }elseif(isset($_POST['var2']) && isset($_POST['var3'])){
  10.     //codigo largo
  11. }else if(isset($_POST['var1'])){ //solo se ha ingresado var1 ninguna otra
  12.     //codigo largo
  13. }else if(isset($_POST['var2'])){
  14.     //codigo largo
  15. }else if(isset($_POST['var3'])){
  16.     //codigo largo
  17. }else{ // no se ha ingresado ninguna
  18.     //codigo largo
  19. }?>
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D