Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] error en el unlink

Estas en el tema de error en el unlink en el foro de PHP en Foros del Web. Al enviar los datos del formulario me crea la copia pero no borra las anteriores y me da este error pero no consigo arreglar el ...
  #1 (permalink)  
Antiguo 11/06/2013, 11:34
 
Fecha de Ingreso: junio-2013
Mensajes: 4
Antigüedad: 10 años, 10 meses
Puntos: 0
error en el unlink

Al enviar los datos del formulario me crea la copia pero no borra las anteriores y me da este error pero no consigo arreglar el error
Código HTML:
Ver original
  1. Notice: Use of undefined constant zip - assumed 'zip' in C:\xampp\htdocs\40\p61.php on line 92
  2.  
  3. Warning: unlink(/../copia/20130611192419.~swapzip): No such file or directory in C:\xampp\htdocs\40\p61.php on line 92
  4.  
  5. Notice: Use of undefined constant zip - assumed 'zip' in C:\xampp\htdocs\40\p61.php on line 92
  6.  
  7. Warning: unlink(/../copia/20130611192419.~swapzip): No such file or directory in C:\xampp\htdocs\40\p61.php on line 92
  8.  
  9. Notice: Use of undefined constant zip - assumed 'zip' in C:\xampp\htdocs\40\p61.php on line 92
  10.  
  11. Warning: unlink(/../copia/20130611192419.~swapzip): No such file or directory in C:\xampp\htdocs\40\p61.php on line 92
  12.  
  13. Notice: Use of undefined constant zip - assumed 'zip' in C:\xampp\htdocs\40\p61.php on line 92
  14.  
  15. Warning: unlink(/../copia/20130611192419.~swapzip): No such file or directory in C:\xampp\htdocs\40\p61.php on line 92
  16.  
  17. Notice: Use of undefined constant zip - assumed 'zip' in C:\xampp\htdocs\40\p61.php on line 92
  18.  
  19. Warning: unlink(/../copia/20130611192419.~swapzip): No such file or directory in C:\xampp\htdocs\40\p61.php on line 92

Este es el codigo de la pagina

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Documento sin título</title>
  6. </head>
  7.  
  8. <body>
  9.  
  10.  
  11. <form id="dbbackup" name="formparaBackup" method="post" action=""><br />
  12. Host:
  13. <input type="text" name="mysqlhost" value="" /><br />
  14. Nombre de usuario MySQL:
  15. <input type="text" name="mysqlusuari" value="" /><br />
  16. Password MySQL:
  17. <input type="password" name="mysqlpass" value="" /><br /><br />
  18.     <input type="submit" name="enviar" id="enviar" value="Enviar" />
  19. </form>
  20.  
  21.  
  22.  
  23. <?php
  24.  
  25.  
  26. #############################################
  27. #
  28. # Tarea de copia seguridad de todas las bases de datos en MySQL
  29. #
  30. # CopyLeft, puedes hacer con este script lo que te de la gana
  31. #
  32. #############################################
  33. if (isset($_POST['enviar'])){
  34. echo date("Y-m-d H:i", time()) . " Creando copia de seguridad MySQL...\r\n";
  35.  
  36. // Datos de acceso a MySQL
  37. $myhost = $_POST['mysqlhost'];
  38. $myuser = $_POST['mysqlusuari'];
  39. $mypass = $_POST['mysqlpass'];
  40. $DB = mysql_connect($myhost, $myuser, $mypass) or die(date("Y-m-d H:i", time()) . " ERROR!! No se pudo conectar a MySQL.\r\n");
  41.  
  42. // Otros parámetros
  43. $OUTDIR = "/../copia/"; // Cambiar segun necesidades y tipo servidor
  44. $now = date("YmdHi", time());
  45. $outfile = "MySQL_$now.zip";
  46. $periodo = time() - 259200; // Los archivos anteriores a este periodo (3 dias = 259200 segundos) serán borrados
  47.  
  48. // Crear nuevo archivo ZIP
  49. # Más información sobre la clase PHP
  50. # http://es.php.net/manual/en/class.ziparchive.php
  51. echo date("Y-m-d H:i", time()) . " Creando '$OUTDIR$outfile.zip' ... ";
  52. $zip = new ZipArchive;
  53. if (!$zip->open("$OUTDIR$outfile", ZIPARCHIVE::CREATE)) die("ERROR!!\r\n");
  54. echo "OK.\r\n";
  55.  
  56. // Tomar un listado de bases de datos
  57. $q = mysql_query("SHOW DATABASES");
  58.  
  59. // Volcar todas las bases
  60. while ($database = mysql_fetch_row($q))
  61.     if ($database[0] != "information_schema" && $database[0] != "mysql")
  62.         {
  63.         // Nombrar archivo
  64.         $filename = "{$database[0]}.sql";
  65.         $tempfile = date("YmdHis", time()) . ".~swap";
  66.  
  67.         echo date("Y-m-d H:i", time()) . " Volcando '$filename' ... ";
  68.  
  69.         // Volcar datos
  70.         system("mysqldump -h $myhost -u $myuser -p$mypass --opt {$database[0]} > $OUTDIR$tempfile");
  71.  
  72.         echo "OK.\r\n"
  73.         . date("Y-m-d H:i", time()) . " Agregando '$filename' a '$outfile' ... ";
  74.  
  75.         //  Agregar archivo al ZIP
  76.         $zip->addFile($OUTDIR.$tempfile, $filename);
  77.  
  78.         // Recordar los temporales utilizados
  79.         $DUMPFILES[] = $OUTDIR.$tempfile;
  80.  
  81.         echo "OK.\r\n";
  82.         }
  83.  
  84. // Desconectar de la base de datos
  85.  
  86. // Cerrar archivo ZIP
  87. $zip->close();
  88.  
  89. // Eliminar temporales. Importante hacerlo DESPUÉS de cerrar el ZIP
  90. foreach($DUMPFILES as $file)
  91.     unlink($file);
  92.    
  93.  
  94. // Elminar archivos antiguos
  95. echo date("Y-m-d H:i", time()) . " Eliminando copias antiguas...\r\n";
  96. $D = opendir($OUTDIR);
  97. while ($F = readdir($D))
  98.     if ($F != "." && $F != "..")
  99.         if (filectime($OUTDIR.$F) < $periodo)
  100.             if (!unlink($OUTDIR.$F))
  101.                 echo date("Y-m-d H:i", time()) . " No se pudo eliminar el archivo $F.\r\n";        
  102.  
  103. echo date("Y-m-d H:i", time()) . " Tarea finalizada.\r\n";
  104. }
  105. ?>
  106. </body>
  107. </html>
  #2 (permalink)  
Antiguo 11/06/2013, 11:54
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 10 meses
Puntos: 127
Respuesta: error en el unlink

estas son las envolturas que puedes usar para unlink
http://enlinea.creaelicita.cl/guia/wrappers.html

no puedes usar .. para retornar
tiene que ser una ruta absoluta
  #3 (permalink)  
Antiguo 11/06/2013, 11:59
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 1 mes
Puntos: 137
Respuesta: error en el unlink

si leyeras los errores verias que algunos son de sintaxis....
__________________
>> abimaelmartell.com
  #4 (permalink)  
Antiguo 11/06/2013, 12:05
 
Fecha de Ingreso: junio-2013
Mensajes: 4
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: error en el unlink

lo que no entiendo es que si borra los swap ya que he probado a quitar esa parte y se quedan pero no borra el .zip con la copia antigua
  #5 (permalink)  
Antiguo 11/06/2013, 12:09
 
Fecha de Ingreso: junio-2013
Mensajes: 4
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: error en el unlink

Cita:
Iniciado por abimex Ver Mensaje
si leyeras los errores verias que algunos son de sintaxis....
tienes razon he subido una modficacion no la que era ahora lo edito

lo que no entiendo es que si borra los swap ya que he probado a quitar esa parte y se quedan pero no borra el .zip con la copia antigua

Código HTML:
Ver original
  1. Warning: unlink(/../copia/20130611201008.~swap): No such file or directory in C:\xampp\htdocs\40\p61.php on line 92
  2.  
  3. Warning: unlink(/../copia/20130611201008.~swap): No such file or directory in C:\xampp\htdocs\40\p61.php on line 92
  4.  
  5. Warning: unlink(/../copia/20130611201008.~swap): No such file or directory in C:\xampp\htdocs\40\p61.php on line 92
  6.  
  7. Warning: unlink(/../copia/20130611201008.~swap): No such file or directory in C:\xampp\htdocs\40\p61.php on line 92
  #6 (permalink)  
Antiguo 11/06/2013, 12:10
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 10 meses
Puntos: 127
Respuesta: error en el unlink

Cita:
Iniciado por enlinea777 Ver Mensaje
estas son las envolturas que puedes usar para unlink
http://enlinea.creaelicita.cl/guia/wrappers.html

no puedes usar .. para retornar
tiene que ser una ruta absoluta

Lee portador
  #7 (permalink)  
Antiguo 11/06/2013, 12:32
 
Fecha de Ingreso: junio-2013
Mensajes: 4
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: error en el unlink

parece que ya funciona el borrado de copias era un error mio en el contador de tiempo

he cambiado el unlink($fichero); por @unlink($fichero); y ya no muestra los warning

Etiquetas: formulario, html, mysql, sql, unlink
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 16:48.