From cd9762f4a918bf6e060f98fb253c9803713bd24d Mon Sep 17 00:00:00 2001 From: rmontanana Date: Sat, 1 Mar 2014 23:24:37 +0100 Subject: [PATCH] =?UTF-8?q?ref=20#14=20Corregir=20la=20copia=20de=20seguri?= =?UTF-8?q?dad=20para=20que=20funcione=20y=20cambiar=20configuraci=C3=B3n?= =?UTF-8?q?=20para=20incluir=20las=20rutas=20a=20los=20programas=20mysqldu?= =?UTF-8?q?mp=20y=20gzip=20Corregido=20un=20problema=20en=20Mantenimiento?= =?UTF-8?q?=20para=20las=20altas=20de=20elementos=20(formato=20de=20fecha)?= =?UTF-8?q?=20La=20copia=20de=20seguridad=20ya=20funciona=20con=20utf8.=20?= =?UTF-8?q?Hay=20que=20importar=20la=20copia=20diciendo=20que=20el=20chars?= =?UTF-8?q?et=20es=20iso8859-1=20pero=20ya=20quedar=C3=A1=20todo=20correct?= =?UTF-8?q?o.=20En=20sucesivas=20copias=20e=20importaciones=20ya=20ir?= =?UTF-8?q?=C3=A1=20todo=20con=20utf8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AportaContenido.php | 56 ++++++++++++++++++++++++++++++------------- Configuracion.php | 20 ++++++++++++++++ Mantenimiento.php | 4 ++-- inc/configuracion.ant | 4 +++- inc/configuracion.inc | 2 ++ 5 files changed, 66 insertions(+), 20 deletions(-) diff --git a/AportaContenido.php b/AportaContenido.php index bdee753..79a36cb 100644 --- a/AportaContenido.php +++ b/AportaContenido.php @@ -145,7 +145,7 @@ class AportaContenido { case 'principal': return "Pantalla Inicial"; case 'elementos': - case 'articulos': $opcion="artículos"; + case 'articulos': $opcion = "artículos"; case 'ubicaciones': case 'usuarios': case 'test': @@ -213,7 +213,7 @@ class AportaContenido { return $this->mensajePermisos('Informes'); } case 'descuadres': - if ($this->perfil['Informe']) { + if ($this->perfil['Informe'] && $this->p) { $enlace = 'xml/informe' . ucfirst($opcion) . '.xml'; $informe = new InformePDF($this->bdd, $enlace, $this->registrado); $informe->crea($enlace); @@ -231,21 +231,34 @@ class AportaContenido { return $this->mensajePermisos("Actualización, creación y borrado de elementos"); } case 'copiaseg': - if ($this->perfil['Informe']) { - $mensaje = '
'; - $mensaje .= '

Información

'; - $mensaje .= '
'; - $mensaje .= 'Copia de seguridad realizada con éxito.

Pulse sobre el siguiente enlace para descargar:

'; - $mensaje .= 'Descargar Copia de Seguridad de Datos
'; - $mensaje .= $comando; - $mensaje .= '
'; - $mensaje .= '
'; - $archivo = 'tmp/copiaseg.sql.gz'; - $comando = 'mysqldump -u '.USUARIO.'--password='.CLAVE.' '.BASEDATOS.'|gzip -9c>'.$archivo; - system($comando); - return $mensaje; + if ($this->perfil['Config']) { + $archivo_sql = "tmp/copiaseg.sql"; + $archivo = $archivo_sql . ".gz"; + if (file_exists($archivo)) { + unlink($archivo); + } + $comando = escapeshellcmd(MYSQLDUMP . ' -u ' . USUARIO . ' --password=' . CLAVE . ' --result-file=' . $archivo_sql . ' ' . BASEDATOS); + $comando2 = escapeshellcmd(GZIP . ' -9f ' . $archivo_sql); + exec($comando); + exec($comando2); + if (filesize($archivo) < 1024) { + //No se ha realizado la copia de seguridad + $mensaje = "La copia de seguridad no se ha realizado correctamente.

"; + $mensaje .= "Compruebe que las rutas a los programas mysqldump y gzip en configuración están correctamente establecidas "; + $mensaje .= "y que los datos de acceso a la base de datos sean correctos.
"; + $mensaje .= "mysqldump=[" . MYSQLDUMP . "]
"; + $mensaje .= "gzip=[" . GZIP . "]"; + $cabecera = "ERROR"; + $tipo = "danger"; + } else { + $mensaje .= 'Copia de seguridad realizada con éxito.

Pulse sobre el siguiente enlace para descargar:

'; + $mensaje .= 'Descargar Copia de Seguridad de Datos
'; + $cabecera = "Información"; + $tipo = "success"; + } + return $this->panel($cabecera,$mensaje,$tipo); } else { - return $this->mensajePermisos("Informes"); + return $this->mensajePermisos("Copias de seguridad"); } } // Fin del contenido case 'usuario_incorrecto': @@ -270,7 +283,16 @@ class AportaContenido { * @return string */ public function mensajePermisos($tipo) { - return "

No tiene permiso para acceder a " . $tipo . "

"; + return $this->panel("ERROR", "No tiene permiso para acceder a $tipo", "danger"); + } + + public function panel($cabecera, $mensaje, $tipo) { + $panel = '
'; + $panel .= '

' . $cabecera . '

'; + $panel .= '
'; + $panel .= $mensaje; + $panel .= '
'; + return $panel; } } diff --git a/Configuracion.php b/Configuracion.php index 0f6978f..0b15ad8 100644 --- a/Configuracion.php +++ b/Configuracion.php @@ -32,6 +32,8 @@ private $plantilla; private $colorLateral; private $colorFondo; + private $mysqldump; //comando mysqldump para la copia de seguridad + private $gzip; //comando gzip para comprimir la copia de seguridad public function ejecuta() { @@ -121,6 +123,22 @@ $this->colorFondo=$_POST['colorFon']; } break; + case 'MYSQLDUMP': + $valor = trim($valor); + $this->mysqldump = $valor; + if ($grabar) { + $linea=str_replace($valor,$_POST['mysqldump'],$linea); + $this->mysqldump=$_POST['mysqldump']; + } + break; + case 'GZIP': + $valor = trim($valor); + $this->gzip = $valor; + if ($grabar) { + $linea=str_replace($valor,$_POST['gzip'],$linea); + $this->gzip=$_POST['gzip']; + } + break; } } if ($grabar) { @@ -188,6 +206,8 @@ $salida.='Base de datos'; $salida.='Usuario'; $salida.='Clave'; + $salida.='mysqldump'; + $salida.='gzip'; $salida.='

'; $salida.='
'; $salida.="