Foros del Web » Programando para Internet » PHP »

Alguien que me traduzca esta linea!!

Estas en el tema de Alguien que me traduzca esta linea!! en el foro de PHP en Foros del Web. Hola gente, como estan?? espero que bien... y ojala puedan ayudarme,el tema es el siguiente.. estoy usando un scirpt en php, en el cual tengo ...
  #1 (permalink)  
Antiguo 11/10/2010, 16:11
 
Fecha de Ingreso: mayo-2010
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Pregunta Alguien que me traduzca esta linea!!

Hola gente, como estan?? espero que bien... y ojala puedan ayudarme,el tema es el siguiente..

estoy usando un scirpt en php, en el cual tengo problemas a la hora de subir avatar (es con ajax) en algunos hosting me funciona y en otros no, y claro justo en el cotnrate pago no me funciona la subida de avatar, salvo si elimino esta linea del archivo avatar.php

if(!in_array(exif_imagetype($_FILES['file-avatar']['tmp_name']), $allowede)) { @unlink($_FILES['file-avatar']['tmp_name']); jerror('El archivo no es una imagen válida'); }


pero me da miedo que me puedan subir una shell o algo asi si quito esa linea.

esa linea es demasiado importante?? proque cuando la quito me deja subir el avatar muy bien.

estan son todas las lineas junto a esa

$allowed = array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/png');
$allowedc = array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG);
$allowede = array('gif', 'jpg', 'jpeg', 'png'); //jerror(print_r($_FILES,true));
if(!is_uploaded_file($_FILES['file-avatar']['tmp_name'])) { @unlink($_FILES['file-avatar']['tmp_name']); jerror('Archivo incorrecto'); }
if($_FILES['file-avatar']['error'] != 0) { @unlink($_FILES['file-avatar']['tmp_name']); jerror('Hubo un error al subir el archivo'); }
if($_FILES['file-avatar']['size'] > $maxsize) { @unlink($_FILES['file-avatar']['tmp_name']); jerror('El archivo es demasiado pesado'); }
if(!in_array($_FILES['file-avatar']['type'], $allowed)) { @unlink($_FILES['file-avatar']['tmp_name']); jerror('El archivo no es una imagen válida'); }
if(!in_array(exif_imagetype($_FILES['file-avatar']['tmp_name']), $allowede)) { @unlink($_FILES['file-avatar']['tmp_name']); jerror('El archivo no es una imagen válida'); }
if(!in_array(substr(strrchr(basename($_FILES['file-avatar']['name']), '.'), 1), $allowede)) { @unlink($_FILES['file-avatar']['tmp_name']); jerror('El archivo no es una imagen válida'); }
list($width, $height) = getimagesize($_FILES['file-avatar']['tmp_name']);
$dest = '../avatares/tmp/'.sha1_file($_FILES['file-avatar']['tmp_name']).strtolower(substr($_FILES['file-avatar']['name'], strrpos($_FILES['file-avatar']['name'], '.')));
if(!move_uploaded_file($_FILES['file-avatar']['tmp_name'], $dest)) {
jerror('No se pudo subir el archivo');
  #2 (permalink)  
Antiguo 11/10/2010, 18:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde Configuración PHP a PHP
  #3 (permalink)  
Antiguo 11/10/2010, 20:23
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Alguien que me traduzca esta linea!!

Código PHP:
Ver original
  1. if(!in_array(exif_imagetype($_FILES['file-avatar']['tmp_name']), $allowede)) {
  2.     @unlink($_FILES['file-avatar']['tmp_name']);
  3.     jerror('El archivo no es una imagen válida');
  4. }
exif_imagetype() returna una constante, y en esa línea estas comprobando si el valor retornado por exif_imagetype() está en el array $allowede, pero dicho array contiene extensiones, no constantes. La solución sería reemplazar $allowede por $allowedc en la línea que te causa problemas.
Prueba y comentas.

Saludos.
__________________
eZakto™
  #4 (permalink)  
Antiguo 11/10/2010, 20:50
 
Fecha de Ingreso: mayo-2010
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Alguien que me traduzca esta linea!!

Cita:
Iniciado por eZakto Ver Mensaje
Código PHP:
Ver original
  1. if(!in_array(exif_imagetype($_FILES['file-avatar']['tmp_name']), $allowede)) {
  2.     @unlink($_FILES['file-avatar']['tmp_name']);
  3.     jerror('El archivo no es una imagen válida');
  4. }
exif_imagetype() returna una constante, y en esa línea estas comprobando si el valor retornado por exif_imagetype() está en el array $allowede, pero dicho array contiene extensiones, no constantes. La solución sería reemplazar $allowede por $allowedc en la línea que te causa problemas.
Prueba y comentas.

Saludos.
Gracias por responder, pero no me funciono amigo, mira esta es la linea que meda problemas:

Cita:
if(!in_array(exif_imagetype($_FILES['file-avatar']['tmp_name']), $allowedc)) { @unlink($_FILES['file-avatar']['tmp_name']); jerror('El archivo no es una imagen válida'); }
probe cambiar el $allowedc por $allowede y tampoco no sube avatares.

si elimino la linea completa los sube, pero me podrian subir una shell supongo. tendra solucion?

Etiquetas: linea, noentiendo
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 10:40.