Foros del Web » Programando para Internet » PHP »

Problemas con 2 condiciones en un if

Estas en el tema de Problemas con 2 condiciones en un if en el foro de PHP en Foros del Web. Buenas gente, Tengo el siguiente problema, estoy comprobando unos campos que vienen en un archivo. En una variable tengo que comprobar que el campo sea ...
  #1 (permalink)  
Antiguo 08/05/2013, 07:45
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Problemas con 2 condiciones en un if

Buenas gente,
Tengo el siguiente problema, estoy comprobando unos campos que vienen en un archivo.
En una variable tengo que comprobar que el campo sea 1 o 0 y no puedo sacarlo.
Este es el codigo.
Código PHP:
if(!is_numeric($basico)){
    echo
"<script>
            alert ('El campo Sueldo Basico debe ser numerico');
            window.location.href='form.htm';
        </script>"
;
        
unlink($destino);//borro el archivo si tiene algun error 
}
    elseif(!
is_numeric($bruto)){
        echo
"<script>
            alert ('El campo Sueldo Bruto debe ser numerico');
            window.location.href='form.htm';
            </script>"
;
            
unlink($destino);//borro el archivo si tiene algun error 
    
}
        elseif(
$afili != 0){
            echo
"<script>
                alert ('Debe indicar 1 para afiliados y 0 para no afiliados');
                window.location.href='form.htm';
                </script>"
;
                
unlink($destino);
        } 
Hasta ahi todo bien, pero la variable $afili tiene que ser 1 o 0 y cuando le quiero agregar otra condicion no me funciona.
Asi lo probe y no anda
Código PHP:
 elseif(($afili != 0) || ($afili != 1)){
            echo
"<script>
                alert ('Debe indicar 1 para afiliados y 0 para no afiliados');
                window.location.href='form.htm';
                </script>"
;
                
unlink($destino);
        } 
__________________
Nico...
  #2 (permalink)  
Antiguo 08/05/2013, 08:13
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: Problemas con 2 condiciones en un if

Código PHP:
elseif($afili == || $afili == 1){ 
            echo
"<script> 
                alert ('Debe indicar 1 para afiliados y 0 para no afiliados'); 
                window.location.href='form.htm'; 
                </script>"

                
unlink($destino); 
        } 
?
  #3 (permalink)  
Antiguo 08/05/2013, 08:43
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemas con 2 condiciones en un if

Mmmm....no funciona
__________________
Nico...
  #4 (permalink)  
Antiguo 08/05/2013, 08:49
 
Fecha de Ingreso: noviembre-2012
Mensajes: 84
Antigüedad: 11 años, 4 meses
Puntos: 5
Respuesta: Problemas con 2 condiciones en un if

Hola Nico0601 !!

Antes de la condición que te da problemas tienes:


Código PHP:
 elseif($afili != 0){ 
            echo
"<script> 
                alert ('Debe indicar 1 para afiliados y 0 para no afiliados'); 
                window.location.href='form.htm'; 
                </script>"

                
unlink($destino); 
        } 
Prueba a dar otro valor a $afili, porque da la impresión de que nunca entra en la condición que te da problemas
  #5 (permalink)  
Antiguo 08/05/2013, 08:51
Avatar de alealvaro  
Fecha de Ingreso: junio-2004
Ubicación: BA - Argentina
Mensajes: 210
Antigüedad: 19 años, 10 meses
Puntos: 12
Respuesta: Problemas con 2 condiciones en un if

Hola!!

Código PHP:
Ver original
  1. elseif(($afili != 0) && ($afili != 1)){
  2.             echo"<script>
  3.                alert ('Debe indicar 1 para afiliados y 0 para no afiliados');
  4.                window.location.href='form.htm';
  5.                </script>";
  6.                 unlink($destino);
  7.         }

así?
__________________
Always learning a little more...
Videos y frases para dedicar
Quotes and Phrases for You
  #6 (permalink)  
Antiguo 08/05/2013, 08:59
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: Problemas con 2 condiciones en un if

a lol he leido mal . Puedes darnos el resultado de esto

Código PHP:
var_dump($afili$basico$bruto); 
  #7 (permalink)  
Antiguo 08/05/2013, 09:08
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemas con 2 condiciones en un if

Hola bulter, te paso el resultado del var_dump

string(3) "1 " string(7) "2345.45" string(7) "4000.21"

Con la opcion que me paso Alealvaro funciona con 1 o 0 pero si le pongo una letra tambien funciona y no deberia
__________________
Nico...
  #8 (permalink)  
Antiguo 08/05/2013, 09:13
 
Fecha de Ingreso: abril-2003
Ubicación: Mexico
Mensajes: 604
Antigüedad: 21 años
Puntos: 23
Respuesta: Problemas con 2 condiciones en un if

no seria mas optimo hacer un switch ??
__________________
¡El Respeto al Derecho Ajeno Es la Paz!
  #9 (permalink)  
Antiguo 08/05/2013, 09:17
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: Problemas con 2 condiciones en un if

Código PHP:
elseif($afili !== && $afili !== 1){ 
        echo
"<script> 
            alert ('Debe indicar 1 para afiliados y 0 para no afiliados'); 
            </script>"

    } 
  #10 (permalink)  
Antiguo 08/05/2013, 09:23
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemas con 2 condiciones en un if

Mmm...no...tampoco funciona bulter
__________________
Nico...
  #11 (permalink)  
Antiguo 08/05/2013, 09:26
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: Problemas con 2 condiciones en un if

Lol si a mi me funciona asi :O
  #12 (permalink)  
Antiguo 08/05/2013, 09:26
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: Problemas con 2 condiciones en un if

...........error
  #13 (permalink)  
Antiguo 08/05/2013, 09:29
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemas con 2 condiciones en un if

De esa manera si funciona (igual que la de Alealvaro) pero en el caso de que en el campo el valor sea una letra por ejemplo tambien pasa, no me tira el alert.
__________________
Nico...
  #14 (permalink)  
Antiguo 08/05/2013, 09:30
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: Problemas con 2 condiciones en un if

Código PHP:
elseif((string)$afili !== "0" && (string)$afili !== "1"){ 
        echo
"<script> 
            alert ('Debe indicar 1 para afiliados y 0 para no afiliados'); 
            </script>"

    } 
Aqui lo tienes.... eso ya si que ira :D lol me he mareado yo mas que tu
  #15 (permalink)  
Antiguo 08/05/2013, 09:36
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemas con 2 condiciones en un if

No funcionaaaaa.....como puede ser :(......Si vos te mareaste sabes como estoy yo! ja!
__________________
Nico...
  #16 (permalink)  
Antiguo 08/05/2013, 09:39
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: Problemas con 2 condiciones en un if

Código PHP:
<?php
$basico 
2345.45;
$bruto 4000.21;
$afili "a";

if(!
is_numeric($basico)){ 
    echo
"<script> 
            alert ('El campo Sueldo Basico debe ser numerico'); 
        </script>"


elseif(!
is_numeric($bruto)){ 
    echo
"<script> 
        alert ('El campo Sueldo Bruto debe ser numerico'); 
        </script>"


    elseif((string)
$afili !== "0" && (string)$afili !== "1"){ 
        echo
"<script> 
            alert ('Debe indicar 1 para afiliados y 0 para no afiliados'); 
            </script>"

    }  
?>
Mira lo bien por que si que debe de funcionar.

PS: voy mareado por que llevo 28 horas sin dormir y no se lo que hago ya :D
  #17 (permalink)  
Antiguo 08/05/2013, 09:43
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemas con 2 condiciones en un if

Fijate que en el var_dump de $afili hay un espacio antes de que cierre la comilla, eso esta bien? No puede estar jodiendo? "1 " asi se ve.
Mira el script como lo estoy haciendo....
Código PHP:
Ver original
  1. $status = "";
  2. if ($_POST["action"] == "upload") {
  3.    // obtenemos los datos del archivo
  4.    $tamano = $_FILES["archivo"]['size'];
  5.    $tipo = $_FILES["archivo"]['type'];
  6.    $archivo = $_FILES["archivo"]['name'];
  7.    //le antepongo 6 caracteres aleatorios para que no se sobreescriba con otro archivo de igual nombre
  8.    $prefijo = substr(md5(uniqid(rand())),0,6);
  9.        
  10.      if ($archivo != "") {
  11.      // guardamos el archivo a la carpeta files
  12.         $destino =  "files/".$prefijo."_".$archivo;
  13.           if (copy($_FILES['archivo']['tmp_name'],$destino)) {
  14.              $status = "Archivo subido: <b>".$archivo."</b>";
  15.           } else {
  16.              $status = "Error al subir el archivo";
  17.           }
  18.      }
  19. else{
  20.     $status = "Error al subir archivo";
  21.     }
  22. }
  23.  
  24. $file = file_get_contents($destino);
  25. $separador = explode(",",$file);
  26. $apellidos = $separador[0];
  27. $nombres = $separador[1];
  28. $cuil = $separador[2];
  29. $basico = $separador[3];
  30. $bruto = $separador[4];
  31. $afili = $separador[5];
  32.  
  33.  
  34. if(!is_numeric($basico)){
  35.     echo"<script>
  36.            alert ('El campo Sueldo Basico debe ser numerico');
  37.            window.location.href='form.htm';
  38.        </script>";
  39.         unlink($destino);//borro el archivo si tiene algun error
  40. }
  41.     elseif(!is_numeric($bruto)){
  42.         echo"<script>
  43.            alert ('El campo Sueldo Bruto debe ser numerico');
  44.            window.location.href='form.htm';
  45.            </script>";
  46.             unlink($destino);//borro el archivo si tiene algun error
  47.     }
  48.         elseif((string)$afili !== "0" && (string)$afili !== "1"){  
  49.             echo"<script>
  50.                alert ('Debe indicar 1 para afiliados y 0 para NO afiliados');
  51.                window.location.href='form.htm';
  52.                </script>";
  53.                 unlink($destino);
  54.         }
  55.         else
  56.         {
  57.             echo "Archivo Importado";
  58.         }
__________________
Nico...
  #18 (permalink)  
Antiguo 08/05/2013, 09:46
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: Problemas con 2 condiciones en un if

Jajajajaj :D mira que no vi el space .. eso es lo que te jode todo :D

Código PHP:
elseif(trim((string)$afili) !== "0" && trim((string)$afili) !== "1"){ 
            echo 
"Error for: " $afili "<Br />";
    } 
o simplemente

Código PHP:
$afili trim($afili);

elseif(
$afili !== "0" && $afili !== "1"){ 
            echo 
"Error for: " $afili "<Br />";
    } 
  #19 (permalink)  
Antiguo 08/05/2013, 09:46
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemas con 2 condiciones en un if

si, es ese espacio que te dije que nose de donde viene
__________________
Nico...
  #20 (permalink)  
Antiguo 08/05/2013, 09:48
Avatar de bulter  
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 16 años, 3 meses
Puntos: 20
Respuesta: Problemas con 2 condiciones en un if

da iwal pon

Código PHP:
$afili = (string)trim($afili); 
  #21 (permalink)  
Antiguo 08/05/2013, 09:50
Avatar de Nico0601  
Fecha de Ingreso: diciembre-2012
Ubicación: Buenos Aires, Zona Sur
Mensajes: 134
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemas con 2 condiciones en un if

Sos Grosssooo....sabelo! jaja!
Muchas gracias
__________________
Nico...

Etiquetas: condiciones
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 18:10.