Foros del Web » Programando para Internet » PHP »

Backup de BD -> YoDumpeo 1.0b

Estas en el tema de Backup de BD -> YoDumpeo 1.0b en el foro de PHP en Foros del Web. Gracias Cluster por la corrección....

  #31 (permalink)  
Antiguo 20/07/2006, 20:20
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 22 años, 4 meses
Puntos: 8
Gracias Cluster por la corrección.
  #32 (permalink)  
Antiguo 04/10/2006, 11:36
 
Fecha de Ingreso: octubre-2006
Mensajes: 1
Antigüedad: 18 años, 2 meses
Puntos: 0
URGENTE

Mi problema con este script es que no solo se me cargan las sentencias sql, sino que tambien se me graba en el fichero el codigo html de lo que muestro en el navegador una vez hecha la operacion.

Si lo hago bajo windows esto me sale al no codificar el texto, pero sí lo codifico con gz no tengo ningun problema

Si lo hago bajo Linux (es con lo que trabajo) me sale con todas las opciones

Última edición por pedrera_j; 05/10/2006 a las 03:18
  #33 (permalink)  
Antiguo 09/01/2008, 01:17
Avatar de alienmaster  
Fecha de Ingreso: septiembre-2006
Mensajes: 16
Antigüedad: 18 años, 3 meses
Puntos: 2
Re: Backup de BD -> YoDumpeo 1.0b

Me e permitido hacer un mod del script, la novedad es que los daots de la DB los introducimos desde un formulario, mas comodo :P
Código PHP:
<?php

/*
YoDumpeo! 1.5 - Modificacion del script original por aLiEnMaStEr
-Info: Modificacion a partir de la version 1.0 del script, +Info: http://www.forosdelweb.com/f18/backup-bd-yodumpeo-1-0b-166532/
-MOD INFO ¿Que incluye la modificacion?: Pues etsa mod es muy simple, lo que incluye es una formulario desde el cual introducimos los<br>
 datos del SQL como la tabla, user, pass y el host, para tener un uso mas rapido del script.
*/

if($_POST['host']){

/* Usuario para la conexion a Mysql. */
$usurio $_POST['usurio'];
/* Password para la conexion a Mysql. */
$passwd $_POST['passwd'];
 
/* Host para la conexion a Mysql. */
$host $_POST['host'];
/* Base de Datos que se seleccionará. */
$bd $_POST['bd'];
/* Nombre del fichero que se descargará. */
$nombre "dump.txt";
/* Determina si la tabla será vaciada (si existe) cuando  restauremos la tabla. */            
$drop false;
/* 
* Array que contiene las tablas de la base de datos que seran resguardadas.
* Puede especificarse un valor false para resguardar todas las tablas
* de la base de datos especificada en  $bd.

* Ejs.:
* $tablas = false;
*    o
* $tablas = array("tabla1", "tabla2", "tablaetc");

*/
$tablas false;
/* 
* Tipo de compresion.
* Puede ser "gz", "bz2", o false (sin comprimir)
*/
$compresion false;

/* Conexion y eso*/
$conexion mysql_connect($host$usurio$passwd)
or die(
"No se conectar con el servidor MySQL: ".mysql_error());
mysql_select_db($bd$conexion)
or die(
"No se pudo seleccionar la Base de Datos: "mysql_error());


/* Se busca las tablas en la base de datos */
if ( empty($tablas) ) {
    
$consulta "SHOW TABLES FROM $bd;";
    
$respuesta mysql_query($consulta$conexion)
    or die(
"No se pudo ejecutar la consulta: ".mysql_error());
    while (
$fila mysql_fetch_array($respuestaMYSQL_NUM)) {
        
$tablas[] = $fila[0];
    }
}


/* Se crea la cabecera del archivo */
$info['dumpversion'] = "1.1b";
$info['fecha'] = date("d-m-Y");
$info['hora'] = date("h:m:s A");
$info['mysqlver'] = mysql_get_server_info();
$info['phpver'] = phpversion();
ob_start();
print_r($tablas);
$representacion ob_get_contents();
ob_end_clean ();
preg_match_all('/(\[\d+\] => .*)\n/'$representacion$matches);
$info['tablas'] = implode(";  "$matches[1]);
$dump = <<<EOT
# +===================================================================
# | YoDumpeo! 
{$info['dumpversion']}
# | por fran86 <[email protected]>
# |
# | Generado el 
{$info['fecha']} a las {$info['hora']} por el usurio '$usurio'
# | Servidor: 
{$_SERVER['HTTP_HOST']}
# | MySQL Version: 
{$info['mysqlver']}
# | PHP Version: 
{$info['phpver']}
# | Base de datos: '$bd'
# | Tablas: 
{$info['tablas']}
# |
# +-------------------------------------------------------------------

EOT;
foreach (
$tablas as $tabla) {
    
    
$drop_table_query "";
    
$create_table_query "";
    
$insert_into_query "";
    
    
/* Se halla el query que será capaz vaciar la tabla. */
    
if ($drop) {
        
$drop_table_query "DROP TABLE IF EXISTS `$tabla`;";
    } else {
        
$drop_table_query "# No especificado.";
    }

    
/* Se halla el query que será capaz de recrear la estructura de la tabla. */
    
$create_table_query "";
    
$consulta "SHOW CREATE TABLE $tabla;";
    
$respuesta mysql_query($consulta$conexion)
    or die(
"No se pudo ejecutar la consulta: ".mysql_error());
    while (
$fila mysql_fetch_array($respuestaMYSQL_NUM)) {
            
$create_table_query $fila[1].";";
    }
    
    
/* Se halla el query que será capaz de insertar los datos. */
    
$insert_into_query "";
    
$consulta "SELECT * FROM $tabla;";
    
$respuesta mysql_query($consulta$conexion)
    or die(
"No se pudo ejecutar la consulta: ".mysql_error());
    while (
$fila mysql_fetch_array($respuestaMYSQL_ASSOC)) {
            
$columnas array_keys($fila);
            foreach (
$columnas as $columna) {
                if ( 
gettype($fila[$columna]) == "NULL" ) {
                    
$values[] = "NULL";
                } else {
                    
$values[] = "'".mysql_real_escape_string($fila[$columna])."'";
                }
            }
            
$insert_into_query .= "INSERT INTO `$tabla` VALUES (".implode(", "$values).");\n";
            unset(
$values);
    }
    
$dump .= <<<EOT

# | Vaciado de tabla '$tabla'
# +------------------------------------->
$drop_table_query


# | Estructura de la tabla '$tabla'
# +------------------------------------->
$create_table_query


# | Carga de datos de la tabla '$tabla'
# +------------------------------------->
$insert_into_query

EOT;
}

/* Envio */
if ( !headers_sent() ) {
    
header("Pragma: no-cache");
    
header("Expires: 0");
    
header("Content-Transfer-Encoding: binary");
    switch (
$compresion) {
    case 
"gz":
        
header("Content-Disposition: attachment; filename=$nombre.gz");
        
header("Content-type: application/x-gzip");
        echo 
gzencode($dump9);
        break;
    case 
"bz2"
        
header("Content-Disposition: attachment; filename=$nombre.bz2");
        
header("Content-type: application/x-bzip2");
        echo 
bzcompress($dump9);
        break;
    default:
        
header("Content-Disposition: attachment; filename=$nombre");
        
header("Content-type: application/force-download");
        echo 
$dump;
    }
} else {
    echo 
"<b>ATENCION: Probablemente ha ocurrido un error</b><br />\n<pre>\n$dump\n</pre>";
}

}

echo 
"<form name='form1' method='post' action=''>  <table width='400' border='0' cellspacing='0' cellpadding='0'>  <tr>  <td><strong><font size='4' face='Arial, Helvetica, sans-serif'>YoDumpeo! 1.5 - MOD By aLiEnMaStEr</font></strong></td>  </tr>  <tr>  <td><table width='400' border='0' cellspacing='0' cellpadding='0'>  <tr> <td><font size='2' face='Arial, Helvetica, sans-serif'>Usuario:</font></td>  <td><font size='2' face='Arial, Helvetica, sans-serif'> <input name='usurio' type='text' id='usurio'>  </font></td>  </tr>  <tr> <td><font size='2' face='Arial, Helvetica, sans-serif'>Password:</font></td>  <td><font size='2' face='Arial, Helvetica, sans-serif'> <input name='passwd' type='text' id='passwd'>  </font></td>  </tr>  <tr> <td><font size='2' face='Arial, Helvetica, sans-serif'>Base de Datos:</font></td>  <td><font size='2' face='Arial, Helvetica, sans-serif'> <input name='bd' type='text' id='db'>  </font></td>  </tr>  <tr> <td><font size='2' face='Arial, Helvetica, sans-serif'>Host:</font></td>  <td><font size='2' face='Arial, Helvetica, sans-serif'> <input name='host' type='text' id='host' value='localhost'>  </font></td>  </tr>  <tr> <td colspan='2'><font size='2' face='Arial, Helvetica, sans-serif'> <input type='submit' name='Submit' value='Enviar'>  </font></td>  </tr>  </table></td>  </tr>  </table> </form>";

?>

Última edición por alienmaster; 09/01/2008 a las 01:44
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 08:38.