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.="