Foros del Web » Programando para Internet » PHP »

Borrar Archivos del Servidor

Estas en el tema de Borrar Archivos del Servidor en el foro de PHP en Foros del Web. Hopla gente como les va? Miren estoy realizando una web y necesito que al borrar un registro de la BD tambien se borren los archivos ...
  #1 (permalink)  
Antiguo 23/08/2010, 17:01
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Pregunta Borrar Archivos del Servidor

Hopla gente como les va?

Miren estoy realizando una web y necesito que al borrar un registro de la BD tambien se borren los archivos asociados.

Tengo el siguiente codigo que me borra los datos de la BD pero los archivos ni los toca.

<?php
$conexion = mysql_connect('localhost', 'gesavi', 'rodo');
mysql_select_db('gesavi');
?>
<?php
$id=$_GET['id'];
$img=$_GET['nombreimg'];
mysql_query("delete from propiedades where id = $id",$conexion);
unlink("./imagenes/" .$img['nombreimg']);
?>

En este codigo paso la variable de ID por URL y pense tambien pasar el nombre del archivo por URL.. pero no me funciona.


Saludos y gracias! :D
  #2 (permalink)  
Antiguo 23/08/2010, 17:08
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Borrar Archivos del Servidor

Hola.

no manda algun error??
prueba esto, solo para saber si lo esta efectuando
unlink("./imagenes/" .$img['nombreimg']) or die("Error");
  #3 (permalink)  
Antiguo 23/08/2010, 17:10
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

Cita:
Iniciado por lair Ver Mensaje
Hola.

no manda algun error??
prueba esto, solo para saber si lo esta efectuando
unlink("./imagenes/" .$img['nombreimg']) or die("Error");
Hola Lair, me tira el die.. me dice error...

Porque sera? es malo que pase la variable por URL?

o como lo puedo hacer?

Saludos y gracias
  #4 (permalink)  
Antiguo 23/08/2010, 17:34
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Borrar Archivos del Servidor

Cuando te mande error no nos digas "me dice error...", a menos que tu manades eso como en el codigo que yo modifique:
unlink("./imagenes/" .$img['nombreimg']) or die("Error");

si manda un error, dinos exacatamente que dice, si es lo que colocas en el die tambien hasnolo saber.

en este caso asumo que el error fue el del die, y en base a eso deduzco que el error se debe a dos posibles causas:
1) no tienes permisos para eliminar el archivo
2) la ruta hasta el archivo esta incorrecta

para verificar la segunda posibilidad puedes hacer lo siguiente:
Código PHP:
Ver original
  1. if(file_exists("./imagenes/" .$img['nombreimg']))
  2.    echo("Existe");
  3. else
  4.    echo("No existe");

y en caso de que la ruta sea correcta verificas los permisos de la siguiente manera
Código PHP:
Ver original
  1. echo substr(sprintf('%o', fileperms("./imagenes/" .$img['nombreimg'])), -4);

Espero respuestas.
  #5 (permalink)  
Antiguo 23/08/2010, 17:40
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

Hola Lair, efectivamente el error que me decia es el ERROR del DIE.

Utilize tu codigo y efectivamente me dice que si EXISTE, y sobre los permisos tengo todos con 777 o maximos, ya que puedo EDITAR, INGRESAR, pero no borrar.

Como podria ser el codigo para que baje el valor de la variable:

Nombre de la Images pasada por URL

Y luego con ese valor borre el archivo.?

Saludos y Gracias


p.d: Segun tu codigo que me diste es "0777"
  #6 (permalink)  
Antiguo 23/08/2010, 17:54
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Borrar Archivos del Servidor

Esta medio raro, deberia dejarte eliminarlo.

vamos a activar el reporte de errores de php, esto se hace modificando el archivo php.ini.

ahi vamos a buscar las directivas y les vamos a dar los siguientes valores
display_errors On
error_reporting E_ALL

Verifica que NO tengan un ; (punto y coma) al inicio de la linea

con eso vamos a ver exactamente los errores que php nos manda y asi obtendremos mas informaion

NOTA: elimina el die que colo que en la linea unlink
  #7 (permalink)  
Antiguo 23/08/2010, 18:02
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

Yap mira esto realize en php.ini

; Eval the expression with current error_reporting(). Set to true if you want
error_reporting(0) around the eval().
;assert.quiet_eval = 0

Supongo que esta bien?

y el display_error lo deje en On...

Luego borre el DIE de la linea unlink.. pero no me sale ningun error :S

Saludos y gracuas
  #8 (permalink)  
Antiguo 23/08/2010, 18:06
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Borrar Archivos del Servidor

es necesario reiniciar apache para que tome los nuevos valores de php

y asegurate que la directiva error_reporting este correcta, lee los comentarios que vienen antes de esta, no estoy muy seguro de que esos valores sean correctos (tal vez me equivoco)
  #9 (permalink)  
Antiguo 23/08/2010, 18:11
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

Cuando reviso el phpinfo por el panel del MAMP (programa que ocupo yo)

Dice:

display_errors ON
error_reporting 30719

Ahora realizare la accion de borrar, pero donde veo el error en algun log? o lo tira por pantalla?

Saludos y gracias
  #10 (permalink)  
Antiguo 23/08/2010, 18:14
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

jeje aqui esta..

Notice: Undefined index: nombreimg in /Applications/MAMP/htdocs/gesavi/borrar.php on line 14

Warning: unlink(./imagenes/) [function.unlink]: Operation not permitted in /Applications/MAMP/htdocs/gesavi/borrar.php on line 18


La linea 14 dice lo siguiente:

mysql_query("delete from propiedades where id = $id",$conexion);

Y la linea 18 lo siguiente:

?>

No entiendo nada... me ayudas porfa?

Gracias, saludos.
  #11 (permalink)  
Antiguo 23/08/2010, 18:15
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Borrar Archivos del Servidor

debio mostrarlo en pantalla pero puedes revisar las bitacoras de apache, quiza alla algo ahi
  #12 (permalink)  
Antiguo 23/08/2010, 18:18
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

Cita:
Iniciado por lair Ver Mensaje
debio mostrarlo en pantalla pero puedes revisar las bitacoras de apache, quiza alla algo ahi
Me salio por pantalla.. arriba te deje lo que me salio.

No entendi nada para serte sincero, me ayudas porfa.

Gracias saludos.
  #13 (permalink)  
Antiguo 23/08/2010, 18:18
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Borrar Archivos del Servidor

Notice: Undefined index: nombreimg in /Applications/MAMP/htdocs/gesavi/borrar.php on line 14
quiere decir que esta variable no tiene el indice nombreimg
$img['nombreimg']

haz lo siguiente para ver la estructura de la variable

Código PHP:
Ver original
  1. echo("<pre>");
  2. print?r($img);
  3. echo("<"/pre>");
  #14 (permalink)  
Antiguo 23/08/2010, 18:22
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

Cita:
Iniciado por lair Ver Mensaje
Notice: Undefined index: nombreimg in /Applications/MAMP/htdocs/gesavi/borrar.php on line 14
quiere decir que esta variable no tiene el indice nombreimg
$img['nombreimg']

haz lo siguiente para ver la estructura de la variable

Código PHP:
Ver original
  1. echo("<pre>");
  2. print?r($img);
  3. echo("<"/pre>");
Me da error de escritura:
Lo tengo de esta forma:

$img=$_GET['nombreimg'];
echo("<pre>");
print?r($img);
echo("<"/pre>");
  #15 (permalink)  
Antiguo 23/08/2010, 18:38
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Borrar Archivos del Servidor

Si, perdon, lo que pasa es que se me fueron los dedos aqui esta el codigo correcto

echo("<pre>");
print_r($img);
echo("</pre>");
  #16 (permalink)  
Antiguo 23/08/2010, 18:44
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

Ahora solo me sale:

Notice: Undefined index: nombreimg in /Applications/MAMP/htdocs/gesavi/borrar.php on line 13

La linea 13 corresponde a :

$img=$_GET['nombreimg'];

Esa variable la paso por url.

Gracias y saludos
  #17 (permalink)  
Antiguo 23/08/2010, 18:47
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Borrar Archivos del Servidor

si, eso quiere decir que estas capturando mal tu variable $_GET

entonces coloca esa ($_GET) aqui:
echo("<pre>");
print_r($_GET);
echo("</pre>");
  #18 (permalink)  
Antiguo 23/08/2010, 18:52
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

Cita:
Iniciado por lair Ver Mensaje
si, eso quiere decir que estas capturando mal tu variable $_GET

entonces coloca esa ($_GET) aqui:
echo("<pre>");
print_r($_GET);
echo("</pre>");
Tienes toda la razon y lo solucione de esta manera:

$img=$_REQUEST['img'];

Ya que la variable la pase por url de esta forma:

img=<?php echo $registro['nombreimg'] ?>

Entonces el nombre de la imagen a borrar ya lo paso bien de una pagina a otra.

Pero ahora me dice esto:

Warning: unlink(./imagenes/2) [function.unlink]: No such file or directory in /Applications/MAMP/htdocs/gesavi/borrar.php on lin

Porque me sale "2" en vez de "2.jpg"?

Ojala me puedas ayudar, mil gracias. :D
  #19 (permalink)  
Antiguo 23/08/2010, 19:18
 
Fecha de Ingreso: agosto-2010
Mensajes: 156
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Borrar Archivos del Servidor

Porfin lo solucione!

Lo que hize fue lo siguiente:

Como dije anteriormente pase la variable por URL, luego la resupere asi:

$img=$_REQUEST['img']

y luego aplique la funcion UNLINK de la siguiente forma:

unlink("./imagenes/$img");

El problema que yo tenia que me decia que no existia ese archivo o directorio era porque estaba mal formulado en el unlink...

para que resulte es importante tener el ./ antes del directorio y la variable ponerla dentro de las "" y no aparte.

Bueno eso hize y m resulto!!! jajaja

Muchas e infinitas gracias LAIR por tu tiempo y disposición.

Saludos

Etiquetas: borrar, servidores
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 12:20.