Foros del Web » Programando para Internet » PHP »

problema con cabecera mime

Estas en el tema de problema con cabecera mime en el foro de PHP en Foros del Web. hola amigos trato de verificar que el archivo subido es una imagen y no se realiza la comprobacion deseada. Código PHP: $binario_tipo = $_FILES [ ...
  #1 (permalink)  
Antiguo 16/05/2004, 18:47
Avatar de fmmeson  
Fecha de Ingreso: enero-2002
Ubicación: Tucuman
Mensajes: 401
Antigüedad: 22 años, 3 meses
Puntos: 2
problema con cabecera mime

hola amigos trato de verificar que el archivo subido es una imagen y no se realiza la comprobacion deseada.
Código PHP:
$binario_tipo=$_FILES['archivo']['type'];
if ((
$binario_tipo != 'image/pjpeg') OR ($binario_tipo != 'image/gif') OR ($binario_tipo != 'image/png')) {
header("location: subir_foto.php?proceso=formato_no_admitido");
exit;

alguna sugerencia ????

desde ya muchas gracias
__________________
Lo que se hace por AMOR esta mas allá del BIEN y del MAL - Friedrich Nietzsche
http://www.hispanogeek.com.ar
Desarrollador IT -
  #2 (permalink)  
Antiguo 17/05/2004, 06:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Aunque puedes usar OR como operador lógico .. podrías usar: ||

Y .. empieza hacer un
echo $binario_tipo;

para ver si realmente tiene el valor esperado de las cadenas que intentas filtrar con tu condicional.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 17/05/2004, 06:39
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

En PHP las operaciones logicas se ejecutan en "cortocircuito'. No se evaluan todas las condiciones, solo las necesarias para que la expresion completa tenga un valor. Con el OR se evalua cada expresion hasta la primera que se evalue a cierto. Con lo que tu condicion siempre es cierta si:

($binario_tipo != 'image/pjpeg')

es decir, si $binario_tipo no es 'image/pjpeg'. Asi que si tipo es 'image/gif', ya se cumple la condicion anterior y se ejecuta el if.

El problema aqui es de la logica que usas. No tenias que preguntar por OR, sino por AND: que no sea tal Y no sea cual Y no sea tal.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 15:58.