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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Ayuda, ver y borrar archivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda, ver y borrar archivos  (Leído 6,947 veces)
krisor

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Ayuda, ver y borrar archivos
« en: 22 Julio 2009, 18:56 pm »

Holap, soy nuevo por aqui, paso por recomendacion ^^

Mi caso es, tengo dos codes, uno para ver archivos de un directorio y otro para eliminar archivos, concretamente, el que este puesto en el .php. Lo que quisiera es, que al escribir, por ejemplo, www.webweb.com/cajon/borrar.php, muestre los archivos que hay en dichi directorio y que al seleccionar uno, se borre, seria eso posible?

Os pongo los codes:

-Para borrar

Código:
<?php
if (file_exists("/temp/aviso.bmp")) {
  unlink("/temp/aviso.bmp");
  print("File removed.\n");
} else {
  print("File does not exist.\n");
}
?>

-Para ver los archivos

Código:
<?php
function getFiles($path) {
$files = array();
$fileNames = array();
$i = 0;

if (is_dir($path)) {
if ($dh = opendir($path)) {
while (($file = readdir($dh)) !== false) {
if ($file == "." || $file == ".." || $file == "index.php" || $file == "passwords.txt") continue;
$fullpath = $path . "/" . $file;
$fkey = strtolower($file);
while (array_key_exists($fkey,$fileNames)) $fkey .= " ";
$a = stat($fullpath);
$files[$fkey]['size'] = $a['size'];
if ($a['size'] == 0) $files[$fkey]['sizetext'] = "-";
else if ($a['size'] > 1024) $files[$fkey]['sizetext'] = (ceil($a['size']/1024*100)/100) . " Kb";
else if ($a['size'] > 1024*1024) $files[$fkey]['sizetext'] = (ceil($a['size']/(1024*1024)*100)/100) . " Mb";
else $files[$fkey]['sizetext'] = $a['size'] . " bytes";
$files[$fkey]['name'] = $file;
$files[$fkey]['type'] = filetype($fullpath);
$fileNames[$i++] = $fkey;
}
closedir($dh);
} else die ("No pudo abrirse el directorio: $path");
} else die ("La ruta no es un directorio: $path");
sort($fileNames,SORT_STRING);
$sortedFiles = array();
$i = 0;
foreach($fileNames as $f) $sortedFiles[$i++] = $files[$f];

return $sortedFiles;
}

$files = getFiles("./");
foreach ($files as $file) print "&nbsp;&nbsp;&nbsp;&nbsp;<b><a href=\"$file[name]\">$file[name]</a></b><br>\n";
}
    ?>

Espero puedan ayudarme, saludos ^^


« Última modificación: 22 Julio 2009, 19:42 pm por krisor » En línea

SnakeDrak

Desconectado Desconectado

Mensajes: 243


[GPG: 0x9680A09E]


Ver Perfil
Re: Ayuda, ver y borrar archivos
« Respuesta #1 en: 22 Julio 2009, 20:06 pm »

Hola,

No entiendo el problema, si ahí tienes los códigos, ¿qué necesitas?, ¿te dan error?

Bueno si lo que quieres es borrar el archivo seleccionado pues borrar.php:

Código
  1. // Función de ver los ficheros
  2. // AQUÍ INCLUYE LA DE GETFILES (por ejemplo)
  3. $dir = "./"; // Ahí pones el directorio
  4. // Comprobamos si el nombre pasado tiene "/" (para evitar salir de directorios, lee debajo del code) o si no existe
  5. if(!isset($_GET['archivo']) || !preg_match('/[^\/]/',$_GET['archivo']) || $_GET['archivo']=="borrar.php"){
  6. $files = getFiles($dir);
  7. foreach ($files as $file) echo "&nbsp;&nbsp;&nbsp;&nbsp;<b><a href=\"./?archivo=".$file[name]."\">".$file[name]."</a></b><br>\n";
  8. }
  9. else {
  10. if (file_exists($dir.$_GET['archivo'])) {
  11. unlink($dir.$_GET['archivo']);
  12. echo "Archivo eliminado.\n";
  13. } else
  14. echo "El archivo ".$_GET['archivo']." no existe.\n";
  15. }
  16.  

La única restricción que he puesto es de "/" pero puedes ponerle que el nombre de archivo no pueda contener caracteres como "*" o similares.. para evitar que te borren otros archivos.

NOTA: NO HE COMPROBADO LA FUNCIÓN GETFILES pero supongo que estará bien, solo ponla arriba y ya.

Lo he hecho a lo rápido, pero no debería tener errores, si tiene alguno solo dilo.

Saludos!


« Última modificación: 22 Julio 2009, 20:33 pm por SnakeDrak » En línea

krisor

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Ayuda, ver y borrar archivos
« Respuesta #2 en: 22 Julio 2009, 22:39 pm »

Bueno, he echo esto a ciegas, por eso no va .-.

Código:
<?php
function getFiles($path) {
$files = array();
$fileNames = array();
$i = 0;

if (is_dir($path)) {
if ($dh = opendir($path)) {
while (($file = readdir($dh)) !== false) {
if ($file == "." || $file == ".." || $file == "index.php" || $file == "passwords.txt") continue;
$fullpath = $path . "/" . $file;
$fkey = strtolower($file);
while (array_key_exists($fkey,$fileNames)) $fkey .= " ";
$a = stat($fullpath);
$files[$fkey]['size'] = $a['size'];
if ($a['size'] == 0) $files[$fkey]['sizetext'] = "-";
else if ($a['size'] > 1024) $files[$fkey]['sizetext'] = (ceil($a['size']/1024*100)/100) . " Kb";
else if ($a['size'] > 1024*1024) $files[$fkey]['sizetext'] = (ceil($a['size']/(1024*1024)*100)/100) . " Mb";
else $files[$fkey]['sizetext'] = $a['size'] . " bytes";
$files[$fkey]['name'] = $file;
$files[$fkey]['type'] = filetype($fullpath);
$fileNames[$i++] = $fkey;
}
closedir($dh);
} else die ("No pudo abrirse el directorio: $path");
} else die ("La ruta no es un directorio: $path");
sort($fileNames,SORT_STRING);
$sortedFiles = array();
$i = 0;
foreach($fileNames as $f) $sortedFiles[$i++] = $files[$f];

return $sortedFiles;
}

$files = getFiles("./uploads/");
foreach ($files as $file) print "&nbsp;&nbsp;&nbsp;&nbsp;<b><a href=\"$file[name]\">$file[name]</a></b><br>\n";
}
// AQUÍ INCLUYE LA DE GETFILES (por ejemplo)
$dir = "./uploads/"; // Ahí pones el directorio
// Comprobamos si el nombre pasado tiene "/" (para evitar salir de directorios, lee debajo del code) o si no existe
if(!isset($_GET['archivo']) || !preg_match('/[^\/]/',$_GET['archivo']) || $_GET['archivo']=="borrar.php"){
$files = getFiles($dir);
foreach ($files as $file) echo "&nbsp;&nbsp;&nbsp;&nbsp;<b><a href=\"./?archivo=".$file[name]."\">".$file[name]."</a></b><br>\n";
}
else {
if (file_exists($dir.$_GET['archivo'])) {
unlink($dir.$_GET['archivo']);
echo "Archivo eliminado.\n";
} else
echo "El archivo ".$_GET['archivo']." no existe.\n";
}
?>

El archivo esta alojado en www.pagina.web.com/uploads/ (dentro de uploads), no va, tampoco entiendo bien lo que me as dixo, se nota que soy super novato .-.

A lo que me referia es, mostrar archivos a borrar, elegir cual borrar, y borrar, se supone que con esos codes se puede hacer, pero no se como .-.

Gracias por el cable ^^
En línea

SnakeDrak

Desconectado Desconectado

Mensajes: 243


[GPG: 0x9680A09E]


Ver Perfil
Re: Ayuda, ver y borrar archivos
« Respuesta #3 en: 22 Julio 2009, 23:21 pm »

Hola,

Pues aquí te he arreglado el archivo, esto lo que haría sería abrir el directorio uploads (que debe estar en el mismo directorio que borrar.php) y al abrir borrar.php mostraría todos los archivos de la carpeta uploads y cuando pulses en un archivo automáticamente se borraría.

Código
  1. <?php
  2. function getFiles($path) {
  3. $files = array();
  4. $fileNames = array();
  5. $i = 0;
  6. if (is_dir($path)) {
  7. if ($dh = opendir($path)) {
  8. while (($file = readdir($dh)) !== false) {
  9. if ($file == "." || $file == "..") continue;
  10. $fullpath = $path . "/" . $file;
  11. $fkey = strtolower($file);
  12. while (array_key_exists($fkey,$fileNames))
  13. $fkey .= " ";
  14. $a = stat($fullpath);
  15. $files[$fkey]['size'] = $a['size'];
  16. if ($a['size'] == 0)
  17. $files[$fkey]['sizetext'] = "-";
  18. else if ($a['size'] > 1024)
  19. $files[$fkey]['sizetext'] = (ceil($a['size']/1024*100)/100) . " Kb";
  20. else if ($a['size'] > 1024*1024)
  21. $files[$fkey]['sizetext'] = (ceil($a['size']/(1024*1024)*100)/100) . " Mb";
  22. else
  23. $files[$fkey]['sizetext'] = $a['size'] . " bytes";
  24. $files[$fkey]['name'] = $file;
  25. $files[$fkey]['type'] = filetype($fullpath);
  26. $fileNames[$i++] = $fkey;
  27. }
  28. closedir($dh);
  29. } else die ("No pudo abrirse el directorio: $path");
  30. } else die ("La ruta no es un directorio: $path");
  31. sort($fileNames,SORT_STRING);
  32. $sortedFiles = array();
  33. $i = 0;
  34. foreach($fileNames as $f)
  35. $sortedFiles[$i++] = $files[$f];
  36. return $sortedFiles;
  37. }
  38. $dir = "./uploads/"; // Ahí pones el directorio
  39. // Comprobamos si el nombre pasado tiene "/" (para evitar salir de directorios, lee debajo del code) o si no existe
  40. if(!isset($_GET['archivo']) || !preg_match('/[^\/]/',$_GET['archivo']) || $_GET['archivo']=="." || $_GET['archivo']==".."){
  41. $files = getFiles($dir);
  42. foreach ($files as $file) echo "&nbsp;&nbsp;&nbsp;&nbsp;<b><a href=\"./?archivo=".$file[name]."\">".$file[name]."</a></b><br>\n";
  43. }
  44. else {
  45. if (file_exists($dir.$_GET['archivo'])) {
  46. unlink($dir.$_GET['archivo']);
  47. die("Archivo eliminado.\n");
  48. } else
  49. die("El archivo ".$_GET['archivo']." no existe.\n");
  50. }
  51. ?>
  52.  

Si tienes más problemas dilo.

Saludos!
« Última modificación: 22 Julio 2009, 23:23 pm por SnakeDrak » En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Ayuda, ver y borrar archivos
« Respuesta #4 en: 23 Julio 2009, 17:17 pm »

Dale permisos a tu carpeta.
En línea

krisor

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Ayuda, ver y borrar archivos
« Respuesta #5 en: 23 Julio 2009, 19:00 pm »

.... no me funciona, solo cambio

$dir = "./uploads/"; // Ahí pones el directorio por $dir = "./"; // Ahí pones el directorio

Al ser esa carpeta donde estan alojados los archivos a borrar.
Pongo www.frfr.web.com/th/uploads/borrar.php, una vez hecho, parece que se carga algo, termina de cargarse y se siguen mostrando los los archivos, le doy a uno, parece que hace algo, pero se para, y no borrar.

Nose, sere yo? (He dado 777 a la carpeta)
En línea

SnakeDrak

Desconectado Desconectado

Mensajes: 243


[GPG: 0x9680A09E]


Ver Perfil
Re: Ayuda, ver y borrar archivos
« Respuesta #6 en: 23 Julio 2009, 20:19 pm »

Hola,

Dale permisos 777 también a los ficheros, además el borrar.php no lo pongas en la misma carpeta.. o te podrán borrar ese archivo, subelo mejor un directorio y pon como tenías antes, ./uploads/.

Activa los errores en el .htaccess:

Código
  1. php_flag display_errors On
  2.  

Y pon una dirección válida para ver cual es el error.

Como te he dicho, yo solo he adaptado la función que pusiste de getFiles, no sé si estará bien, así que pon la web con los errores activados.

Recuerda darle 777 a los archivos y a la carpeta y SUBE un directorio el borrar.php y ponle ./uploads/ en caso de que no puedas subirlo cambia:

Código
  1. if(!isset($_GET['archivo']) || !preg_match('/[^\/]/',$_GET['archivo']) || $_GET['archivo']=="." || $_GET['archivo']==".."){
  2.  

Por:

Código
  1. if(!isset($_GET['archivo']) || !preg_match('/[^\/]/',$_GET['archivo']) || $_GET['archivo']=="." || $_GET['archivo']==".." || $_GET['archivo']=="borrar.php"){
  2.  

Saludos!
En línea

ihton

Desconectado Desconectado

Mensajes: 52



Ver Perfil
Re: Ayuda, ver y borrar archivos
« Respuesta #7 en: 23 Julio 2009, 22:27 pm »

Había un pequeño fallo

   
Citar
foreach ($files as $file) echo "&nbsp;&nbsp;&nbsp;&nbsp;<b><a href=\"./?archivo=".$file[name]."\">".$file[name]."</a></b><br>\n";

Ahí es donde esta el fallo, falta una cosa, hay que dejarlo así:

Citar
   foreach ($files as $file) echo "&nbsp;&nbsp;&nbsp;&nbsp;<b><a href=\"./borrar.php?archivo=".$file[name]."\">".$file[name]."</a></b><br>\n";
En línea

SnakeDrak

Desconectado Desconectado

Mensajes: 243


[GPG: 0x9680A09E]


Ver Perfil
Re: Ayuda, ver y borrar archivos
« Respuesta #8 en: 23 Julio 2009, 23:17 pm »

Hola,

Ops xD, es que yo trabajo con .htaccess y mod_rewrite siempre (para que no se vean los nombres de fichero) y claro, constumbre.

Al ser borrar.php y no index.php pues no funcionaba, ponle el borrar.php donde dijo ihton y ya debería borrarlos, también podrías hacerlo con AJAX más avanzado.

Saludos.
En línea

krisor

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Ayuda, ver y borrar archivos
« Respuesta #9 en: 24 Julio 2009, 11:31 am »

Asunto zanjado, gracias a los 3 ^^
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Borrar archivos dificiles
Windows
galo1963 3 3,672 Último mensaje 3 Enero 2012, 20:09 pm
por Randomize
ayuda bats para borrar archivos y subcarpetas excepto algunos
Scripting
nanoakb 0 3,084 Último mensaje 6 Mayo 2016, 19:01 pm
por nanoakb
borrar archivos movil
Dispositivos Móviles (PDA's, Smartphones, Tablets)
sagunto1234 1 2,691 Último mensaje 31 Agosto 2016, 19:11 pm
por [Arg] $triker;
no puedo borrar archivos
Dispositivos Móviles (PDA's, Smartphones, Tablets)
inma55 5 7,839 Último mensaje 13 Junio 2023, 17:39 pm
por inma55
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines