Foros del Web » Programando para Internet » PHP »

¿Como saber si algo no se ha ejecutado correctamente?

Estas en el tema de ¿Como saber si algo no se ha ejecutado correctamente? en el foro de PHP en Foros del Web. Hola, estoy haciendo una pagina de borrado de imagenes para que borre imagenes tanto de la base de datos como del disco duro, de la ...
  #1 (permalink)  
Antiguo 26/05/2010, 10:08
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 19 años, 2 meses
Puntos: 5
¿Como saber si algo no se ha ejecutado correctamente?

Hola, estoy haciendo una pagina de borrado de imagenes para que borre imagenes tanto de la base de datos como del disco duro, de la base de datos no tengo ningún problema, lo elimina siempre a la primera, pero del disco duro, cuando quiere las elimina y cuando quiere no, y me preguntaba si hay alguna funcion o algo que cuando el codigo no se ejecute correctamente o no haga lo que tiene que hacer te avise de algúna forma y pare el codigo justo en ese punto.

Concretamente este codigo me funciona cuando quiere.

Código PHP:
//ELIMINA LAS FOTOS DEL PERSONAJE DEL DISCO DURO
$sql="SELECT * from imagenes,personajes WHERE imagenes.codpersonaje_imagen=codpersonaje AND codpersonaje='".$codpersonaje."'";

echo 
'<BR />';
echo 
$sql;
$consulta=mysql_query($sql$conexion);
while(
$registros=mysql_fetch_array($consulta))
{
echo 
$registros["nombre_imagen"];
//ELIMINANDO LAS IMAGENES FISICAS
unlink("imagenes/imagenespequenas/".$registros["nombre_imagen"]);

__________________
Mi equipo

Gigabyte GA-MA770T-UD3P Socket AM3|OZC StealthxStream 600 w | Gigabyte Radeon HD 4770 512MB GDDR5| AMD Phenom II 945 X4 Quad Core 3.0Ghz| Memoria Kingston 6GB DDR3 1333
  #2 (permalink)  
Antiguo 26/05/2010, 10:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: ¿Como saber si algo no se ha ejecutado correctamente?

http://www.php.net/unlink
Cita:
Returns TRUE on success or FALSE on failure.
Puedes verificar el valor devuelto por unlink() para saber si se ejecutó correctamente o no.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 26/05/2010, 10:22
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 19 años, 2 meses
Puntos: 5
Respuesta: ¿Como saber si algo no se ha ejecutado correctamente?

No te comprendo bien, ¿quieres decir que le haga un echo a unlink?

¿Asi?

echo unlink();

Lo he probado pero no funciona, y que yo sepa unlink es para borrar archivos.
__________________
Mi equipo

Gigabyte GA-MA770T-UD3P Socket AM3|OZC StealthxStream 600 w | Gigabyte Radeon HD 4770 512MB GDDR5| AMD Phenom II 945 X4 Quad Core 3.0Ghz| Memoria Kingston 6GB DDR3 1333
  #4 (permalink)  
Antiguo 26/05/2010, 10:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿Como saber si algo no se ha ejecutado correctamente?

Cita:
Iniciado por neoarcangel Ver Mensaje
No te comprendo bien, ¿quieres decir que le haga un echo a unlink?

¿Asi?

echo unlink();

Lo he probado pero no funciona, y que yo sepa unlink es para borrar archivos.
usa tu sentido común...

obviamente debes pasar algún argumento a la función...

y si leyeras el manual (para que de verdad sepas), si sirve para borrar archivos... hasta ejemplos hay!!

pero lo importante es que devuelve un valor, el cual puedes comprobar mediante lógica...

unlink()
http://php.net/unlink
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 26/05/2010, 10:45
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 19 años, 2 meses
Puntos: 5
Respuesta: ¿Como saber si algo no se ha ejecutado correctamente?

Sé perfectamente que el unlink vale para borrar archivos y también he mirado los ejemplos, de hecho no es la primera vez que entro justamente en esa página, lo que desconocia era la funcion de devolver el valor y de hecho sigue sin funcionarme.

He puesto esto

echo 'valor de unlink2'.unlink(("imagenes/imagenespequenas/".$registros["nombre_imagen"]));

y unicamente me sale

valor de unlink2 en pantalla
__________________
Mi equipo

Gigabyte GA-MA770T-UD3P Socket AM3|OZC StealthxStream 600 w | Gigabyte Radeon HD 4770 512MB GDDR5| AMD Phenom II 945 X4 Quad Core 3.0Ghz| Memoria Kingston 6GB DDR3 1333
  #6 (permalink)  
Antiguo 26/05/2010, 11:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿Como saber si algo no se ha ejecutado correctamente?

a ver... y si intentas con un archivo que ya existe??

porque bueno... si unlink() da false se consideraría null, por lo tanto no tendría un valor textual para imprimir...

y eso, significa que el archivo que intentas borrar no existe... ¿tienes activado el reporte de errores??

pero bueno, la idea es lo siguiente:
Código PHP:
if (unlink($foo)) // ... OK 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 26/05/2010, 11:30
Avatar de neoarcangel  
Fecha de Ingreso: enero-2005
Ubicación: España
Mensajes: 566
Antigüedad: 19 años, 2 meses
Puntos: 5
Respuesta: ¿Como saber si algo no se ha ejecutado correctamente?

He estado haciendo varias pruebas ejecutando simplemente el unlink y si parece funcionar la primera vez sale un "1" y si intentas borrar de nuevo(cuando ya no hay archivo) sale algo asi

Warning: unlink(imagenes/imagenespequenas/00_05_51.jpg) [function.unlink]: No such file or directory in c:\

El informe de errores lo tengo asi

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED

Pues mas o menos es lo que queria, pero buscaba alguna funcion mas especifica para errores, aunque bueno de todos modos esto me sirve.

Gracias.
__________________
Mi equipo

Gigabyte GA-MA770T-UD3P Socket AM3|OZC StealthxStream 600 w | Gigabyte Radeon HD 4770 512MB GDDR5| AMD Phenom II 945 X4 Quad Core 3.0Ghz| Memoria Kingston 6GB DDR3 1333
  #8 (permalink)  
Antiguo 26/05/2010, 11:38
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
Respuesta: ¿Como saber si algo no se ha ejecutado correctamente?

Prueba usar file_exists() antes de pasarlo por el unlink().

Saludos.
  #9 (permalink)  
Antiguo 26/05/2010, 11:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿Como saber si algo no se ha ejecutado correctamente?

en todo caso debes usar mas la lógica en función de lo que necesitas...

es simple, primero comprobamos que el archivo a borrar existe... antes de borrarlo
Código PHP:
if (is_file($foo))
{
  
// ...

como puedes ver el control de errores no recae sobre funciones -mágicas- especificas... es mas bien pura lógica y sentido común... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: correctamente
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 19:39.