elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  restriccion de arvhivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: restriccion de arvhivos  (Leído 2,252 veces)
jalbtercero

Desconectado Desconectado

Mensajes: 80


Ver Perfil
restriccion de arvhivos
« en: 6 Marzo 2016, 17:27 pm »

tengo este codigo en el que se supones que solo se puede subir rar zip odt y pdf. Pero siempre me da error de que el tamaño es demasiado grande o no esta permitido y solo subo un odt de 16kb

Código
  1. <?php
  2. if(isset($_POST['boton'])) {
  3.      if ((($_FILES["archivo-a-subir"]["type"] == "file/odt")
  4.      || ($_FILES["archivo-a-subir"]["type"] == "file/pdf")
  5.      || ($_FILES["archivo-a-subir"]["type"] == "file/rar")
  6.      || ($_FILES["archivo-a-subir"]["type"] == "file/zip"))
  7.      && ($_FILES["archivo-a-subir"]["size"] < 250000000))
  8. {
  9.  
  10. $target_path = "subidas/";
  11. $target_path = $target_path . basename( $_FILES['archivo-a-subir']['name']);
  12. if(move_uploaded_file($_FILES['archivo-a-subir']['tmp_name'], $target_path))
  13. {
  14.                require("connect_db.php");
  15.                session_start();
  16.                $nombre=$_SESSION["usuario"];
  17.                $desc=$_POST['desc'];
  18.                $direccion='subidas/'.basename( $_FILES['archivo-a-subir']['name']);
  19.                $pass=rand(0,1000000000);
  20.                mysql_query("INSERT INTO archivos VALUES('$nombre','$desc','$direccion','$pass')");
  21.                mysql_close($link);
  22. echo "El archivo ". basename( $_FILES['archivo-a-subir']['name'])." ha sido subido exitosamente!";
  23. }
  24. else
  25. {
  26. echo "Hubo un error al subir tu archivo! Por favor intenta de nuevo.";
  27. }
  28.  
  29.  
  30.  
  31.  
  32.  
  33. } else {
  34. echo "El tamaño del archivo no esta permitido o el archivo esta prohibido";
  35. }
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44. }
  45.  
  46.  


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: restriccion de arvhivos
« Respuesta #1 en: 6 Marzo 2016, 17:39 pm »

solo para ayudarte a esclarecer el hecho que está fallando, agrega al else

Código
  1. echo "<pre>";
  2. var_dump($_FILES);
  3. echo "</pre>";


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: restriccion de arvhivos
« Respuesta #2 en: 6 Marzo 2016, 17:42 pm »

Los Media Types que tienes son incorrectos.

Código
  1. <?php
  2. if(isset($_POST['boton'])) {
  3.      if ((($_FILES["archivo-a-subir"]["type"] == "application/odt")
  4.      || ($_FILES["archivo-a-subir"]["type"] == "application/pdf")
  5.      || ($_FILES["archivo-a-subir"]["type"] == "application/x-rar-compressed")
  6.      || ($_FILES["archivo-a-subir"]["type"] == "application/zip"))
  7.      && ($_FILES["archivo-a-subir"]["size"] < 250000000))
  8. {

https://en.wikipedia.org/wiki/Media_type
http://www.freeformatter.com/mime-types-list.html

Para ver el media type de un archivo, simplemente imprimelo antes de tomar cualquier acción.

Código
  1. <?php
  2. if(isset($_FILES['archivo-a-subir']['type'])){
  3.    print_r($_FILES['archivo-a-subir']['type']);
  4.    die();
  5. }

Saludos
En línea

jalbtercero

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: restriccion de arvhivos
« Respuesta #3 en: 6 Marzo 2016, 18:05 pm »

solo para ayudarte a esclarecer el hecho que está fallando, agrega al else

Código
  1. echo "<pre>";
  2. var_dump($_FILES);
  3. echo "</pre>";


Gracias me ayudo mucho

por cierto alguin subio esto a mi pagina:

Código
  1.  
  2. <?php
  3.  
  4. /**
  5.  * @file
  6.  * Handles incoming requests to fire off regularly-scheduled tasks (cron jobs).
  7.  */
  8.  
  9. /**
  10.  * Root directory of Drupal installation.
  11.  */
  12. define('DRUPAL_ROOT', getcwd());
  13.  
  14. include_once DRUPAL_ROOT . '/includes/bootstrap.inc';
  15. drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
  16.  
  17. if (!isset($_GET['cron_key']) || variable_get('cron_key', 'drupal') != $_GET['cron_key']) {
  18.  watchdog('cron', 'Cron could not run because an invalid key was used.', array(), WATCHDOG_NOTICE);
  19.  drupal_access_denied();
  20. }
  21. elseif (variable_get('maintenance_mode', 0)) {
  22.  watchdog('cron', 'Cron could not run because the site is in maintenance mode.', array(), WATCHDOG_NOTICE);
  23.  drupal_access_denied();
  24. }
  25. else {
  26.  drupal_cron_run();
  27. }
  28.  

no,lo entiendo del todo
« Última modificación: 6 Marzo 2016, 18:10 pm por jalbtercero » En línea

MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: restriccion de arvhivos
« Respuesta #4 en: 6 Marzo 2016, 18:21 pm »

No puedes comprobar si un archivo es realmente una imagen/pdf/oct, etc en base a ese mime type, porque cualquiera puede enviar un Content-Type falso.

Citar
$_FILES['userfile']['type']
The mime type of the file, if the browser provided this information. An example would be "image/gif". This mime type is however not checked on the PHP side and therefore don't take its value for granted.
« Última modificación: 6 Marzo 2016, 18:38 pm por MinusFour » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines