Foros del Web » Programando para Internet » PHP »

Bloquear extensiones en PHP

Estas en el tema de Bloquear extensiones en PHP en el foro de PHP en Foros del Web. Hola a todos, estoy programando un sitio web para subir archivos y quiero bloquear las extensiones exe, bat, php, html, css, asp... Quiero bloquear estas, ...
  #1 (permalink)  
Antiguo 23/12/2013, 07:41
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 7 años, 5 meses
Puntos: 0
Bloquear extensiones en PHP

Hola a todos, estoy programando un sitio web para subir archivos y quiero bloquear las extensiones exe, bat, php, html, css, asp...
Quiero bloquear estas, no poner cuales quiero.
Gracias.
  #2 (permalink)  
Antiguo 23/12/2013, 08:53
Avatar de JuanPabloArrebillaga  
Fecha de Ingreso: diciembre-2013
Ubicación: Córdoba
Mensajes: 46
Antigüedad: 7 años, 6 meses
Puntos: 0
Respuesta: Bloquear extensiones en PHP

usando un if según su extención ej:

Esto es para subir solo imagenes
Código PHP:
if($_FILES['type'] == 'image/png' OR $_FILES['type'] == 'image/gif' OR $_FILES['type'] == 'image/jpeg')
     echo 
'Subida exitosa'
else
     echo 
'Solo se permiten archivos: png, gif, jpg'
Quizás el código tenga algún error, ten en cuenta que lo hice aquí mismo sin ningún editor.
__________________
Medir el progreso de la programación por líneas de código es como medir el progreso en la construcción de aviones por el peso.
  #3 (permalink)  
Antiguo 23/12/2013, 09:01
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 10 años, 8 meses
Puntos: 20
Respuesta: Bloquear extensiones en PHP

mete las extensiones que no quieres en un array, y luego si la extension no esta en el array subes el archivo.
  #4 (permalink)  
Antiguo 23/12/2013, 09:21
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 7 años, 5 meses
Puntos: 0
Respuesta: Bloquear extensiones en PHP

Podrian decirme exactamente como? O pasarme un link.
Ademas, como podria crear una progress bar durante la carga?
www.aleation.net/agraphics_clients
  #5 (permalink)  
Antiguo 23/12/2013, 10:12
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 10 años, 8 meses
Puntos: 20
Respuesta: Bloquear extensiones en PHP

Código PHP:
Ver original
  1. <?php
  2. $extensiones= array("exe", "bat", "php", "html", "css", "asp");
  3.  
  4. if (in_array($extension, $extensiones))
  5.   {
  6.   echo "No subo archivo";
  7.   }
  8. else
  9.   {
  10.   echo "Subo archivo";
  11.   }
  12. ?>

$extension es la extension del archivo que subes
  #6 (permalink)  
Antiguo 23/12/2013, 10:29
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 7 años, 5 meses
Puntos: 0
Respuesta: Bloquear extensiones en PHP

Sigue sin funcionar, siempre sube el archivo. Te adjunto una imagen de mi php.
https://dl.dropboxusercontent.com/u/58475134/Captura-de-pantalla-2013-12-23-a-les-17.22.31.png
  #7 (permalink)  
Antiguo 23/12/2013, 10:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.323
Antigüedad: 13 años, 6 meses
Puntos: 2656
Respuesta: Bloquear extensiones en PHP

Y seré curioso... ¿de dónde sale la variable $extension?
Porque allí no se sabe si realmente existe, o si tiene lo que supones que contiene.
Si te está subiendo de todos modos los archivos creo que es razonable suponer que está saliendo por el ELSE, y por tanto la condición del IF es FALSE. Y siendo que el in_array() funciona bien, entonces debemos deducir que la variable en cuestión contiene algo diferente a lo esperado, o contiene un espacio vacío...
Es simple deducción.

¿No te parece?

Nunca descartes que las variables sean la causa del problema. La mayoría de las veces por allí anda la cosa.
Verifica esa variable.

Por cierto, es mejor que postees el código (para eso están los highlights), y no que enlaces una imagen. No te preocupes, nadie plagiará nada que no te hayan dado ya...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 23/12/2013, 10:49
Avatar de baldaweb  
Fecha de Ingreso: septiembre-2010
Ubicación: Barco pirata
Mensajes: 244
Antigüedad: 10 años, 8 meses
Puntos: 20
Respuesta: Bloquear extensiones en PHP

Lo que dice el compañero, mira a ver la variable $extension el valor que tiene y vas probando. Pero recuerda que debes sacar la extension del archivo.
  #9 (permalink)  
Antiguo 23/12/2013, 14:29
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 7 años, 5 meses
Puntos: 0
Respuesta: Bloquear extensiones en PHP

No entiendo que tengo que poner en la variable $extension
  #10 (permalink)  
Antiguo 23/12/2013, 14:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.323
Antigüedad: 13 años, 6 meses
Puntos: 2656
Respuesta: Bloquear extensiones en PHP

Cita:
Iniciado por hani9 Ver Mensaje
No entiendo que tengo que poner en la variable $extension


Pues es medio evidente: Si estás tratando de comparar el contenido de esa variable con un array de cadenas de caracteres que son extensiones de archivo, entonces lo que debe contener la variable es la extensión del archivo que el usuario va a intentar subir...
Lo que te están indicando es cómo extraer del archivo seleccionado por el usuario solamente la extensión que tiene.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 23/12/2013, 14:56
 
Fecha de Ingreso: diciembre-2013
Mensajes: 5
Antigüedad: 7 años, 5 meses
Puntos: 0
Respuesta: Bloquear extensiones en PHP

Siento no saber mas, pero empeze hoy a programar en PHP, todavia no entiendo mucho, hago lo que puedo.
Código PHP:
Ver original
  1. $nombre = strip_tags($_POST['name']);
  2. $email = strip_tags($_POST['email']);
  3. $file = strip_tags($_POST['file']);
  4. $meter = @mysql_query('INSERT INTO usuarios (name, email, file) values ("'.mysql_real_escape_string($nombre).'", "'.mysql_real_escape_string($email).'", "'.mysql_real_escape_string($file).'")');
  5. //Verifiquem l'extensio
  6. if ($meter)
  7. $extension = array("jpg", "jpeg", "gif", "png", "avi", "mp4", "mkv", "wmv", "mp3");
  8. $extensiones = array("exe", "bat", "php", "html", "css", "asp", "js");
  9.  
  10. if (in_array($extension, $extensiones))
  11.       {
  12.       echo "Non identified format";
  13.       }else{
  14.       move_uploaded_file($_FILES["archivo"]["tmp_name"],
  15.             "archivos/" . $_FILES["archivo"]["name"]);
  16.             echo "Completed <br />";
  17.            
  18. }
Sigue sin funcionar, siempre lo sube.

Etiquetas: bloquear, extensiones, html
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:56.